Floating columns is the more common and traditional approach. Bootstrap and Foundation both use floats. However, each method has its drawbacks and it's deciding which drawbacks you want to live with will determine which route you will take. I personally prefer inline-block.
Floats
Floats are easier to set up. If you add this code to the parent element of those floats, it won't collapse.
.parent:after {
display: block;
content: ".";
clear: both;
height: 0;
visibility: hidden;
font-size: 0;
}
Add this to col 1, 2, and 3 to make them floats and give them individual widths:
col1, col2, col3 {
display: block;
float: left;
}
You might also think about adding border-box
so padding and borders don't collapse your grid.
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
Floats don't have extra white space problems that inline-block naturally does, so it's a reasonable choice, however you cannot position things vertically in floats like you can in inline-blocks without JavaScript.
Inline-block
Inline-blocks have a white space problem you must fix, but the reward is you get to control the elements vertical positioning. Also the parents of inline-blocks don't collapse on them.
col1, col2, col3 {
display: inline-block;
margin-right: -0.25em; //This removes the white space created by the "inline" properties of this display type
vertical-align: top; //Inline-block naturally aligns to the bottom, so this will give it more expected behavior.
}
You don't have to do anything special with the parent, and you don't have to worry as much about how other elements will interact with it. But both ways are effective, only inline-block is a little more capable.