CSS继承问题

CSS继承问题,css,inheritance,Css,Inheritance,我有一个样式表(layout.css),它在样式表的顶部导入以下css: @import "reset.css"; @import "typography.css"; @import "forms.css"; @import "fonts/fonts.css"; @import "tablecloth.css"; p { font-size: 1em; color: #444; } 除了那张糟糕的排版样式表,一切似乎都井然有序。我的意思是,当我把一个样式应用到,比如,一个段落时,应用到它的唯

我有一个样式表(layout.css),它在样式表的顶部导入以下css:

@import "reset.css";
@import "typography.css";
@import "forms.css";
@import "fonts/fonts.css";
@import "tablecloth.css";
p { font-size: 1em; color: #444; }
除了那张糟糕的排版样式表,一切似乎都井然有序。我的意思是,当我把一个样式应用到,比如,一个段落时,应用到它的唯一样式是从tyopgraphy样式表中获取的

例如:

在layout.css中应用:

#three-col-container #right-col.filter p.more { color: #ff0000; font-size: 1.2em; }
检查员告诉我的已应用(这些样式包含在排版样式表中):

我从未遇到过这种继承问题。其他样式表按预期工作

欢迎任何建议


谢谢。

您可以尝试使用
!重要信息
要覆盖的规则末尾的分号前的标志

这将确保它始终被应用,因此应该覆盖继承的规则。

#三列容器#right-col.filter p.more
表示:

将此样式应用于段落(
p
),这些段落具有
more
类,这些类是id为
右列的某事物的后代,而class
过滤器是id为
三列容器的某事物的后代

是这样吗


您确定排版样式表中的样式规则没有
!重要信息
结尾处的标志?您认为该样式表的URL正确吗?

这可能是一个特殊性问题

我不久前发现这一点在尝试确定css继承规则时非常有用:

  • 为每个元素(ex
    p
    a
    )和伪元素(ex
    :在
    之前和
    之后)添加1
    
  • 为每个属性(例如
    [type=“text”]
    )添加10, 类和伪类(例如
    :link
    :hover
  • 并为每个ID添加100
  • 并为内联样式添加1000
因此
#三列容器#right-col.filter p.more
有两个ID、两个类和一个元素,因此它的权重为221

是否有可能有另一个权重更高的规则覆盖了您的规则?除了这两种样式之外,是否还应用了其他样式?(或者javascript应用内联规则?)

我尝试使用Firebug或Chrome/Safari Developer工具来尝试找出规则的来源。通常,它会给出css的名称和规则所在的行,被覆盖的规则将有一个删除线。一旦我确定哪些规则优先,我可以提高或降低规则的权重来制定规则它继承得很好


希望这会有所帮助!

一般来说,
!important
是最后的手段,尽管它很有用。David可能应该首先尝试找出到底出了什么问题。我会避免!重要的是,您将开始一场针对特定性的持续斗争。这至少会解决眼前的问题,尽管我同意;如果可能,您应该修复问题实际问题。你能把这篇文章发到某个地方让我看到实际的代码吗?你是说,如果你从typography.css中删除这一行,layout.css中的那一行就开始工作了?只是为了排除明显的问题;
这个问题真的有一类
更多的
,它真的是id元素的后代吗
右列
(使用类
过滤器
),它又是id为
三列容器
的元素的后代?您能否与该示例共享指向页面的链接?