分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

CSS的继承性和层叠性

发布时间:2023-09-06 02:20责任编辑:胡小海关键词:CSS

CSS的继承性和层叠性

css有两大特性:继承性和层叠性

  继承性>>

  给父级设置一些属性,子级继承了父级的该属性,这就是我们的css中的继承,css没有方法的概念

  可以继承的属性: color, font-*, text-*, line-*.主要是文本级的标签元素,

  盒子元素属性,定位(浮动,核对定位,固定定位)不能继承.

  

  层叠性>>

  就是权重的标签覆盖了权重小的标签  

  权重: 谁的权重大浏览器就会显示谁

数:id的数量  class的数量  标签的数量,顺序不能乱

优先级比较:  行内标签 > id > class > 标签

 

/*1 ?0 ?0 */显示红色#box{
???color: red; }/*0 ?1 ?0*/.container{ ???color: yellow;}/*0 ?0 ?1*/p{ ???color: purple;}

 

是不是感觉明白了呢?好的,再给大家加深点难度。

1 ????<div id=‘box1‘ class="wrap1">2 ????????<div id="box2" class="wrap2">3 ????????????<div id="box3" class="wrap3">4 ????????????????<p>再来猜猜我是什么颜色?</p>5 ????????????</div>6 ????????</div>7 ????</div>
View Code

 

 ???????#box1 #box2 p{ ???????????color: yellow; ???????} ???????????????#box2 .wrap3 p{ ???????????color: red; ???????} ???????????????div div #box3 p{ ???????????color: purple; ???????} ???????????????????????div.wrap1 div.wrap2 div.wrap3 p{ ???????????color: blue; ???????}
View Code

 

好的。那么上面的这个案例大家是否懂了呢?那么接下来我们继续看案例

还是上面那个html结构,如果我设置以下css,会显示什么颜色呢。

1 ????????#box2 .wrap3 p{2 ????????????color: yellow;3 ????????}4 ????????5 ????????#box1 .wrap2 p{6 ????????????color: red;7 ????????}

 

答案是红色的。结论:当权重一样的时候 是以后来设置的属性为准,前提必须权重一样 。‘后来者居上 ’。

Good,我们继续看下面的css,你来猜以下此时字什么颜色?

#box1 #box2 .wrap3{ ???color: red;} ???????#box2 .wrap3 p{ ???color: green;}

 

答案是绿色。哈哈,是不是感觉快懵掉了。其实大家只要记住这点特性就可以。第一条css设置的属性值,是通过继承性设置成的红色,那么继承来的属性,它的权重为0。它没有资格跟我们下面选中的标签对比。

那大家猜想一下如果都是被继承来的属性,那么字会显示什么颜色呢?

 

#box1 #box2 .wrap3{ ???color: red;}.wrap1 #box2{ ???color: green;}
View Code

 

小案例证明:权重都是0:那么就是"就近原则" : 谁描述的近,就显示谁的属性。所谓描述的近,就是选中到最内层的距离越近。

 

总结:

  1.先看标签元素有没有被选中,如果选中了,就数数 (id,class,标签的数量) 谁的权重大 就显示谁的属性。权重一样大,后来者居上 2.如果没有被选中标签元素,权重为0。 如果属性都是被继承下来的 权重都是0 。权重都是0:"就近原则" : 谁描述的近,就显示谁的属性

 


 

层叠性权重相同处理>>

 

1. 当权重相同时,以后来设置的属性为准,前提一定要权重相同

复制代码#box2 .wrap3 p{ ???color: yellow;} ???????#box1 .wrap2 p{ ???color: red;}显示的是红色的。
权重相同时

 

2. 第一个选择器没有选中内层标签,那么它是通过继承来设置的属性,那么它的权重为0。第二个选择器选中了内层标签,有权重。所以 继承来的元素 权重为0。跟选中的元素没有可比性,显示选中的元素的.

复制代码#box1 #box2 .wrap3{ ???color: red;}#box2 .wrap3 p{ ???color: green;}
有无权重

3.如果都是继承来的属性,谁描述的近,显示谁的属性。‘就近原则‘

#box1 #box2 .wrap3{ ???color: red;} .wrap1 #box2{ ???color: green;}
都是继承属性,无权重

!important 的使用。

!important:设置权重为无限大 !important 不影响继承来的权重,只影响选中的元素。不要随便使用!important,因为使用它会影响页面的布局

 

CSS的继承性和层叠性

原文地址:https://www.cnblogs.com/konghui/p/9893319.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved