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>