zoukankan      html  css  js  c++  java
  • CSS三大特性

    继承性

    给某一个元素设置一些属性,该元素后代也可以使用。通常用在基于继承性统一设置网页的文字颜色,字体,文字大小样式等。

    • 1、只有以color、font-、text-、line-开头的属性才可以继承
    • 2、a标签的文字颜色和下划线式不能继承别人的
    • 3、h标签的文字大小是不能继承别人的,会变大,但是会在原来字体大小的基础上变大
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>后代选择器</title>
    
        <style type="text/css">
    
            div {
                color: red;
                font-size: 50px;
            }
    
    
        </style>
    </head>
    <body>
    
    <div>
        <h1>我是标题</h1>
        <p><a href="#">我是内容</a></p>
        <ul>
            <li>导航1</li>
            <li>导航2</li>
            <li>导航2</li>
        </ul>
    </div>
    
    <div>
        <div>
            <p>aaaa</p>
        </div>
        <div>
            <p>bbbb</p>
        </div>
    </div>
    
    </body>
    </html>
    

    层叠性

    层叠性指的就是CSS处理冲突的一种能力,即如果有多个选择器选中了同一个标签,那么会有覆盖效果。

    注意:层叠性只有在多个选择器选中了同一个标签,然后设置了相同的属性,才会发生层叠性。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>后代选择器</title>
    
        <style type="text/css">
    
            p {
                color: red;
            }
    
            .ppp {
                color: green;
            }
    
        </style>
    </head>
    <body>
    
    <p class="ppp">我是段落1</p>
    </body>
    </html>
    

    优先级

    当多个选择器选中同一个标签,并且给同一个标签设置相同的属性时,如何层叠就由优先级来确定。

    整体优先级从高到低:行内样式>嵌入样式和外部样式

    1、大前提:直接选中>间接选中(即继承而来的)

    #1、以下为直接选中
        <style type="text/css">
            #id1 {
                color: red;
            }
    
            .ppp {
                color: green;
            }
    
            p {
                color: blue;
            }
        </style>
    
    #2、以下为间接选中
        <style type="text/css">
            ul {
                color: yellow;
            }
        </style>
    
        <ul>
            <li>
                <p id="id1" class="ppp">我是span</p>
            </li>
        </ul>
    

    2、如果都是间接选中,那么谁离目标标签比较近,谁优先级更高

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>后代选择器</title>
    
        <style type="text/css">
            /*离目标近*/
            li {
                color: red;
            }
            /*离目标远*/
            ul {
                color: yellow;
            }
    
        </style>
    </head>
    <body>
    
        <ul>
            <li>
                <p id="id1" class="ppp">我是span</p>
            </li>
        </ul>
    </body>
    </html>
    

    3、如果都是直接选中,并且都是同类型的选择器,那么就是谁写在后面谁优先级更高

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>后代选择器</title>
    
        <style type="text/css">
            p {
                color: red;
            }
            /*同样都是标签选择器,谁写在后面谁生效*/
            p {
                color: yellow;
            }
    
        </style>
    </head>
    <body>
    
        <ul>
            <li>
                <p id="id1" class="ppp">我是span</p>
            </li>
        </ul>
    </body>
    </html>
    

    4、如果都是直接选中,并且都是不同类型的选择器,那么就会按照选择器的优先级来层叠

    id > 类 > 标签 > 通配符(也算直接选中) > 继承 > 浏览器默认(即没有设置任何属性)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>后代选择器</title>
    
        <style type="text/css">
            /*打开浏览器依次去掉优先级高的来进行验证*/
            #id1 {
                color: red;
            }
            .ppp {
                color: green;
            }
            p {
                color: blue;
            }
            * {
                color: yellow;
            }
            li {
                color: #7e1487;
            }
            
        </style>
    </head>
    <body>
    
        <ul>
            <li>
                <p id="id1" class="ppp">我是span</p>
            </li>
        </ul>
    </body>
    </html>
    

    5、!important方式来强制指定的属性的优先级提升为最高,但是不推荐使用。因为大量使用!important的代码是无法维护的。

    注意:

    • 1、!important只能用于直接选中,不能用于间接选中
    • 2、!important只能用于提升被指定的属性的优先级,其他属性的优先级不会提升
    • 3、!important必须写在属性值分号后面
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>后代选择器</title>
    
        <style type="text/css">
            /*打开浏览器依次去掉优先级高的来进行验证*/
            #id1 {
                color: red;
            }
            .ppp {
                color: green;
            }
            p {
                color: blue;
            }
            * {
                color: yellow !important;
            }
            li {
                color: #7e1487;
            }
    
        </style>
    </head>
    <body>
    
        <ul>
            <li>
                <p id="id1" class="ppp">我是span</p>
            </li>
        </ul>
    </body>
    </html>
    

    6、权重计算

    如果都是直接选中,并且混杂了一系列其他的选择器一起使用时,则需要通过计算机权重来判断优先级

    • 1、id数多的优先级高
    • 2、id数相同,则判定类数多的优先级高
    • 3、id数、class类均相同,则判定标签数多的优先级高
    • 4、若id数、class数、标签数均相同,则写在后面的优先级高
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>后代选择器</title>
    
        <style type="text/css">
            #id1 #id2 #id3 .ppp{
                color: red;
            }
            #id2 #id3.aaa p{
                color: purple;
            }
    
            #id1.ccc>.bbb>.aaa>p {
                color: pink;
            }
    
            #id1 .aaa .ppp {
                color: green;
            }
    
            #id2 .aaa p {
                color: yellow;
            }
    
            div ul li p {
                color: blue;
            }
    
            div ul p {
                color: cyan;
            }
    
        </style>
    </head>
    <body>
        <div id="id1" class="ccc">
            <ul id="id2" class="bbb">
                <li id="id3" class="aaa">
                    <p class="ppp">我是段落</p>
                </li>
            </ul>
        </div>
    </body>
    </html>
    
  • 相关阅读:
    hdu 5007 水题 (2014西安网赛A题)
    hdu 1698 线段树(成段替换 区间求和)
    poj 3468 线段树 成段增减 区间求和
    hdu 2795 公告板 (单点最值)
    UVaLive 6833 Miscalculation (表达式计算)
    UVaLive 6832 Bit String Reordering (模拟)
    CodeForces 124C Prime Permutation (数论+贪心)
    SPOJ BALNUM (数位DP)
    CodeForces 628D Magic Numbers (数位DP)
    POJ 3252 Round Numbers (数位DP)
  • 原文地址:https://www.cnblogs.com/ChiRou/p/14513777.html
Copyright © 2011-2022 走看看