CSS三大特性

CSS三大特性

CSS有三个非常重要的特性:层叠性、继承性、优先性

层叠性

同样的选择器设置一样的样式,后一个样式就会**覆盖(层叠)**另一个冲突的样式。层叠性主要解决样式冲突的问题。

  • 样式冲突:就近原则,那个样式离结构烬,就执行哪个样式。(后者优先)
  • 样式不冲突:不会发生层叠。

继承性

子标签会继承父标签的某些样式,例如文本颜色和字号等。可以理解为:子承父业。

  • 恰当使用继承可以简化代码,降低CSS样式复杂性。
  • 子元素可继承:父元素的样式(text-、font-、line-这样元素开头的,以及color属性)

继承性之行高的继承

  • 行高可以跟单位也可以不跟单位。
  • 子元素没有设置行高,会继承父元素的行高。
  • 子元素没有设置文字大小,会继承父元素文字大小,行高也会相应变化
  • 父元素行高没有设置单位,子元素行高 = 当前子元素的文字大小 * 父元素行高
<html>
<head>
<style>
        body {
            color: #ccc;
            /* font: 12px/20px 'Microsoft YaHei'; */
            font: 12px/2.0 'Microsoft YaHei';/* 不带单位 */
        }

        div {
            /* 子元素继承父元素body行高,父元素不带单位 子元素行高等于 = 文字大小 * 2.0 */
            font-size: 14px;
        }
    </style>
</head>
<body>
    <div>233</div>
    <p>233</p>
</body>
</html>

优先级

同一个元素指定多个选择器,就会产生优先级。

  • 选择器相同,则执行层叠性。
  • 选择器不同,根据选择器权重执行。
选择器选择器权重
继承 或者 *0,0,0,0
元素选择器0,0,0,1
类选择器,伪类选择器0,0,1,0
ID选择器0,1,0,0
行内样式 style=" "1,0,0,0
!important 重要的∞ 无穷大
font-size:60px !important; //优先级最高
  • 使用注意点
  1. 权重是有4组数字组成但是不会有进位
  2. 可以理解为类选择器永远大于元素选择器id选择器永远大于类选择器以此类推.
  3. 等级判断从左向右,如果某位数值相同,则判断下一位数值。
  4. 可以简单记忆法:通配符和继承权重为0标签选择器为1,类(伪类)选择器为10,id选择器100,行内样式表为1000, important无穷大
  5. 继承的权重是0,没有直接选中,不管父元素权重多高,子元素的权重都是0.
<!DOCTYPE html>
<html>
<head>
    <style>
    	/* 父元素权重 0100 */
        #father {
            color: pink;
        }
        /* p继承的权重 0 */
        p {
            color: green;
        }
    </style>
</head>
<body>
    <div id="father">
        <p>233</p>
    </div>
</body>
</html>

权重叠加

在复合选择器中,需要计算权重。权重叠加

  • 权重会有叠加,但 永远不会有进位
<!DOCTYPE html>
<html>
<head>
    <style>
    	/* 权重会有叠加,但 永远不会有进位 */
        /* ul li的权重是 0,0,0,1 + 0,0,0,1 = 0,0,0,2 */
        ul li {
            color: green;
        }

        /* li的权重是 0,0,0,1 */
        li {
            color: red;
        }
        /* .nav li的权重是 0,0,1,0 + 0,0,0,1 = 0,0,1,1 */
        .nav li {
            color: blue;
        }
    </style>
</head>
<body>
    <ul class="nav">
        <li>233</li>
    </ul>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值