Css 可变宽度取决于位置?
如果我将Css 可变宽度取决于位置?,css,Css,如果我将position:absolute指定给元素,则其宽度将不会随内部文本的不同而变化 另一方面,如果我将position:relative指定给该元素,则宽度将根据内部文本的不同而变化 这里我有两个菜单,每个菜单都有不同的位置属性: 这是什么原因?为什么宽度取决于位置属性? 我想让它根据文本大小而变化 谢谢。宽度的默认值为自动,这意味着它将根据需要调整自身以适应布局。对于块级元素(display:block等),这意味着适应父容器;对于内联元素(display:inline等),这意味着
position:absolute
指定给元素,则其宽度将不会随内部文本的不同而变化
另一方面,如果我将position:relative
指定给该元素,则宽度将根据内部文本的不同而变化
这里我有两个菜单,每个菜单都有不同的位置
属性:
这是什么原因?为什么宽度
取决于位置
属性?
我想让它根据文本大小而变化
谢谢。宽度的默认值为自动
,这意味着它将根据需要调整自身以适应布局。对于块级元素(display:block
等),这意味着适应父容器;对于内联元素(display:inline
等),这意味着适应内容
位置
属性的因素是,值相对
不将元素从常规流布局中移除,因此基本规则仍然保持不变。值absolute
确实会将其从常规流布局中移除,因此不再有父级作为宽度的基础,因此会返回以适应内容
相关规则在中定义(太长,无法引用)。+1精彩的解释。但是..现在如此普遍的浮动菜单的解决方案是什么呢?好吧,最后你有两个选择-让浏览器缩小以适应,或者指定一个固定的宽度。对于没有关系布局的东西,没有其他可行的选择。这也是我检查过的所有下拉列表的工作原理。如果你需要一些具体的东西,你可以问一个问题,看看是否有可能我最终使用了@jasonmerino命名的空白:nowrap
。它似乎起到了作用。因为它迫使内容更宽,因此收缩到适合的行为必须考虑到这一点。我知道这并不是在回答你的问题,但如果你需要绝对定位,但不希望文本被包装,你可以使用空白:nowrap
on。floatingMenu