<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永久无码精品国产精品| 毛色毛片免费观看| 国产亚洲精品无码专区| 亚洲欧美日韩综合久久久| 国产乱码免费卡1卡二卡3卡| 精品无码一区二区三区亚洲桃色| 精品一区二区三区免费毛片爱 | 人人玩人人添人人澡免费| 亚洲色欲色欲www在线丝| 国产又黄又爽又大的免费视频| 久久久久亚洲精品中文字幕| 大妹子影视剧在线观看全集免费| ZZIJZZIJ亚洲日本少妇JIZJIZ| 成年大片免费高清在线看黄| 国产亚洲欧洲Aⅴ综合一区| 中文字幕a∨在线乱码免费看| 亚洲第一精品福利| www.黄色免费网站| 国产成人亚洲综合无| 波多野结衣免费视频观看| 久久国产一片免费观看| 亚洲成熟xxxxx电影| 国产情侣激情在线视频免费看| 最新亚洲春色Av无码专区| 国产精品四虎在线观看免费| 一本久久A久久免费精品不卡| 亚洲国产精品无码久久久秋霞2| 日本一卡精品视频免费| 久久精品国产亚洲AV忘忧草18| 免费看美女被靠到爽的视频| 一级白嫩美女毛片免费| 91久久亚洲国产成人精品性色| 蜜桃精品免费久久久久影院| 国产精品午夜免费观看网站| 久久亚洲精品无码aⅴ大香 | 99久9在线|免费| 亚洲最大av资源站无码av网址| 亚洲AV无码一区二三区| 全部免费毛片在线播放| 亚洲AV无码AV吞精久久| 亚洲av无码一区二区三区不卡|