可变宽度取决于位置?

时间:2013-05-14 15:58:09

标签: css

如果我将position:absolute分配给某个元素,则其width将不会变化,具体取决于其中的文字。

另一方面,如果我将position:relative分配给该元素,则width会因内部文字而异。

这里我有两个菜单,每个菜单都有一个不同的position属性: http://jsfiddle.net/je3PX/4/

这是什么原因?为什么width取决于position属性? 我希望它取决于文字大小。

感谢。

1 个答案:

答案 0 :(得分:9)

width的默认值为auto,这意味着它会根据需要自行调整布局。对于块级元素(display:block等),这意味着适应父容器,对于内联元素(display:inline等),这意味着适应内容。

position属性因素是值relative 将元素从常规流布局中取出,因此基本规则仍然维护。值absolute确实将其从常规流布局中取出,因此不再有基于宽度的父级,因此回退到适合内容。

相关规则在chapter 10 of the W3 CSS2 specification中定义(引用时间太长)。