首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSS规则优先级

CSS规则优先级
EN

Stack Overflow用户
提问于 2013-01-16 04:42:58
回答 5查看 1K关注 0票数 3

我有一个简单的CSS:

代码语言:javascript
运行
复制
.cont div {

  margin:10px;
  border:1px solid;
}

.mark {   /* This get ignored? */

 margin:30px;
}

使用此标记:

代码语言:javascript
运行
复制
<div class="cont">
  <div>a</div>
  <div class="mark">b</div>
</div>

我希望div.mark有margin:30px;,但至少在Chrome中不是这样的,因为通用规则.cont div似乎有更高的优先级。

考虑到我不想使用!important,有没有其他方法可以解决这个问题?

http://jsfiddle.net/xNVRm/

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-16 04:43:55

只需通过添加标记名称使您的选择器更加具体:

代码语言:javascript
运行
复制
div.mark {
    margin:30px;
}

演示:

如果不想使用标记名,也可以使用.cont .mark

票数 3
EN

Stack Overflow用户

发布于 2013-01-16 04:44:19

为了避免使用important,你需要使你的css选择器更具体。您可以使用.cont div.mark。它比div.mark更具体。

票数 3
EN

Stack Overflow用户

发布于 2013-01-16 04:51:37

".cont div“声明覆盖了".mark”声明,因为它实际上更具体。CSS使用一种积分系统来确定哪些规则适用。在本例中,".cont div“指定一个类和其中的一个元素,而".mark”只指定一个类。

有关所有符合要求的浏览器应该使用的确切规则,请参阅此链接:http://www.w3.org/TR/CSS21/cascade.html#specificity

在您的示例中,您可以通过在第二个声明中使用".cont .mark“来修复此问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14346538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档