Saya memiliki halaman dengan baris sekitar 10 img
s. Untuk keterbacaan HTML, saya ingin menempatkan pemutusan baris di antara setiap img
tag, tetapi melakukannya membuat spasi kosong di antara gambar, yang tidak saya inginkan. Apakah ada yang bisa saya lakukan selain istirahat di tengah tag daripada di antara mereka?
Sunting: Berikut adalah tangkapan layar dari apa yang saya miliki sejauh ini. Saya ingin gambar tulang belakang buku ditampilkan dalam kombinasi acak, menggunakan PHP. Inilah mengapa saya membutuhkan img
tag terpisah .
{strip}
. Mesin template lain harus memiliki tag serupa.Jawaban:
Anda bisa menggunakan CSS. Menyetel display: block, atau float: left pada gambar akan memungkinkan Anda menentukan spasi Anda sendiri dan memformat HTML sesuka Anda, tetapi akan memengaruhi tata letak dengan cara yang mungkin sesuai atau mungkin tidak sesuai.
Jika tidak, Anda berurusan dengan konten sebaris sehingga pemformatan HTML itu penting - karena gambar akan bertindak secara efektif seperti kata-kata.
sumber
Maaf jika ini sudah lama tetapi saya baru menemukan solusinya.
Coba atur
font-size
ke 0. Dengan demikian, ruang putih di antara gambar akan menjadi 0 lebarnya, dan gambar tidak akan terpengaruh.Tidak tahu apakah ini berfungsi di semua browser, tetapi saya mencobanya dengan Chromium dan beberapa
<li>
elemen dengandisplay: inline-block;
.sumber
em
unit.font-size
ke 0 berarti Anda tidak dapat menggunakanem
unit untuk desain yang dapat diskalakan setelah titik itu. Bagi sebagian orang, jawaban ini tidak berguna.Anda bisa menggunakan komentar.
Saya khawatir tentang semantik memiliki serangkaian gambar berdampingan.
sumber
font-size:0
mengerikan dalam banyak kasus karena Anda kehilangan warisan. ya, Anda dapat menggunakanrem
unit, tetapi tetap saja, kueri media Anda akan berhenti berfungsi untuk elemen itu, dan Anda harus memodifikasi semuanyaAnda memiliki dua opsi tanpa melakukan perkiraan hal-hal dengan CSS. Opsi pertama adalah menggunakan javascript untuk menghapus turunan whitespace-only dari tag. Pilihan yang lebih bagus adalah dengan menggunakan fakta bahwa spasi dapat berada di dalam tag tanpa arti. Seperti:
sumber
Flexbox dapat dengan mudah memperbaiki masalah lama ini:
Informasi lebih lanjut tentang flexbox: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
sumber
{ flex-direction: row; flex-wrap: nowrap; }
bisa ditambahkan agar lebih mudah dibaca.flex-direction: row
danflex-wrap: nowrap
, mereka tetap default. Tetap sederhana biasanya yang terbaik! Juga, sebagian besar waktu pengguna sebenarnya menginginkanflex-wrap: wrap
.Setelah terlalu banyak penelitian, coba-coba, saya menemukan cara yang tampaknya berfungsi dengan baik dan tidak perlu mengatur ulang ukuran font secara manual pada elemen anak-anak, memungkinkan saya untuk memiliki ukuran font em standar di seluruh dokumen .
Di Firefox ini cukup sederhana, cukup atur
word-spacing: -1em
pada elemen induk. Untuk beberapa alasan, Chrome mengabaikan ini (dan sejauh yang saya uji, itu mengabaikan spasi kata terlepas dari nilainya). Jadi selain ini saya menambahkanletter-spacing: -.31em
kepada orang tua danletter-spacing: normal
anak-anak. Bagian dari em ini adalah ukuran spasi HANYA JIKA ukuran em Anda distandarisasi . Firefox, pada gilirannya, mengabaikan nilai negatif untuk spasi huruf, sehingga tidak akan menambahkannya ke spasi kata.Saya menguji ini di Firefox 13 (win / ubuntu, 14 di android), Google Chrome 20 (win / ubuntu), Browser Android di ICS 4.0.4 dan IE 9. Dan saya tergoda untuk mengatakan ini juga dapat berfungsi di Safari, tapi aku tidak begitu tahu ...
Berikut demo http://jsbin.com/acucam
sumber
word-spacing: -1em
gaya tampaknya membuat kata-kata tumpang tindih dalam versi saat ini dari Chrome.Saya terlambat (saya baru saja mengajukan pertanyaan dan menemukan kekurangan di bagian terkait) tetapi saya pikir display: table-cell; adalah solusi yang lebih baik
satu-satunya masalah adalah itu tidak akan berfungsi pada IE 7 dan versi sebelumnya tetapi itu dapat diperbaiki dengan hack
sumber
display: table-*
pembaca layar semantik dan membacakan seolah-olah pengguna sedang menavigasi tabel.Gunakan lembar gaya CSS untuk menyelesaikan masalah ini seperti kode berikut.
teks alt http://rabu4g.bay.livefilestore.com/y1pWoAOBMiLumd2iQTAreYjQCDIkHImh2g_b2g9k4AnxtDNrCjvzL6bK7skG8QKMRNWkMG7N8e5Xm7noPL3tdRJd2y08/
Pengujian di Firefox 3.5 Final!
PS. html Anda harus seperti ini.
sumber
Tidak juga. Karena
<img>
s adalah elemen sebaris, spasi di antara elemen ini dianggap oleh perender HTML sebagai spasi sebenarnya dalam teks - spasi yang berlebihan (dan jeda baris) akan dipotong tetapi spasi tunggal akan disisipkan ke dalam data karakter elemen teks.Memposisikan
<img>
tag benar-benar dapat mencegah hal ini tetapi saya menyarankan untuk tidak melakukannya karena ini berarti memposisikan setiap gambar secara manual ke beberapa ukuran piksel yang bisa menjadi pekerjaan yang berat.sumber
Solusi lain adalah menggunakan jeda baris yang tidak konvensional di tempat-tempat ruang. Ini mirip dengan jawaban pasangan pertama, dan merupakan cara alternatif untuk menyusun elemen. Ini juga merupakan teknik pengoptimalan tepi super karena menggantikan spasi di markup Anda dengan carriage return.
Perhatikan bahwa tidak ada spasi di salah satu kode itu. Tempat-tempat di mana spasi biasanya digunakan dalam HTML diganti dengan carriage return. Ini kurang bertele-tele daripada menggunakan komentar dan menggunakan spasi seperti yang direkomendasikan oleh Paul de Vrieze.
Penghargaan untuk tech.co untuk pendekatan ini.
sumber
spasi: awal; Bekerja untuk saya.
sumber
Spasi putih antara elemen hanya diletakkan di sana oleh editor HTML untuk tujuan pemformatan visual. Anda dapat menggunakan jQuery untuk menghapus spasi:
Ini melepaskan elemen anak, membersihkan spasi kosong yang tersisa sebelum menambahkan kembali elemen anak.
Berbeda dengan jawaban lain untuk pertanyaan ini, menggunakan metode ini memastikan bahwa css
display
danfont-size
nilai yang diwarisi dipertahankan. Ada juga tidak perlu menggunakanfloat
dan rumitclear
yang kemudian diperlukan. Tentu saja, Anda harus menggunakan jQuery.sumber
Secara pribadi saya menyukai jawaban yang diterima yang menyatakan tidak ada cara pasti untuk melakukan ini, tidak dengan menggunakan trik dari beberapa bentuk.
Bagi saya, ini adalah masalah yang menjengkelkan dengan kadang-kadang dapat membuat Anda membuang waktu satu jam bertanya-tanya mengapa deretan kotak centang misalnya tidak semuanya disejajarkan dengan benar .. Oleh karena itu saya harus cepat google dan saya sendiri memeriksa apakah ada aturan css yang belum saya ingat ... tapi sepertinya tidak :(
Adapun jawaban terbaik berikutnya, menggunakan ukuran font ... bagi saya ini adalah peretasan jahat yang akan menggigit Anda nanti bertanya-tanya mengapa teks Anda tidak muncul.
Saya biasanya mengembangkan banyak hal dengan PHP dan dalam kasus di mana saya membuat kotak centang, konten yang dihasilkan PHP menghilangkan masalah ini karena tidak menyisipkan spasi / jeda.
Sederhananya, saya akan menyarankan baik harus berurusan dengan semua gambar dalam satu baris bersama-sama atau menggunakan skrip sisi server untuk menghasilkan konten / gambar.
sumber
Alih-alih menggunakan untuk menghapus CR / LF antar elemen, saya menggunakan instruksi pemrosesan SGML karena minifier sering menghapus komentar, tetapi bukan XML PI. Ketika PI PHP diproses oleh PHP, ia memiliki manfaat tambahan untuk menghapus PI sepenuhnya bersama dengan CR / LF di antaranya, sehingga menghemat setidaknya 8 byte. Anda dapat menggunakan nama instruksi valid sembarang seperti dan menyimpan dua byte dalam X (HT) ML.
sumber
Terinspirasi oleh jawaban Quentin , Anda juga dapat menempatkan penutup> di sebelah awal tag berikutnya.
sumber
Berbicara secara semantik, bukankah lebih baik menggunakan daftar berurutan atau tidak berurutan lalu menatanya dengan tepat menggunakan CSS?
Dengan menggunakan CSS, Anda dapat menata gaya ini dengan cara apa pun yang Anda inginkan dan menghapus spasi putih di antara buku-buku tersebut.
sumber