CSS继承问题

时间:2011-11-23 14:14:26

标签: css inheritance

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

@import "reset.css";
@import "typography.css";
@import "forms.css";
@import "fonts/fonts.css";
@import "tablecloth.css";

除了爆破的排版样式表之外,一切似乎都是有序的。我的意思是,当我将一个样式应用于一个段落时,应用于它的唯一样式来自于tyopgraphy样式表。

示例:

应用于layout.css:

#three-col-container #right-col.filter p.more { color: #ff0000; font-size: 1.2em; }

应用Inspector告诉我的内容(这些样式包含在排版样式表中):

p { font-size: 1em; color: #444; }

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

欢迎任何建议。

感谢。

3 个答案:

答案 0 :(得分:1)

您可以尝试在分号前使用要覆盖的规则末尾的!important标记。

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

答案 1 :(得分:1)

#three-col-container #right-col.filter p.more表示:

将此样式应用于段落(p),这些段落的more类是ID为right-col 类{{1}的内容的后代 是ID为filter的内容的后代。

这是对的吗?

你确定在排版样式表中样式规则最后没有three-col-container标志吗?你是那个样式表的URL是正确的吗?

答案 2 :(得分:0)

这可能是一个特殊问题?

我在前一段时间发现这个在尝试确定css继承规则时很有帮助:

  • 为每个元素添加 1 (ex pa)和伪元素(ex { {1}}和:before);
  • 为每个属性添加 10 (ex :after), class 伪类(ex [type=”text”]:link;
  • 为每个 ID 添加 100 ;
  • 并为内联样式添加 1000

所以:hover有2个ID,2个类和1个元素,所以它的权重 221

是否可能有另一条规则具有更高的权重,超越了你的规则?除了那两个之外还有其他任何风格吗? (甚至javascript应用内联规则?)

我尝试使用Firebug或Chrome / Safari开发人员工具来尝试找出哪些规则来自哪里。通常它会给你css的名称和规则所在的行,被覆盖的规则将有一个删除线。一旦我弄清楚哪些规则优先,我可以提高或降低规则的权重,使其正确继承。

希望这有帮助!