CSS继承问题
我有一个样式表(layout.css),它在样式表的顶部导入以下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; } 除了那张糟糕的排版样式表,一切似乎都井然有序。我的意思是,当我把一个样式应用到,比如,一个段落时,应用到它的唯
@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为三列容器
的元素的后代?您能否与该示例共享指向页面的链接?