W3C source for the quotes below.
The following values of the 'display' property make an element inline-level: 'inline', 'inline-table', and 'inline-block'
Thus, an element with display: inline-block
is an inline-level element.
Inline-level elements generate inline-level boxes, which are boxes that participate in an inline formatting context.
Thus, all inline-level boxes participate in an inline formatting context.
An inline box is one that is both inline-level and whose contents participate in its containing inline formatting context
If all inline-level boxes participate in an inline formatting context, and an inline box is one that is both an inline-level box and participates in an inline formatting context, it must be true that all inline-level boxes are inline boxes, and vice versa.
And finally, here comes the statement that then breaks the logic:
Inline-level boxes that are not inline boxes (such as replaced inline-level elements, inline-block elements, and inline-table elements) are called atomic inline-level boxes...
In other words:
First we are told, via logical implication, that all inline-level boxes are inline boxes. Then, we are told the opposite: That several inline-level boxes (like those generated by elements with display: inline-block
), are in fact not inline boxes.
Am I missing something or are the quotes contradicting each other?
EDIT
- I found the following post by @BoltClock, which is really good: CSS Spec - Atomic Inline Level Boxes
- I also posted an answer to another question, after understanding the whole concept a bit better. It can be found here: Difference between inline box and atomic inline box