CSS 后代选择器和权值计算

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weclove2008/article/details/74094485

子选择器(第一代)

符号:>
作用:选中儿子元素
示例:

<style type="text/css">  
.music>li{border:1px solid red;}  <!-border边框样式-->

<!--操作区-->
<body>
<h1>Music Singer</h1>

<ul class="music">
    <li>Chinese
        <ul>
            <li>Leijun</li>
            <li>JayChou</li>
            <li>SilerChao</li>
        </ul>
    </li>
    <li>English
        <ul>
            <li>Taylor Swift</li>
            <li>Whitness Huston</li>
            <li>Micheal Jackson</li>
        </ul>
    </li>
</ul>
</body>

image

包含选择器(所有后代)

符号:空格
作用:选中所有儿子孙子元素
示例:

<head>
<style type="text/css">
.music li  <!--此处修改为空格后-->
{
    border:1px solid red;
}

image

特殊性

选择器样式的搭配:就近原则 即:内联>嵌入>外部
有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?我们来看一下面的代码:

p{color:red;}
.first{color:green;}
<p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

p和.first都匹配到了p这个标签上,那么会显示哪种颜色呢?green是正确的颜色,那么为什么呢?是因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。

下面是权值的规则:

标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100,内联样式选择符的权值最高为1000。例如下面的代码:
p{color:red;} /权值为1/
p span{color:green;} /权值为1+1=2/
.warning{color:white;} /权值为10/
p span.warning{color:purple;} /权值为1+1+10=12/

footer .note p{color:yellow;} /权值为100+10+1=111/

注意:还有一个权值比较特殊–继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。
最高权值:写在样式的分号前:p{color:red!important;} — 此权值高于用户自己设置的样式。

猜你喜欢

转载自blog.csdn.net/weclove2008/article/details/74094485