我想将overflow
(或overflow-x
和overflow-y
)设置为一般对象(hidden
)的某个值(*
)并覆盖overflow-x
{到visible
)特定对象(foo
),而不更改overflow-y
。
我做了:
*{overflow: hidden;}
foo{overflow-x: visible;}
当我在Google Chrome开发人员的工具中检查foo
个对象时,这两个规格
overflow: hidden
(来自*
)和overflow-x: visible
(来自foo
)有效。但是,从视觉上看,似乎overflow: hidden
覆盖了overflow-x: visible
。这违背了我的期望,即更具体的foo
规范应该覆盖不太具体的*
规范。
当我改为:
*{overflow: hidden;}
foo{overflow: visible;}
然后,似乎overflow: visible
(来自foo
)覆盖overflow: hidden
(来自*
),正如我所预期的那样,但overflow-y
代表foo
visible
也设置为overflow
,我不想要。
overflow-x
规范是否优先于overflow-y
和overflow-x
?如果没有,发生了什么?
<小时/> 编辑也许事情比我想象的要复杂得多。将
visible
设置为overflow-x
会删除水平滚动条,这会降低对象的高度,这可能会产生干扰。
<小时/> 修改在this question和this question的回答中看起来有提示。特别是,根据W3C规范,当
overflow-y
或visible
设置为visible
而另一个设置为其他内容时,auto
会变为{{ 1}}。这是一个奇怪的规范。