一 继承性

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

  面向对象语言都会存在继承的概念,在面向对象语言中,继承的特点:继承了父类的属性和方法。那么我们现在主要研究css,css就是在设置属性的。不会牵扯到方法的层面。

  继承:给父级设置一些属性,子级继承了父级的该属性,这就是我们的css中的继承。

  记住:有一些属性是可以继承下来 : color 、 font-*、 text-*、line-* 。主要是文本级的标签元素。

  但是像一些盒子元素属性,定位的元素(浮动,绝对定位,固定定位)不能继承。

  
 

二 层叠性

  层叠性: 权重大的标签覆盖掉了权重小的标签,说白了 ,就是被干掉了
  权重: 谁的权重大,浏览器就会显示谁的属性

  谁的权重大? 非常简单就是小学的数数。

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

  1. /*1 0 0 */显示红色
  2. #box{
  3.  
  4. color: red;
  5. }
  6. /*0 1 0*/
  7. .container{
  8. color: yellow;
  9. }
  10. /*0 0 1*/
  11. p{
  12. color: purple;
  13. }

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

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

  

  1. #box1 #box2 p{
  2. color: yellow;
  3. }
  4.  
  5. #box2 .wrap3 p{
  6. color: red;
  7. }
  8.  
  9. div div #box3 p{
  10. color: purple;
  11. }
  12.  
  13. div.wrap1 div.wrap2 div.wrap3 p{
  14. color: blue;
  15. }

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

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

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

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

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

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

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

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

  1. #box1 #box2 .wrap3{
  2. color: red;
  3. }
  4. .wrap1 #box2{
  5. color: green;
  6. }

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

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

三 层叠性权重相同处理

  直接上代码,看效果!

  第一种现象:当权重相同时,以后来设置的属性为准,前提一定要权重相同

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

  我们会发现此时显示的是红色的。

  第二种现象: 第一个选择器没有选中内层标签,那么它是通过继承来设置的属性,那么它的权重为0。第二个选择器选中了内层标签,有权重。

  所以 继承来的元素 权重为0。跟选中的元素没有可比性。

  1. #box1 #box2 .wrap3{
  2. color: red;
  3. }
  4. #box2 .wrap3 p{
  5. color: green;
  6. }

  我们会发现此时显示的是绿色的。

  第三种现象:如果都是继承来的属性,谁描述的近,显示谁的属性。'就近原则'

  1. #box1 #box2 .wrap3{
  2. color: red;
  3. }
  4. .wrap1 #box2{
  5. color: green;
  6. }

  !important 的使用。

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

02--CSS的继承性和层叠性的更多相关文章

  1. python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)

    一.HTML中的行级标签和块级标签 块级标签 常见的块级标签:div,p,h1-h6,ul,li,dl,dt,dd 1.独占一行,不和其他元素待在同一行2.能设置宽高3.如果不设置宽高,默认为body ...

  2. 前端----css的继承性和层叠性

    css有两大特性; 继承性和层叠性 继承性 继承:给父级设置一些属性,子级继承了父级的该属性, 这就是我们的css中的继承, 需要注意的是 有一些属性是可以继承下来的: color   ,  font ...

  3. 04.CSS的继承性和层叠性

    CSS有两大特性:  继承性和层叠性 继承性 面向对象语言都会存在继承的概念 , 在面向对象语言中, 继承的特点:  继承了父类的属性和方法.  那么 css  就是在设置属性的 ,  不会牵扯到方法 ...

  4. CSS的继承性和层叠性

    1.继承性 比不是所有的属性都能继承,只有一些文本的属性才能被继承.比如:color,text-开头的,line-开头的,font-开头的.这几种属性才能被继承. 其余的关于盒子,定位,布局的都不能被 ...

  5. CSS样式----CSS的继承性和层叠性(图文详解)

    CSS的继承性 我们来看下面这样的代码,来引入继承性: 上方代码中,我们给div标签增加红色属性,却发现,div里的每一个子标签<p>也增加了红色属性.于是我们得到这样的结论: 有一些属性 ...

  6. 【WEB前端】CSS继承性和层叠性(极度重要)

    1.1 继承性 有一些属性,当给自己设置的时候,自己的后代都继承上了,这个就是继承性. 哪些属性能继承? color. text-开头的.line-开头的.font-开头的. 这些关于文字样式的,都能 ...

  7. css 两大特性:继承性和层叠性

    css 有两大特性: 继承性和层叠性, 继承性 面向对象语言都会存在继承的概念,在面向对象的语言中,继承的特点:继承了父类的属性和方法.那么我们现在主要研究css,css中没有方法,所以我们仅仅继承属 ...

  8. css 继承性和层叠性

    css有两大特性:继承性和层叠性 继承性 面向对象语言都会存在继承的概念,在面向对象语言中,继承的特点:继承了父类的属性和方法.那么我们现在主要研究css,css就是在设置属性的.不会牵扯到方法的层面 ...

  9. CSS(4)---三大特性(继承性,层叠性,优先级)

    CSS(4)---三大特性(继承性,层叠性,优先级) CSS有三大特性分别是: 继承性,层叠性,优先级. 一.继承性 概念 给父元素设置一些属性,子元素也可以使用,这个我们就称之为继承性. 注意 1. ...

  10. 前端 CSS 继承性和层叠性

    CSS有两大特性:继承性和层叠性 前端 CSS的继承性 前端 CSS层叠性 CSS选择器优先级 前端 CSS 优先级 样式设置important

随机推荐

  1. C#-WebForm-LinQ(一)-LinQ:语言集成查询(Language Integrated Query)-增删改查、属性扩展

    LinQ-语言集成查询(Language Integrated Query) 高集成化的数据库访问技术 LINQ 2 SQL 实际是将数据库的表映射成程序中的类 会把数据库的表名原封不动的变成类名 数 ...

  2. knova绘制矩形

    效果: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  3. MyBatisSystemException->BindingException: Parameter 'xxx' not found. Available parameters are [arg1, arg0, param1, param2]

    最近在使用Spring boot+mybatis做新的基础框架,结果碰到如下问题: 1 org.mybatis.spring.MyBatisSystemException: nested except ...

  4. Oracle 11g

    Oracle 11g 第一章  Oracle 11g数据库简介 1.1  认识Oracle11g Oracle 11g是Oracle 数据库最新的版本,目前已经被企业广泛的应用. 1.2  Oracl ...

  5. 06-图2 Saving James Bond - Easy Version (25 分)

    This time let us consider the situation in the movie "Live and Let Die" in which James Bon ...

  6. Flask 数据库迁移

    在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库.最直接的方式就是删除旧表,但这样会丢失数据. 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中. ...

  7. 一、OPENERP 的一个demo

    安装好OPENERP后,使用 ps -aux|grep openerp 从输出的内容可以得到OPENERP的安装信息, /usr/bin/python /usr/bin/openerp-server ...

  8. (转)一次棘手的rootvg更换硬盘处理过程

    一次棘手的rootvg更换硬盘处理过程 原文:http://www.talkwithtrend.com/Article/160857 事件起因 下午接到现场工程师电话,一台双系统抽屉IBM P570一 ...

  9. mysql:服务器错误代码

    服务器错误代码和消息 原文:https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html MySQL的程序有几种类型的错误信息时 ...

  10. SpringBoot集成WebSocket【基于STOMP协议】进行点对点[一对一]和广播[一对多]实时推送

    原文详细地址,有点对点,还有广播的推送:https://blog.csdn.net/ouyzc/article/details/79884688 下面是自己处理的一些小bug 参考原文demo,结合工 ...