Robert Rocha Robert Rocha - 3 months ago 11
HTML Question

CSS display: inline-block drops to next line

I have a simple grid that I am testing out.

I decided to change something from

float: left
to
display: inline-block
in the attribute selector
[class*='col-]
.

I am wondering why when using
float: left
there is enough space for
col-9
and everything works fine but, when using
display: inline-block
the element drops down to the next line.



* {
box-sizing: border-box;
}

.header {
border: 1px solid red;
padding: 15px;
}

.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}

[class*='col-'] {
display: inline-block;
padding-top: 15px;
border: 1px solid red;
}

<div class='header'>
<h1>China</h1>
</div>
<div class='row'>
<div class='col-3'>
<ul>
<li>The Flight</li>
<li>The City</li>
<li>The Island</li>
<li>The Food</li>
</ul>
</div>
<div class='col-9'>
<h1>The City</h1>
<p>Chania is the capital of the Chania region on the island of Crete. The city can be divided in two parts, the old town and the modern city.</p>
<p>Resize the browser window to see how the content respond to the resizing.</p>
</div>
</div>




Answer
<div class='header'>
        <h1>China</h1>
    </div>
    <div class='row'>
        <div class='col-3'>
            <ul>
                <li>The Flight</li>
                <li>The City</li>
                <li>The Island</li>
                <li>The Food</li>
            </ul>
        </div><!--
        --><div class='col-9'>
            <h1>The City</h1>
            <p>Chania is the capital of the Chania region on the island of Crete. The city can be divided in two parts, the old town and the modern city.</p>
            <p>Resize the browser window to see how the content respond to the resizing.</p>
        </div>
    </div>

small hack, try these <!-- --> it ignores the whitespace

EDIT: and if you want to remove the tiny gap to your header:

.col-9 {
  vertical-align: top;
}

demo