.container {
width: 850px;
padding: 0;
display: table;
margin-left: auto;
margin-right: auto;
}
.row {
display: table-row;
margin-bottom: 30px;
/* HERE */
}
.home_1 {
width: 64px;
height: 64px;
padding-right: 20px;
margin-right: 10px;
display: table-cell;
}
.home_2 {
width: 350px;
height: 64px;
padding: 0px;
vertical-align: middle;
font-size: 150%;
display: table-cell;
}
.home_3 {
width: 64px;
height: 64px;
padding-right: 20px;
margin-right: 10px;
display: table-cell;
}
.home_4 {
width: 350px;
height: 64px;
padding: 0px;
vertical-align: middle;
font-size: 150%;
display: table-cell;
}
<div class="container">
<div class="row">
<div class="home_1"></div>
<div class="home_2"></div>
<div class="home_3"></div>
<div class="home_4"></div>
</div>
<div class="row">
<div class="home_1"></div>
<div class="home_2"></div>
</div>
</div>
Pertanyaan saya terkait dengan baris yang ditandai HERE
di CSS. Saya menemukan bahwa baris tersebut terlalu dekat satu sama lain, jadi saya mencoba menambahkan margin bawah untuk memisahkannya. Sayangnya itu tidak berhasil. Saya harus menambahkan margin ke sel tabel untuk memisahkan baris.
Apa alasan dibalik perilaku ini?
Juga, bolehkah menggunakan strategi ini untuk melakukan tata letak seperti yang saya lakukan:
[icon] - text [icon] - text
[icon] - text [icon] - text
atau apakah ada strategi yang lebih baik?
Jawaban:
Lihat standar CSS 2.1, bagian 17.5.3. Saat Anda menggunakan
display:table-row
, ketinggian DIV hanya ditentukan oleh ketinggiantable-cell
elemen di dalamnya. Jadi, margin, padding, dan tinggi pada elemen tersebut tidak berpengaruh.http://www.w3.org/TR/CSS2/tables.html
sumber
Bagaimana ini untuk pekerjaan sekitar (menggunakan tabel aktual)?
Ini tidak dinamis, karena Anda harus secara eksplisit mengatur warna perbatasan (kecuali ada jalan lain juga), tapi ini adalah sesuatu yang saya coba pada proyek saya sendiri.
Edit untuk memasukkan komentar tentang
transparent
:sumber
Hal terdekat yang pernah saya lihat adalah menyetel
border-spacing: 0 30px;
ke div kontainer. Namun, ini hanya menyisakan saya dengan ruang di tepi atas tabel, yang mengalahkan tujuan, karena Anda menginginkan margin-bottom.sumber
line-height
margin: -30px 0
.Sudahkah Anda mencoba mengatur margin bawah ke
.row div
, yaitu ke "sel" Anda? Saat Anda bekerja dengan tabel HTML yang sebenarnya, Anda tidak dapat mengatur margin ke baris juga - hanya ke sel.sumber
display: table
. Namun, itu tidak sama dengan margin ...Ada perbaikan yang cukup sederhana untuk ini, atribut
border-spacing
danborder-collapse
CSS berfungsidisplay: table
.Anda dapat menggunakan berikut ini untuk mendapatkan padding / margin di sel Anda.
Perhatikan bahwa Anda harus memiliki
Jika tidak, itu tidak akan berhasil.
sumber
Biola
ini bisa menjadi solusi lain
sumber
Tambahkan rentang jarak antara dua elemen, lalu buat tidak terlihat:
sumber
Pekerjaan - Tambahkan Spasi Ke Tabel
sumber
Jika Anda menginginkan margin tertentu misalnya 20px, Anda dapat meletakkan tabel di dalam div.
Jadi #tableDiv memiliki margin 20px tetapi tabel itu sendiri memiliki lebar 100%, memaksa tabel menjadi lebar penuh kecuali margin di kedua sisinya.
sumber
menambahkan tag br di antara div berhasil. tambahkan tag br di antara dua div yang display: table-row dalam induk dengan display: table
sumber