zoukankan      html  css  js  c++  java
  • CSS中的三大特性_继承性、层叠性、优先级

    一、css继承性

    子元素可以直接使用父元素中的一些样式(特征),这个我们就称之为继承性。继承性一般用于设置网页上的公共信息,例如网页文字颜色、字体以及大小等。

    注意点:

    • 并不是所有的属性都可以继承, 只有以color/font-/text-/line-开头的属性才可以继承
    • 在css的继承中不仅仅是儿子可以继承, 只要是后代都可以继承
    • 继承性中的特殊性:1、a标签的文字颜色和下划线是不能继承的,2、h标签的文字大小是不能继承的

    例子:

    <style type="text/css">
       #div1{
            font-size: 16px;
            color: #ff0;
            border: #ddd solid 1px;
        }
    </style>
    <div id="div1">
              这是div1的内容
        <div id="div2">
            div1的后代div2中的内容
        </div>
    </div>
    

      

    结果为:div2同样继承了div1的font-size和color样式 ,但是border没有继承。那么有哪些属性不能继承,哪些能继承呢?

    不可继承的:display、margin、border、padding、background、height、min-height、max-height、width、 min-width、max-width、overflow、position、left、right、top、bottom、z-index、float、clear、table-layout、 vertical-align、page-break-after、page-bread-before和unicode-bidi。 
    内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction。 
    终端块状元素可继承:text-indent和text-align。 
    列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。

    二、css层叠性

    层叠性只有在多个选择器选中"同一个标签", 然后又设置了"相同的属性", 才会发生层叠性。层叠性就是css处理冲突的一种能力,层叠性是有优先级来决定最终的显示样式。

    例子: 

    <style type="text/css">
    div{
        background-color:#ff0;
    }
    .test{
         100px;
        height: 100px;
        border: 1px solid #666;
    }
    </style>
    <div class="test"></div>
    

      

    结果为:  虽然设置了两个不同的选择器,但是两个选择器内设置的样式同样都被运用上。

    资源网站大全 https://55wd.com 我的007办公资源网站 https://www.wode007.com

    三、css优先级

    在现实生活中当多条相互冲突的规则施加到同一事物时,也必须制定一个原则,也就是优先级。 css优先级的判断方式:

    1.  间接选中就是继承时,谁离目标标签近就听谁的。
    2.  间接选中,谁离目标标签近就听谁的
    3.  都是直接选中时,并且是同类型的选择器时,谁写在后面就听谁的。当是不同类型的选择器时,按照优先级: id>类>标签>通配符>继承>浏览器默认

    关于通配符:

    比如css开头写一句 *{margin:0;padding:0;}  用 * 来匹配全部标签 。

    什么是优先级的权重?

    作用: 当多个选择器混合在一起使用时, 我们可以通过计算权重来判断谁的优先级最高。

    权重的计算规则

    首先先计算选择器中有多少个id, id多的选择器优先级最高
    如果id的个数一样, 那么再看类名的个数, 类名个数多的优先级最高
    如果类名的个数一样, 那么再看标签名称的个数, 标签名称个数多的优先级最高
    如果id个数一样, 类名个数也一样, 标签名称个数也一样, 那么就不会继续往下计算了, 那么此时谁写在后面听谁的

    关于!important用于提高某个直接选中标签的优先级,要写属性值分号的前面。

  • 相关阅读:
    深浅拷贝
    生成式、生成器、迭代对象、迭代器
    memcached
    redis安装配置
    基于docker搭建mysql主从复制架构
    centos 安装 最新版本的docker
    Linux小技巧
    神奇的'license': 'AGPL 3.0'标签报错
    新博客重新开通了
    通过linkserver不能调远程表值函数
  • 原文地址:https://www.cnblogs.com/ypppt/p/13276648.html
Copyright © 2011-2022 走看看