【问题标题】:Custom Class Not Overriding Other CSS自定义类不覆盖其他 CSS
【发布时间】:2013-10-12 00:28:32
【问题描述】:

我绝不是 CSS 专家,所以我可能只是不明白这里简单的东西。

我有一个正在维护的网站。该网站的大部分内容都是带有白色文本的深色背景。我被要求将几页更改为白色背景上的黑色文本。

我在 CSS 中创建了一个名为 .blog 的类,它看起来像这样:

.blog{
color:rgb(0,0,0);
background-color:rgb(255,255,255);
}
.blog h1,h2,h3,h4,h5,h6
 {
color:rgb(0,0,0);
}
.blog a:link,a:visited,a:hover
{
color:rgb(0,0,0);
}   

文件前面是这样的:

body,a,.white{color:#fff;}

当我在文本和背景更改中包裹一大块页面时,链接和标题仍然是白色(因此在白色页面上不可见)。

当我使用 Firebug 检查时,它会显示我的博客类正在应用,包括当我选择标题或链接元素时。然而当然不是。

任何人都可以提出原因吗?或者我应该在哪里寻找最可能的解决方案?

【问题讨论】:

  • 最有可能的特异性...或它在 DOM 中的放置顺序。
  • 能否提供一个工作示例,以便我们重现该问题?一个问题可能是.blog h1,h2,h3,h4,h5,h6 应该是.blog h1, .blog h2, .blog h3, .blog h4, .blog h5, .blog h6
  • 只有一种方法可以对此进行调试,那就是使用 FireBug 或其对 IE 和 Chrome 的等价物。对于页面上的任何元素,它将显示整个级联层次结构并告诉您包含特定 CSS 位的文件。

标签: html css


【解决方案1】:

您必须在元素之前添加类以指定在什么情况下选择哪个项目。

这样

.blog h1,h2,h3,h4,h5,h6
 {
color:rgb(0,0,0);
}

应该是

.blog h1, .blog h2, .blog h3, .blog h4, .blog h5, .blog h6 {
color:rgb(0,0,0);
 }

等等。

【讨论】:

  • 这修复了它。谢谢。顺便说一句,有人愿意为 CSS 在线推荐一个好的语法参考吗?我真的很难找到一个。我发现了很多“如何用 CSS 做 X”的网站,但没有一个只显示层次结构和语法参考的网站。
  • 不应该是h1.blog, h2.blog, h3.blog等吗?您的语法在 Chrome 中似乎不适合我。
  • 根据 OP 的问题,答案是正确的。如果它不适合您,您的实施可能会有所不同。也许您应该提出自己的问题?
【解决方案2】:

您可以随时尝试在课程末尾添加!important

例如:

background-color:rgb(255,255,255) !important;

例如,这将覆盖任何过度样式化您博客类的background-color 的元素。虽然我不建议一直使用它,因为您最终可能会导致自己出现冲突的问题,但它适用于这种情况。

一定要试一试,看看它是否解决了您的问题,如果解决了,那么您有另一个类正在覆盖您的样式,或者您的类样式未正确发布在您认为的位置。

【讨论】:

  • 说真的.. 永远不要建议!important.. 可怕的做法,并且可以避免 99.9% 的时间。
  • 这取决于你如何使用它。这不是可怕的做法,否则会被弃用。它绝对允许初学者发现他们的 css 的问题。就像我在回答中所说的那样,我不建议将其保留在 css 中,但它可用于帮助调试。与其投票给我,不如给我一个更好、更实际的答案。
  • 好吧 - 我没有否决它,但您正在建议使用它。
  • 我还要补充一点,如果您正在修改包含数千行 css 行的 .css 文件,则可以方便地缩小您可能遇到的问题。特别是在所有主要浏览器之间。
猜你喜欢
  • 2015-05-14
  • 2017-05-16
  • 2021-11-12
  • 1970-01-01
  • 2019-02-12
  • 2013-05-05
  • 1970-01-01
  • 2012-07-10
  • 2017-12-23
相关资源
最近更新 更多