首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS专用性,父容器对子容器进行了超限。

CSS专用性,父容器对子容器进行了超限。
EN

Stack Overflow用户
提问于 2014-02-12 15:34:46
回答 2查看 699关注 0票数 3

我对正在使用的一些自定义960‘m类有点不放心。当我使用子容器时会出现问题,而子容器的列只是从主容器的列规则继承宽度。

在我看来,内部单元格(foo + bar)应该是绿色的。这意味着他们应该得到.container-6 .grid-3的规则而不是.container-8 .grid-3的规则

我知道CSS中的!important选项,但我想先研究其他选项,因为如果情况正好相反,这将是一个问题。

代码语言:javascript
复制
<div class="container-8">
    <div class="grid-3">
        <div class="container-6">
            <div class="grid-3 alpha">foo</div>
            <div class="grid-3 omega">bar</div>
        </div>
    </div>
    <div class="grid-5">test
    </div>
</div>

CSS

代码语言:javascript
复制
body {
  min-width: 990px;
}

div {
    padding: 5px 0;
}

.container-6 {
    margin-left: auto;
    margin-right: auto;
    border: 1px solid yellow;
    width: 684px;
}
.container-6 .grid-3 {
    width:312px;
    border: 1px solid green;
}
.container-8 {
    margin-left: auto;
    margin-right: auto;
    width: 960px;
    border: 1px solid silver;    
}
.container-8 .grid-3 {
    width:340px;
    border: 1px solid blue;    
}
.container-8 .grid-5 {
    width:580px;
    border: 1px solid red;    
}

.alpha {
    margin-left: 0 !important;
}

.omega {
    margin-right: 0 !important;
}

.grid-1,
.grid-2,
.grid-3,
.grid-4,
.grid-5,
.grid-6,
.grid-7,
.grid-8 {
    display:inline;
    float: left;
    position: relative;
}

我用这把小提琴来说明我的问题。我已经拿出了960个不相关的规则。

小提琴

在我看来,内部单元格(foo + bar)应该是绿色的。这意味着他们应该得到.container-6 .grid-3的规则而不是.container-8 .grid-3的规则

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-05 16:25:16

如果希望在内部容器上下文中应用的样式在嵌套在任何其他容器中时始终优于其他容器,则可以这样编写:

代码语言:javascript
复制
 [class*="container-"] .container-6 .grid-3{
     border: 1px solid green;
 }

方括号中的部分是属性选择器。星号表示一个通配符,因此这个部分匹配类属性中任何地方都有子字符串container-的元素。

因此,在您的情况下,由于container-8满足选择器第一部分的条件,这个规则将适用并具有更高的特异性。如果您在任何960.gs容器中嵌套.contain-6,那么它的工作方式也是相同的,超过了任何具有2类特性的样式规则。

警告: IE-6及更低版本不支持属性选择器。

票数 2
EN

Stack Overflow用户

发布于 2014-02-12 15:45:01

这两种规则都有两个类,因此它们在特殊性方面是有联系的。在这种情况下,将应用css文件中的最新规则。有关进一步解释,请参见这里

若要将其更改为绿色,可以在CSS文件中交换.container-6 .grid-3.container-8 .grid-3

演示

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

https://stackoverflow.com/questions/21732360

复制
相关文章

相似问题

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