3

如果我有一个 HTML 页面链接到两个这样调用的样式表:

<link rel="stylesheet" href="original.css" media="screen, projection" />
<link rel="stylesheet" href="override.css" media="screen, projection" />

如果这两个文件定义了完全相同的样式名称,是否真的original.css不会影响样式页面的结果,并且所有样式都来自于定义的样式override.css

我问的原因是:我有一个original.css我无法修改的,我不想触及调用这个文件的代码行。相反,我想在调用原始文件后立即插入对新文件的调用并覆盖原始文件中定义的所有内容。我不确定这是否可行,是否可取等。

4

4 回答 4

4

是的,这会奏效。你是对的,但它并不是真正可取的。您可以在其周围插入注释标签,而不是“不触及”原始代码行吗?

于 2009-06-28T06:09:10.780 回答
4

是的,确实可以。这就是级联样式表的级联位。

不过我得问,你为什么不能删除 original.css,或者不输出它,或者....什么?完全覆盖原始文件中的所有内容似乎是一种非常大的锤子方法 :-) 如果您确实输出 original.css 和 override.css,则浏览器将不得不做更多的工作而不是只输出覆盖.css。

于 2009-06-28T06:09:35.070 回答
1

它将覆盖所有被覆盖的内容,但将补充所有不一样但不同的应用信息到类或 id 或伪选择器或其他任何东西。我的意思是,即:

原始.css -

p { margin: 4px 6px 10px 12px; }
h1 { font-size: 2.2em }

覆盖.css -

p { padding: 6px; color: #666666; }
h1 { font-size: 1.5em }

我说的是在 override.css 中对 P 进行了补充,因为样式之间不会相互冲突。另一方面,H1 示例确实被覆盖,并且每个样式表中的两条规则相互冲突,因此最后一个声明获胜。

这并不像人们想象的那么糟糕......几个月前我刚刚结束了一个moodle网站,它是一个风格和数据嵌入等的疯人院。该模板使用来自 DEFAULT 模板的样式表数据,然后来自 PAGE 模板,然后来自 COURSE。当我试图意识到什么样式做了什么时,我因为没有找到正确的代码来为自己更改而感到如此压力......我最终决定附上我自己的样式表,其中包含新的覆盖样式和新的补充样式。这让我节省了大约两周的时间来挖掘设计者从未梦想过的代码地狱。

希望这可以帮助您获得更清晰的想法。

再见。

于 2009-07-20T20:10:32.890 回答
1

这种需求的一个很好的例子是 Sharepoint。编辑任何主题都会给您留下大量需要从 core.css 类中覆盖的更改。

于 2010-03-30T13:24:47.133 回答