inline-blockÖğeleri kullanırken , whitespace bu öğeler arasında her zaman bir sorun olacaktır (bu alan yaklaşık 4 piksel genişliğindedir).
Yani, divsher ikisi de% 50 genişliğe sahip olan whitespaceikinizin artı (~ 4px) genişliği% 100'den fazladır ve bu yüzden kırılır. Sorununuza örnek:
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>
Bunu düzeltmenin birkaç yolu var:
1. Bu öğeler arasında boşluk yok
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. HTML yorumlarını kullanma
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. anne Set font-sizeiçin 0ve sonra bazı değer ekleyerek inline-blockelemanları
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. Aralarında negatif bir kenar boşluğu kullanmak ( tercih edilmez )
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. Kapanma açısı düşüyor
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. Belirli HTML kapanış etiketlerini atlama ( referans için @thirtydot'a teşekkürler )
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>
Referanslar:
- CSS Hilelerinde Satır İçi Blok Öğeleri Arasındaki Boşlukla Mücadele
- Satır İçi Blok Öğeler Arasındaki Boşluğu Kaldır, David Walsh
- Satır içi blok öğeler arasındaki boşluk nasıl kaldırılır?
As MarcosPérezGude @ söyledi , iyi yolu kullanmaktır remve bazı varsayılan değer katmak font-sizeüzerine html(olduğu gibi etiketi HTML5Boilerplate ). Misal:
html{
font-size: 1em;
}
.ib-parent{
font-size: 0;
}
.ib-child{
display: inline-block;
font-size: 1rem;
}
Güncelleme : neredeyse 2018 olduğu için flexbox veya daha iyisi - CSS ızgara düzenini kullanın .