Saat menggunakan inline-blockelemen, akan selalu ada whitespace masalah di antara elemen tersebut (ruang itu berukuran sekitar ~ 4px lebar).
Jadi, keduanya divs, yang keduanya memiliki lebar 50%, ditambah dengan whitespace(~ 4px) lebarnya lebih dari 100%, dan itu rusak. Contoh masalah Anda:
body{
margin: 0;
}
div{
display: inline-block;
width: 50%;
}
.left{
background-color: aqua;
}
.right{
background-color: gold;
}
<div class="left">foo</div>
<div class="right">bar</div>
Ada beberapa cara untuk memperbaikinya:
1. Tidak ada spasi di antara elemen-elemen tersebut
body{
margin: 0;
}
div{
display: inline-block;
width: 50%;
}
.left{
background-color: aqua;
}
.right{
background-color: gold;
}
<div class="left">foo</div><div class="right">bar</div>
2. Menggunakan komentar HTML
body{
margin: 0;
}
div{
display: inline-block;
width: 50%;
}
.left{
background-color: aqua;
}
.right{
background-color: gold;
}
<div class="left">foo</div><div class="right">bar</div>
3. Atur orang tua font-sizemenjadi 0, dan kemudian tambahkan beberapa nilai pada inline-blockelemen
body{
margin: 0;
}
.parent{
font-size: 0;
}
.parent > div{
display: inline-block;
width: 50%;
font-size: 16px;
}
.left{
background-color: aqua;
}
.right{
background-color: gold;
}
<div class="parent">
<div class="left">foo</div>
<div class="right">bar</div>
</div>
4. Menggunakan margin negatif di antara keduanya ( tidak disukai )
body{
margin: 0;
}
div{
display: inline-block;
width: 50%;
margin-right: -4px;
}
.left{
background-color: aqua;
}
.right{
background-color: gold;
}
<div class="left">foo</div>
<div class="right">bar</div>
5. Menjatuhkan sudut penutupan
body{
margin: 0;
}
div{
display: inline-block;
width: 50%;
}
.left{
background-color: aqua;
}
.right{
background-color: gold;
}
<div class="left">foo</div
><div class="right">bar</div>
<hr>
<div class="left">foo</div><div class="right">
bar</div>
6. Melewati tag penutup HTML tertentu (terima kasih @thirtydot untuk referensinya )
body{
margin: 0;
}
ul{
margin: 0;
padding: 0;
}
li{
display: inline-block;
width: 50%;
}
.left{
background-color: aqua;
}
.right{
background-color: gold;
}
<ul>
<li class="left">foo
<li class="right">bar
</ul>
Referensi:
- Memerangi Ruang Antara Elemen Blok Inline pada Trik CSS
- Hapus Spasi Putih Antara Elemen Blok-Inline oleh David Walsh
- Bagaimana cara menghapus spasi di antara elemen blok sebaris?
Seperti @ MarcosPérezGude mengatakan , yang terbaik cara adalah dengan menggunakan rem, dan menambahkan beberapa nilai default untuk font-sizedi htmltag (seperti di HTML5Boilerplate ). Contoh:
html{
font-size: 1em;
}
.ib-parent{
font-size: 0;
}
.ib-child{
display: inline-block;
font-size: 1rem;
}
Pembaruan : karena hampir 2018., gunakan flexbox atau bahkan lebih baik - tata letak kisi CSS .