0

我在 DNN 环境中工作,其中每个站点加载的默认样式表设置伪类的样式。我可以编辑默认样式表,但由于这是库存并且带有所有升级,我宁愿不理会它并在皮肤级别覆盖它们的样式。

有谁知道让所有这些伪类再次开始收听独立元素的解决方案?

A:link
{
    text-decoration: none;
    color: #003366;
}

A:visited
{
    text-decoration: none;
    color: #003366;
}

A:hover
{
    text-decoration: underline;
    color: #ff0000;
}

A:active
{
    text-decoration: none;
    color: #003366;
}

还有,再强也a:hover {}总能打不过?selector a {}selector


编辑:我不想使用 !important 因为我必须在任何地方使用重要,并且我不想在文档中嵌入任何样式。

我的假设是 a:link{text-decoration:none;} 只会被相同的伪类覆盖,我希望有一种方法可以解决必须始终为每个 a 标签定义伪类的方法。

4

3 回答 3

2

如果您<style>在 HTML 本身的标签中包含声明,它将覆盖外部样式表中设置的任何样式。

另一种解决方案是创建第二个 CSS 文档来覆盖现有的 CSS。确保在包含现有 CSS 文件(适用于 IE 6 兼容)之后包含此 CSS 文件。然后!important在要覆盖的所有样式上使用标签。

有关更多信息,请参阅 W3 规范中有关CSS 级联的部分。

编辑:回答你的第二个问题。 a:hover{}会打败selector a{},但selector a:hover{}会打败a:hover{}

于 2009-06-17T19:23:32.330 回答
0

另外,无论选择器有多强大,a:hover {}总是会击败选择器?a {}

这取决于:在设置冲突属性的情况下,更具体的选择器将获胜;否则,它们将是累加的。(除非,当然,你正在做的事情!important......)

于 2009-06-17T19:31:14.013 回答
0

我刚刚在使用 :first-child 和 :last-child 时测试了加载时间。每个(在我的本地机器上)的差异似乎在 8 毫秒左右,尽管我不肯定它是否会随着您使用的越多而增长。

于 2009-06-18T02:30:57.740 回答