CSS之三大特性(层叠性-继承性-优先性)

个人博客:https:zhongyuanqiong.github.io

各位在编写样式时有遇到以下问题吗?

  1. 在设置标签的样式时 选择器相同的情况下 样式相同会被覆盖

  2. 有些标签在你没有设置任何样式时 会默认有样式呢 比如(文字颜色和大小)

  3. 有时候设置标签样式没有效果


    问题一解答:

    为什么在设置标签的样式时 选择器相同的情况下  样式相同会被覆盖?
    --这是因为CSS的层叠性
    --层叠性:是指相同的选择器设置相同的样式时,一个样式会覆盖另一个样式 层叠性主要用来解决样式冲突问题
    --在样式冲突时,遵循就近原则(后来居上),样式不冲突就不会层叠  因为代码顺序执行
    
    

    例如:

    <html lang="en">
      <head><style>
            .box {
                width: 100px; height: 100px;background-color: red;
            }
            .box {         /*相同的选择器*/
                background-color: orange;   /*相同的样式,会被覆盖上面的背景颜色red*/
                 border: 3px solid green;  /*不同的样式 不会被覆盖*/
            }
        </style></head>
        <body>
             <div class="box">box</div>
        </body>
        </html>
    

    效果图:

    问题1.png

问题二解答:

有些标签在你没有设置任何样式时 会默认有样式呢 比如(文字颜色和大小)?
--这是因为CSS的继承性
--继承性:子标签会继承父标签的某些样式 如文字颜色和大小 以text-,line-,font-开头的会被继承

例如:

 <html>
        <style>
            /*只设置父标签div的样式 没有设置子标签p的样式*/
            .box {         
            width: 100px;
            height: 100px;
            background-color: violet;
            color: greenyellow;
            font-size: 25px;
        }
         </style>
    <div class="box">   <!----父标签----->
           <p>我是小钟</p>    <!------子标签------>
     </div>
</html>

效果图:

问题二.png

问题三解答:

为什么有时候设置标签样式没有效果?
--这是因为CSS中的优先级
--优先级(权重):当给一个标签设置样式时,选择不同的选择器时, 会执行选择器权重高的样式,选择器权重低的样式不会被执行 
--权重可以叠加

优先级(权重)表格:

选择器选择器的权重
继承或者*0.0.0.0
标签选择器0.0.0.1
类选择器,伪类选择器0.0.1.0
id选择器0.1.0.0
行内样式1.0.0.0
!important无穷大
可以简单的记忆:
---继承和通配符的权重为0
---标签选择器的权重为1
---类选择器以及伪类选择器的权重为10
---id选择器的权重为100
---行内样式的权重为1000
--- !important 的权重为无穷大

权重叠加:

--如:
  -- p #text {}    权重为 1 + 100 = 101
  -- .a1 #w {}   权重为 10 + 100 = 110
 

继承例子:

<html>
    <style>
        /*继承权重为0*/
        .box1{
             width: 100px; height: 100px;border: 2px solid black;
            color: green;    
        }
        p{
            color:red;      
        }
    </style>
    <div class="box1">    
        <p>小钟</p>
    </div>
</html>

效果图:

继承.png

权重叠加例子:

<html>  
    <style>
            .box2 {               /* 权重为 0.0.1.0 */
                width: 10px;
                height: 10px;
                background-color: coral;
            }
            .box1 .box2 {           /* 权重为0.0.1.0 + 0.0.1.0 = 0.0.2.0 */
                width: 200px;
                height: 200px;
                background-color: greenyellow;
            }
     </style>
    <div class="box1">
        <div class="box2">我是一个盒子</div>
    </div>
</html>

效果图:

权重叠加.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值