【发布时间】:2008-09-19 18:50:48
【问题描述】:
我正在尝试对我无法控制的 HTML 输出进行皮肤处理。其中一个元素是带有style="overflow: auto" 属性的div。
CSS中有没有办法强制div使用overflow: hidden;?
【问题讨论】:
我正在尝试对我无法控制的 HTML 输出进行皮肤处理。其中一个元素是带有style="overflow: auto" 属性的div。
CSS中有没有办法强制div使用overflow: hidden;?
【问题讨论】:
您可以在样式末尾添加!important,如下所示:
element {
overflow: hidden !important;
}
这是您通常不应该依赖的东西,但在您的情况下,这是最好的选择。更改 Javascript 中的值偏离了分离标记、表示和行为 (html/css/javascript) 的最佳实践。
【讨论】:
您是否尝试在 CSS 文件中设置 !important?比如:
#mydiv { overflow: hidden !important; }
【讨论】:
不确定这是否可行,尚未使用overflow 进行测试。
overflow:hidden !important
也许?
【讨论】:
如果 div 具有内联样式声明,那么在不更改源代码的情况下修改它的唯一方法是使用 JavaScript。内联样式属性每次都在 CSS 中“获胜”。
【讨论】:
Magnar 是正确的,正如下面粘贴的 W3C 规范所解释的那样。似乎添加了 !important 关键字以允许用户在元素级别覆盖甚至“烘焙”样式设置。由于您处于无法控制 html 的情况,这可能是您的最佳选择,尽管它不是正常的设计模式。
摘录:
6.4.2 !重要规则 CSS 试图在作者和用户风格之间建立权力平衡 床单。默认情况下,规则 作者的样式表覆盖那些 用户的样式表(参见级联规则 3)。
However, for balance, an "!important" declaration (the keywords“!”和“重要”跟随 声明)优先于 正常声明。作者和 用户样式表可能包含 “!important”声明和用户 "!important" 规则覆盖作者 “!重要”规则。这个 CSS 功能 通过以下方式提高文档的可访问性 给有特殊要求的用户 (大字体,颜色组合, 等)控制演示。
Note. This is a semantic change since CSS1. In CSS1, author"!important" 规则优先 超过用户“!重要”规则。
Declaring a shorthand property (e.g., 'background') to be"!important" 等价于 将其所有子属性声明为 是“!重要的”。
Example(s): The first rule in the user's style sheet in the following example包含一个“!important”声明, 它覆盖了相应的 作者风格的声明 床单。第二次声明将 也因被标记而获胜 “!重要的”。但是,第三条规则 在用户的样式表中没有 “!important”,因此会输 根据作者的第二条规则 样式表(恰好设置 速记属性的样式)。还, 第三作者规则将输给 自第二次以来的第二作者规则 规则是“!重要”。这表明 "!important" 声明有一个 功能也在作者风格内 床单。
/* From the user's style sheet */ P { text-indent: 1em ! important } P { font-style: italic ! important } P { font-size: 18pt } /* From the author's style sheet */ P { text-indent: 1.5em !important } P { font: 12pt sans-serif !important } P { font-size: 24pt }
【讨论】:
据我所知,实际 HTML 元素的样式会覆盖您可以在单独的 CSS 样式中执行的任何操作。
但是,您可以使用 Javascript 来覆盖它。
【讨论】: