CSS(二)樣式優先級別和css的單位刻度


 

一、css的特殊性-優先級

  csss的選擇是有優先級的,

  a)、同類型,同級別的樣式后者先於前者

  b)、ID > 類樣式 > 標簽 > *

  c)、內聯>ID選擇器>偽類>屬性選擇器>類選擇器>標簽選擇器>通用選擇器(*)>繼承的樣式

  d)、具體 > 泛化的,特殊性即css優先級

  e)、近的 > 遠的 (內嵌樣式 > 內部樣式表 > 外聯樣式表)

  內嵌樣式:內嵌在元素中,<span style="color:red">span</span>

  內部樣式表:在頁面中的樣式,寫在<style></style>中的樣式

  外聯樣式表:單獨存在一個css文件中,通過link引入或import導入的樣式

  f)、!important 權重最高,比 inline style 還要高

二、計算優先級

  important > 內嵌 > ID > 類 > 標簽 | 偽類 | 屬性選擇 > 偽對象 > 繼承 > 通配符

  權重、特殊性計算法:CSS樣式選擇器分為4個等級,a、b、c、d

  1.如果樣式是行內樣式(通過Style=“”定義),那么a=1,1,0,0,0 

  2.b為ID選擇器的總數 0,1,0,0 

  3.c為屬性選擇器,偽類選擇器和class類選擇器的數量。0,0,1,0

  4.d為標簽、偽元素選擇器的數量 0,0,0,1

  5.!important 權重最高,比 inline style 還要高

例子:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>優先級</title>
        <style type="text/css">
            html body #div1 /*計算結果 0102*/
            {
                background: red;
            }
            
            .cls1 #div1{  /*計算結果 0110*/
                background: blue;
            }
        </style>
    </head>
    <body>
        <div class="cls1">
            <div id="div1">div1
            </div>
            <div id="div2">div2
            </div>
        </div>
    </body>
</html>

 

結果:結果可知 0110 比 0102 ,110比102大,所以它的優先級在在第二個定義的樣式里為藍色。

三、刻度

  在CSS中刻度是用於設置元素尺寸的單位。特殊值0可以省略單位。例如:margin:0px可以寫成margin:0 

  一些屬性可能允許有負長度值,或者有一定的范圍限制。如果不支持負長度值,那應該變換到能夠被支持的最近的一個長度值。 

  長度單位包括包括:相對單位和絕對單位。

  相對長度單位包括有: em, ex, ch, rem, vw, vh, vmax, vmin 

  絕對長度單位包括有: cm, mm, q, in, pt, pc, px

  相對單位:

    em長度單位是相對於當前對象內文本的字體尺寸,如當前對行內文本的字體尺寸未被人為設置,則相對於瀏覽器的默認字體尺寸。(相對父元素的字體大小倍數)

    例子1:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>em與rem</title>
        <style type="text/css">
            #div2{
                background: blue;
                height: 5em;  /*設置為5em*/
            }
        </style>
    </head>
    <body>
        <div id="div1">
            <div id="div2">
                Hello em
            </div>
        </div>
    </body>
</html>

    結果:結果中的div2高度為80px,它是根據自身的父元素div1的font-size的高度設置的,div1沒有設置字體大小,會跟尋到上一個父標簽,

        如果上一個父標簽也是沒有設置大小,會直到跟元素,跟元素的默認字體大小為16px,16乘以5 = 80

  

    例子2:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>em與rem</title>
        <style type="text/css">
            #div1 {
                font-size: 20px;
            }
            #div2 {
                color: white;
                background: blue;
                height: 5em;
            }
        </style>
    </head>
    <body>
        <div id="div1">
            <div id="div2">
                Hello em
            </div>
        </div>
    </body>
</html>

 

    結果:看下圖可知它的高度為100px 父元素的字體大小為20px, 20乘以5等於100

    

    rem是CSS3新增的一個相對單位(root em,根em),相對於根元素(即html元素)font-size計算值的倍數,只相對於根元素的大小 (根元素字體大小默認為16px)

    例子:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>em與rem</title>
        <style type="text/css">
            #div1 {
                font-size: 20px;
            }
            #div2 {
                color: white;
                background: blue;
                height: 5rem; /*設置為5rem*/
            }
        </style>
    </head>
    <body>
        <div id="div1">
            <div id="div2">
                Hello em
            </div>
        </div>
    </body>
</html>

  結果:看下圖可以知道rem是根據根元素的字體大小的。我們沒有設置根元素的字體大小所以為16px。16乘以5等於80

    我們可以設置html標簽的字體大小,注意一點的是,一般的瀏覽器字體大小最小限制為12px

 

  絕對單位:

    1in = 2.54cm = 25.4 mm = 72pt = 6pc = 96px

  計算長度單位:

    •   需要注意的是,運算符前后都需要保留一個空格,例如:width: calc(100% - 10px)
    •   任何長度值都可以使用calc()函數進行計算;
    •   calc()函數支持 "+", "-", "*", "/" 運算;
    •   calc()函數使用標准的數學運算優先級規則; 

    例子:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            #container{
                background: yellow;
                width: calc(100% - 40px);
                margin: 0 auto;
                height: 400px;
            }
        </style>
    </head>
    <body>
        <div id="container">
            
        </div>
    </body>
</html>

   結果:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM