CSS——继承性和层叠性
来源:互联网 发布:首都医科大学知乎 编辑:程序博客网 时间:2024/06/15 01:01
继承性
有一些属性,当给自己设置的时候,自己的后代都继承上了,如color、text-开头的、line-开头的、font-开头的。
<style type="text/css"> div{ color:blue; border: 2px solid red; } </style></head><body> <div> <p>我是段落</p> <p>我是段落</p> <p>我是段落</p> </div></body>
不是所有属性都能够继承,如上图,color属性会被继承,但border属性没有被全部继承。总结:关于文字样式的都能够继承,关于盒子、定位、布局的属性都不能继承。
如果我们页面的文字都是灰色,都是14px,那么就可以利用继承性:
body{ color:gray; font-size:14px;}
继承性是从自己开始,直到最小元素。
如:
<style type="text/css"> div{ color:blue; font-style:italic; text-decoration: underline; font-weight:bold; background-color:yellow; } </style></head><body> <div> <div> <div> 我是文字 <div> 我是文字 <ul> <li> <span> <a href=""> 我是文字 </a> </span> </li> </ul> </div> </div> </div> </div></body>
层叠性即处理冲突的能力
<style type="text/css"> p{ color:red; } .ppage{ color:green; { #para1{ color:blue; } </style></head><body> <p class="ppage" id="para1">我到底是什么颜色?</p></body>
以上句子是绿色。
<style type="text/css"> #box1 .hezi2 p{ color:red; } div div #box3 p{ color:green; } div.hezi1 div.hezi2 div.hezi3 p{ color:blue; } </style></head><body> <div class="hezi1" id="box1"> <div class="hezi2" id="box2"> <div class="hezi3" id="box3"> <p>我到底是什么颜色?</p> </div> </div> </div></body>
以上句子是红色。
解析:
一个id选择器,一个类选择器,一个标签选择器,记作1,1,1
一个id选择器,0个类选择器,三个标签选择器,记作1,0,3
0个id选择器,3个类选择器,4个标签选择器,记作0,3,4
当选择器选择上了某个元素时,要分别数一下id选择器、类选择器和标签选择器的数量。按照稀有程度,id的权重大于类,类大于标签。
如果权重一样,则以后者为准,由于p标签在后,所以是红色:
<style type="text/css"> #box2 div .pp{ color:blue; } #box1 .hezi2 p{ color:red; } </style>
如下所示,第一个选择器的权重是0,0,13,第二个选择器的权重是0,1,0。不进位,所以是蓝色:
<style type="text/css"> div div div div div div div div div div div div p{ color:red; } .heng{ color:blue; } </style></head><body> <div> <div> <div> <div> <div> <div> <p class="heng"> 我到底应该是什么颜色嗷嗷嗷 </p> </div> </div> </div> </div> </div> </div>
如下所示,权重一样,则以后出现的那个为准,所以是蓝色:
<style type="text/css"> #box1 .hezi2 p{ color:red; } #box2 div .pp{ color:blue; } </style></head><body> <div class="hezi1" id="box1"> <div class="hezi2" id="box2"> <div class="hezi3" id="box3"> <p class="pp">那我到底是什么颜色啊</p> </div> </div> </div></body>
如下所示,这样的话依然是红色,因为第一个选择器权重是0,1,2,第二个选择器权重是0,1,0:
<style type="text/css"> .nav ul li{ color:red; } .teshu{ color:blue; } </style></head><body> <div class="nav"> <ul> <li class="teshu">word</li> <li>word</li> <li>word</li> </ul> </div></body>
如果以上字体想变成蓝色,则可以将CSS编辑器改成:
<style type="text/css"> .nav ul li{ color:red; } .nav ul li.teshu{ color:blue; } </style>
如下所示,p标签应该是蓝色,因为如果不能直接选中某个元素,而是通过继承性影响的话,则权重是0:
<style type="text/css"> #box{ color:red; } p{ color:blue; } </style></head><body> <div id="box"> <p>哈哈哈哈</p> </div></body>
在开始数权重之前,一定要看是不是真的选中了文字所在的最内层标签,如果不能直接选中某个元素,而是通过继承性影响的话,那么权重是0。如下所示,没有选中p,所以权重为0,应是绿色:
<style type="text/css"> #hezi1 #hezi2 #hezi3{ color:red; } div.box div.box div.box{ color:blue; } p{ color:green; } </style></head><body> <div class="box" id="hezi1"> <div class="box" id="hezi2"> <div class="box" id="hezi3"> <p>猜我啥色</p> </div> </div> </div></body>
html内容不变,css选择器变成如下所示,则是黄色:
<style type="text/css"> #hezi1 #hezi2 #hezi3{ color:red; } div.box div.box div.box{ color:blue; } div.box div.box div.box .pp{ color:yellow; } p{ color:green; } </style>
如果大家权重都是0,则有就近原则——谁描述的近就听谁的:
上述html内容不变,css选择器变成如下所示,显示红色:
<style type="text/css"> #hezi3{ color:red; } #hezi1 #hezi2{ color:blue; } </style>
hezi1、hezi2只描述到了倒数第三层,而hezi3描述到了倒数第二层,hezi3描述的更接近。
总结:先看有没有选中,如果选中了,那么以(id数,类数,标签数)来计权重,谁大听谁的,如果都一样,则以后写的为准。如果没有选中,那么权重是0。如果大家都是0,那么无需数标签数量,无需看谁是后写的,只需遵循则就近原则。
- CSS继承和层叠性
- CSS继承和层叠性
- CSS——继承性和层叠性
- CSS——关于继承性和层叠性的练习
- CSS 中的继承性,特殊性,层叠性和重要性
- CSS的继承性,特殊性和层叠性
- CSS初学2---继承性和层叠性
- CSS具有继承性、特殊性、层叠性和重要性
- CSS继承性及层叠性
- CSS的层叠和继承
- 02 CSS-继承和层叠
- 层叠,继承和CSS单位
- CSS样式继承和层叠
- 02 CSS-继承和层叠
- 04-CSS 选择器(基础选择器、高级选择器) CSS 的继承性和层叠性
- CSS样式----CSS的继承性和层叠性(图文详解)
- 【CSS】CSS中继承性与层叠性
- [CSS]CSS的继承性、层叠性、权重
- 边权更新 查询路径长度和最大边权 【树链剖分 模板】
- java 虚拟机内存分配
- mac上键盘说明以及intellij 快捷键的使用
- JavaOOP(面向对象的编程)
- selenium自动化面试题
- CSS——继承性和层叠性
- Hibernate与Mybaits的区别
- 深入浅出,Handler机制外科手术式的剖析(ThreadLocal,Looper,MessageQueen,Message)(下)
- springmvc中,在业务控制方法中,收集数组参数,收集List集合包含javabean
- mysql5.7.18 更改密码是出现 Unknown column 'password' in 'field list'错误
- 莫比乌斯进阶:bzoj 2693 jzptab(Mobius)
- Myeclipse 10 激活详解过程
- CAS单点登录-自定义认证之Shiro、Rest(六)
- iOS【Undefined symbols for architecture i386: 错误的解决办法】