Your problem is that inline-block
elements with overflow
set to anything other than visible
have a baseline that's at the bottom edge of the box (actually, of the bottom margin of the box) instead of having a baseline at the text baseline. See http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align the very last paragraph.
Then that baseline, which basically corresponds to the bottom edge of the span
's border in your situation is aligned with the baseline of the label
, which is the actual baseline of the text in the label. So the text of the label
ends up below the text of the span
visually.
WebKit doesn't follow the spec here and seems to be unwilling to change that because there's WebKit-specific non-Web content that depends on its current behavior. That's why you're not seeing the effect in WebKit.
Opera 11 does the same thing as IE and Firefox here, per spec.
Oh, and as far as fixing, you can either change the vertical-align of the label
or take out the overflow
on the span
, assuming you actually need the span
to be inline-block
.