Your problem is that .a
has 15% of width, therefore the whole 15% will be swapped into the next line. My recommendation would be to make #t
a multiple in size of .a
, for example 90% or 105%. If you want not to change #t
but if you can change .a
, make .a
10% or 20%.
See here:
Your html stays the same.
#t {
height: 160px;
width: 90%;
background-color: #808080;
font-size: 0;
display: block;
}
.a {
width: 15%;
height: 80px;
background-color: black;
display: inline-block;
float: left;
}
<div id="t">
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
</div>
or:
Here you can also use 105% width.
And your html stays again the same.
#t {
height: 160px;
background-color: #808080;
font-size: 0;
display: block;
}
.a {
width: 10%;
height: 80px;
background-color: black;
display: inline-block;
float: left;
}
<div id="t">
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
</div>
Another solution would be to use flex
:
#t {
height: 160px;
background-color: #808080;
font-size: 0;
display: flex;
}
.a {
width: 15%;
height: 80px;
background-color: black;
display: inline-block;
float: left;
}
<div id="t">
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
</div>