This site is mobile accessible. Press the "Tap Here" button to use a smaller font-size.
Smartphone icons created by Freepik - Flaticon
This page contains common float examples. With the
property, it is easy to float boxes of content side by side:* { box-sizing: border-box; } .box { float: left; width: 33.33%; /* three boxes (use 25% for four, and 50% for two, etc) */ padding: 50px; /* if you want space between the images */ }
What is box-sizing?
You can easily create three floating boxes side by side. However, when you add
something that enlarges the width of each box (e.g. padding or borders), the box
will break. The property allows us to include
the padding and border in the box's total width (and height), making sure that the
padding stays inside of the box and that it does not break.
You can read more about the box-sizing property in our CSS Box Sizing Chapter.
The grid of boxes can also be used to display images side by side:
.img-container { float: left; width: 33.33%; /* three containers (use 25% for four, and 50% for two, etc) */ padding: 5px; /* if you want space between the images */ }
In the previous example, you learned how to float boxes side by side with an equal width. However, it is not easy to create floating boxes with equal heights. A quick fix however, is to set a fixed height, like in the example below:
.box { height: 500px; }
However, this is not very flexible. It is ok if you can guarantee that the boxes will always have the same amount of content in them. But many times, the content is not the same. If you try the example above on a mobile phone, you will see that the second box's content will be displayed outside of the box. This is where CSS3 Flexbox comes in handy - as it can automatically stretch boxes to be as long as the longest box:
Using Flexbox to create flexible boxes:
.flex-container { display: flex; flex-wrap: nowrap; background-color: DodgerBlue; } .flex-container .box { background-color: #f1f1f1; width: 50%; margin: 10px; text-align: center; line-height: 75px; font-size: 30px; }
The only problem with Flexbox is that it does not work in Internet Explorer 10 or earlier versions. You can read more about the Flexbox Layout Module in our CSS Flexbox Chapter.
Use float with a list of hyperlinks to create a horizontal menu:
ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; } li { float: left; } li a { display: inline-block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } li a:hover { background-color: #111; } .active { background-color: red; }
It is also common to do entire web layouts using the float property:
.header, .footer { background-color: grey; color: white; padding: 15px; } .column { float: left; padding: 15px; } .clearfix::after { content: ""; clear: both; display: table; } .menu { width: 25%; } .content { width: 75%; }
Property | Description |
---|---|
box-sizing | Defines how the width and height of an element are calculated: should they include padding and borders, or not |
clear | Specifies what elements can float beside the cleared element and on which side |
float | Specifies how an element should float |
overflow | Specifies what happens if content overflows an element's box |
overflow-x | Specifies what to do with the left/right edges of the content if it overflows the element's content area |
overflow-y | Specifies what to do with the top/bottom edges of the content if it overflows the element's content area |