<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 2,  comments - 0,  trackbacks - 0

    1.樣式表的層疊與選擇器的特殊性。

        在樣式表中,同一元素可能有兩個或者更多的規則。CSS通過一個成為“層疊”的過程處理這種沖突。層疊采用如下重要度次序:

    1.     標有!important的用戶樣式。
    2.     標有!important的作者樣式
    3.     作者樣式
    4.     用戶樣式
    5.     瀏覽器/用戶代理應用的樣式
          然后根據選擇器的特殊性決定規則的次序:具有更特殊的選擇器的規則優于具有一般選擇器的規則。如果兩個規則的特殊性相同,那么后定義的規則優先。

         選擇器的特殊性分為四個等級:a b c d

    1. 如果樣式是行內樣式,那么a=1
    2. b等于ID選擇器的總數
    3. c等于類,偽類和屬性選擇器的數量
    4. d等于類型選擇器和偽元素選擇器的數量 
     特殊性示例:

                                       選擇器                                     特殊性                   以10為基數的特殊性

                                        
                                   style=""                                     1,0,0,0                       1000

                               #wrapper #content{}                0,2,0,0                        200
                               #content .dateposted{}            0,1,1,0                       110

                               div#content{}                             0,1,0,1                       101
                               #content{}                                  0,1,0,0                       100
                               p.comment .dateposted          0,0,2,1                        21
                               p.comment                                0,0,1,1                        11
                               div p{}                                        0,0,0,2                         2
                              p{}                                               0,0,0,1                         1

    代碼示例:
    CSS文件:
    #content #subcontent1 h2{      
        color:red;
    }

    #content #subcontent1>h2{
        color:green;
    }

    body #content div[id="subcontent1"] h2{
    color:orange;
    }

    #subcontent1 div.subcontent2 h2{
    color:yellow;
    }

    subcontent1 div.subcontent2 h2.first{
    color:blue;
    }
    html文件
    <div id="content">
    <div id="subcontent1">
    <h2>Test</h2>
    <div class="subcontent2">
    <h2>Hello!</h2>
    </div>
    </div>
    </div>
    結果:
    chrome中:

    Test

    Hello!

    IE中:

    Test

    Hello!

    在chrome中,若將css中前2個樣式調換位置,即
    #content #subcontent1>h2{
    color:green;
    }

    #content #subcontent1 h2{
    color:red;
    }

    則結果為:

    Test

    Hello!

    而對特殊選擇器“*”和“+”測試,IE和Chrome的表現又不同。此不贅述。
    那當樣式表中同一元素既有!important聲明又有選擇器的特殊性時,誰的優先級高呢? !important一旦使用,它就覆蓋了其他規則,而不需要管選擇器的特殊性。

    2.盒子模型。
    在CSS中,width和height指的是內容區域的寬度和高度。增加內邊距、邊框和外邊距不會影響內容區域的尺寸,只會增大元素框的總尺寸。當外邊據為負值時,可應用于多種技術中,如“投影”、“三欄布局”等。

    關于外邊距的合并:
    HTML文件
        <div id="content1">
    <div id="content2"></div>
    <div id="content3"></div>
    </div>

    css文件:

    #content1{
    height:100px; width:100px; margin:20px; background:red;
    }

    #content2{
    margin:20px; height:20px; width:20px; background:green;
    }

    #content3{
    margin:20px; height:20px; width:20px; background:blue;
    }

    結果:


    每個content都添加“padding:1px”后:

    若添加“border:1px”后:
    chrome效果:

    IE效果:

    所以大多我們可以通過添加一點內邊距或與元素背景顏色相同的小邊框來修復外邊距的疊加。
    注:只有普通文檔流中塊框的垂直外邊距才會發生外邊距疊加。行內框、浮動框和絕對定位框之間的外邊距不會疊加。

    3.浮動與清除。

    float:將元素從常規文檔流中移出,直至該元素碰到其他元素的邊框為止。如果浮動元素后面還有文檔流的文本,那么文本將會圍繞著浮動元素存在。

    clear:對元素進行清理實際上是為前面的浮動元素留出了垂直空間。具體表現為將該元素的margin-top重設(CSS1、CSS2)或者是增大清楚空間而margin-top不變(CSS2.1)。

    浮動的特點:如果沒有足夠的水平空間,浮動元素將下移動,如果浮動元素高度不同,那么當它們向下移動時可能會被其他浮動元素“卡住”:

    如圖:


    關于浮動與清除的一些方法:

    HTML文件:


    <div id="maincontent">
        <div id="content1"></div>
        <div id="content2"></div>
    </div>

    CSS文件:

    #content1{
         margin
    :20px;     height:60px;     width:60px;     float:left;     background:red; 
    }  

    #content2
    {
         margin
    :20px;     width:50px;     height:50px;     float:left;     background:green; 
    }  

    #maincontent
    {
         border
    :1px gray solid;     width:200px; 
    } 

    結果如下:


    如何讓maincontent包圍住content1和content2呢?

    有如下一些方法:

    (a)讓maincontent浮動——float:left;

    (b)添加空白塊

    html中添加<br id="clear">:

            <div id="content2"></div>
            <br style="clear:both"/>

    (c)maincontent中添加overflow:hidden。(值為hidden或者auto的overflow屬性會自動清理包含的任何浮動元素。)

    (d)after偽元素的應用:

    CSS中添加如下樣式:

    #maincontent:after{
           content
    : ".";       display: block;       height: 0;       clear: both;       visibility: hidden;  
    }  

    .clear
    {
         zoom
    :1;            /*IE triggers hasLayout,高版本IE不需要了*/ 
    } 

    最終結果如下:


    其他方法略去,推薦c、d的方法。


    4.關于布局:

    布局可分為固定寬度、流式、彈性布局。各布局主要是單位的不同。一般使用px和em、%作為單位。

    ps:彈性布局中,最好以%指定內部寬度(被包含框),而以em指定容器寬度(包含框),這樣修改布局時,不需要所有寬度都修改。

    兩欄布局很簡單,在此不贅述。

    如下:

    HTML文件:

    <div class="content">
         <div class="secondary">Secondary</div>
         <div class="primary">Primary</div>
    </div>    

    CSS文件:

    .content .primary{
         width
    :450px;     height:200px;     border:1px solid red;     float:right;     
            margin
    :30px 10px;     display:inline;     text-align:center; 
    }  

    .content .secondary
    {
         width
    :100px;     height:200px;     border:1px solid green;     float:left;     
            margin
    :30px 10px;     display:inline;     text-align:center; 
    }  

    .content
    {
         width
    :600px;     height:300px;     border:1px dashed gray;     float:left; 
    }

    三欄布局:在primary中將之分為2部分。如下:


    三欄布局還可以用負外邊距解決最右邊框(即pri_secondary框)的問題。此不贅述。


    5.其他想說的幾點:

    a.更多的應用html5和css3。

    b.圓角框(1.幾張圖像的覆蓋 2.border-radius 3.border-image)、投影(1.負外邊距 2.相對定位--left:-5px;等 3.box-shadow)、不透明度(rgba)及美化連接(突出顯示不同的連接類型)。


    參考書籍:CSS Mastery



    posted on 2012-07-29 21:57 hqjma 閱讀(136) 評論(0)  編輯  收藏 所屬分類: Web

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV无码乱码国产麻豆| 亚洲伊人久久大香线蕉啊| 日日麻批免费40分钟无码| 亚洲av无码片在线观看| 四虎永久免费网站免费观看| 免费无码又爽又刺激网站| 亚洲中文字幕乱码一区| 精品亚洲综合久久中文字幕| 在线观看成人免费视频| 国产日韩一区二区三免费高清| 亚洲中文字幕无码久久| 亚洲成色WWW久久网站| 免费看h片的网站| 一区二区三区免费在线观看| 亚洲av产在线精品亚洲第一站| 国产偷国产偷亚洲高清日韩| 在线观看特色大片免费视频| 伊人免费在线观看| 亚洲成av人在线观看网站| 亚洲91av视频| 亚洲国产精品一区二区九九 | A片在线免费观看| 亚洲精品无码中文久久字幕| 亚洲人成网站在线播放影院在线| 免费看一级做a爰片久久| 免费在线看v网址| 野花香在线视频免费观看大全| 欧洲亚洲国产精华液| 亚洲成人免费在线观看| 亚洲va无码专区国产乱码| 亚洲国产精品成人久久蜜臀 | 特级av毛片免费观看| 亚洲一区中文字幕在线观看| 亚洲国产精品无码AAA片| 全亚洲最新黄色特级网站| 无码人妻一区二区三区免费手机 | 亚洲精品美女视频| 亚洲人精品午夜射精日韩| www国产亚洲精品久久久日本| 成全影视免费观看大全二| 日本妇人成熟免费中文字幕 |