CSS box model
In web development, the CSS box model refers to the composition of a webpage or HTML page from blocks or boxes using CSS. Specifically, the box model describes how the size of each such block and its content is determined through styling instructions. The guidelines of the box model are described by the World Wide Web Consortium (W3C).
Specifics
The content of each box is determined by 4 parameters:
- the height/width describes the dimensions of the actual content of the box (text, images, ...)
- the padding describes the space between this content and the border of the box
- the border is any kind of line (solid, dotted, dashed...) surrounding the box, if present
- the margin is the space around the border
The total width of a box is therefore the width of the content, plus (left- and right-) padding, plus (left- and right-) border, plus (left- and right-) margin. Similarly, the total height of a box equals the height of the content, plus (top- and bottom-) padding, plus (top- and bottom-) border, plus (top- and bottom-) margin.
For example, the following CSS code
myClass {
width: 200px;
height: 100px;
padding: 10px;
border: solid 10px black;
margin: 10px;
}
will specify the box dimensions of each block belonging to 'myClass'. Moreover, each such box will have total height 160px and width 260px, which is the sum of the content, padding, border and margin.
Bugs
While the W3C recommendations specify the box model in a clear and unambiguous way, some older browsers do not apply it correctly. Therefore, they may not display the box dimensions of a web page correctly. The most notable bug in correctly applying the box model occurs in older versions of Internet Explorer, and is known as the Internet Explorer box model bug.