CSS三大特性

  • A+
所属分类:Web前端
摘要

特性:子元素有默认继承父元素样式的特点可以继承的常见属性有:1、color2、font-style、font-weight、font-size、font-family


Css三大特性

继承性

特性:子元素有默认继承父元素样式的特点

可以继承的常见属性有:

1、color

2、font-style、font-weight、font-size、font-family

3、text-indent、text-align

4、line-height

5.....

例如:

<style>         .father{         color: red;         }     </style> </head> <body>     <div class="father">         父亲         <div class="son">             儿子         </div>     </div> </body> 

注意点:可以通过调试工具判断样式是否可以继承

常见的应用场景:

1、可以直接给ul设置list-style:none属性。从而去除列表默认的小圆点样式。

2、直接给body标签设置统一的font-size,从而统一不同浏览器默认文字大小。

继承失效的情况

1、如果元素有浏览器设置的默认样式,此时继承性仍然存在,但是优先显示浏览器默认的样式。

2、a标签的color会继承失效。

其实是有继承的,只不过是优先使用了浏览器默认的样式。

3、h系列标签的font-size会继承无效。

原因同上

4、div的高度不能继承,但是宽度有类似于继承的效果。

层叠性

特性:1、给同一个标签设置不同的样式---此时样式会层叠叠加--会共同作用在标签上。

2、给同一个标签设置相同的样式---此时样式会层叠覆盖---最终写在最后的样式会生效。

注意点:当样式冲突时,只有当选择器优先级相同时,才能通过层叠性判断结果。

优先级

能够计算CSS权重,并解决CSS样式冲突问题

特性:不同选择器有不同的优先级,优先级高的选择器样式会覆盖优先级低的选择器样式。

优先级公式:继承<通配符选择器<标签选择器<类选择器<id选择器<行内样式<!important

注意点:

1、!important写在属性值的后面,分号的前面

2、!important不能提升继承的优先级,只要是继承优先级最低

3、实际开发中不建议使用!important

权重叠加计算

场景:如果是符合选择器,此时需要通过权重叠加计算方法,判断最终哪个选择器优先级最高会生效。

公式(每一级之间不存在进位,四个是分别对应的)

第一级 第二级 第三极 第四级

(0, 0 , 0 ,0)

行内样式个数 id选择器个数 类选择器个数 标签选择器个数

比较规则:

1、先比较第一级数字,如果比较出来了,之后的统统不看。

2、如果第一级数字相同,此时再比较第二级数字,如果比较出来了。之后的统统不看。

3、。。。。

4、如果最终所有数字都相同,表示优先级相同,则比较层叠性(谁写在下面,谁说了算)

注意点:如果!important不是继承,则权重最高。

<style>         /*0,1,0,1*/        div #one{            color: skyblue;        }        /*0,0,2,0*/        .father .son{            color: skyblue;        }        /* 0,0,1,1*/        .father p{            color: purple;        }        /* 0,0,0,2*/        div p{            color: pink;        }     </style> </head> <body>     <div class="father">         <p class="son" id="one">我是个标签</p>     </div> </body> 

一般解题步骤

1、先判断选择器是否能直接选中标签,如果不能直接选中---->是继承,优先级最低----->直接pass

2、通过权重计算公式,判断谁的权重最高。