<span>
元素使用position: absolute;
可以有高度、宽度、内边距等样式,而不需要将其更改为display: block;
或inline-block;
。这似乎是有效的,但是对于所有浏览器来说,在position: absolute;
下省略display: block/inline-block
是否都可以?
规范说明:
否则,如果'position'的值为'absolute'或'fixed',则该框被绝对定位,'float'的计算值为'none',并根据下表设置显示。该框的位置将由'top'、'right'、'bottom'和'left'属性及框所在的包含块确定。
该表格说明任何内联display
值(inline、table-row-group、table-column、table-column-group、table-header-group、table-footer-group、table-row、table-cell、table-caption、inline-block)将变为block
。
简短回答:是的。
详细回答:请参阅http://www.w3.org/TR/CSS21/visuren.html#dis-pos-flo(或SLaks的回答)。
然而,此更改仅涉及元素的可视显示模型。CSS无法影响HTML元素的内容模型,因为CSS仅在文档解析为DOM树后应用。因此,span
元素永远不可能有p
或div
子元素,无论应用哪些样式。