Mayeul said:
It is not both, it is a block.
A block that is laid out inline, the same way an <img> would, instead of
forcing sibling boxes to pile up and down to it.
Good analogy. The similarity with images is that, like images (in
their default display), inline-blocks are inline but what is
inside them cannot be wrapped in the normal flow of the inline
boxes' containing block and yet what goes after them is normal
flow wrappable text again. Take as an example:
<div class="containingblock">
Text directly in div of class "container".
<div style="display: inline-block;>
Text directly in inline block.
</div>
More text directly in div of class "containingblock"
</div>
This will *look* in most browsing situations exactly as it would
if the inline div was not there at all. As in:
<div class="containingblock">
Text directly in div of class "container". Text directly in
inline block. More text directly in div of class "containingblock"
</div>
But the differences between the latter and the former are
significant and just with text alone, you can see this by simply
enlarging the text size or narrowing the browser window; the
inline stuff directly in "containingblock" will all wrap
perfectly but the stuff *directly inside* the inline block will
not unless it needs to because it cannot fit into its own width.
And you can verify this by simply giving this inline block a
small width forcing wrap of its own internal text. What happens
is that the inline block grows tall (like a tree from bottom up
and unlike a float which behaves more like a hanging monkey...)
to cope with its content. Yes, it becomes like a taller inline
image - a sort of intelligent image that can hold real HTML
wrappable text.
It is this intelligence, which includes shrink to fit qualities,
combined with that it grows from the bottom up with being inline
that makes it so attractive for laying out thumbnails. You don't
get the snagging that occurs with floats when there are all
different sizes and the thumbs *sit* nicely and intuitively on
lines.