ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CSS三大特性

2022-01-12 22:36:27  阅读:85  来源: 互联网

标签:优先级 样式 标签 特性 继承 color 三大 选择器 CSS


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、通过权重计算公式,判断谁的权重最高。

标签:优先级,样式,标签,特性,继承,color,三大,选择器,CSS
来源: https://www.cnblogs.com/kuangsun125/p/15795618.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有