實戰案例:DIV嵌套


 

 緣於頁面結構語義化的考慮,我們應該慎用div和span這兩個通用元素,只有當划分頁面結構模塊時才使用div元素,因為模塊本身是沒有任何語義的,他僅代表一塊獨立的結構。如果想對段落內部分內聯元素或文本應用某種特殊樣式時,就可以使用span元素把他們獨立封裝在一個容器內。

 

div作為布局元素,它與表格一樣是可以嵌套的。因為瀏覽器對於任何元素的解析方式都是一樣的,一般從最里層開始,然后不斷向外解析。當嵌套層級很深時,將會使瀏覽器消耗更多的資源對嵌套關系進行解析,勢必會影響瀏覽器的速度。

 

對於一個上下三行的布局結構:

<div id="header"></div>
<div id="main"></div>
<div id="footer"></div>

為了實現頁面固定寬度和居中顯示效果,分別給三個div設置css樣式就有點麻煩了,我們可以給它嵌套一個div層:

<div id="wrap">    
    <div id="header"></div>
    <div id="main"></div>
    <div id="footer"></div>
</div>

實際上這種增加一層div嵌套的方法,肯定會給瀏覽器的顯示帶來負擔,我們可以將body元素作為一個外套,這樣就能充分發揮body的作用,以免造成浪費。

<body id="wrap">
    <div id="header"></div>
    <div id="main"></div>
    <div id="footer"></div>
</body>


又比如:要給上述頂部頁眉部分加一個導航條:

<div id="wrap">
    <div id="header">
        <div id="logo"></div>
        <div id="banner"></div>
        <div id="nav">
            <ul>  <!--導航列表-->
                <li></li>    <!--導航列表項-->
                <li></li>    <!--導航列表項-->
                <li></li>    <!--導航列表項-->
            </ul>
        </div>
     </div>   
</div>                                

上述代碼是最優化的么?當然不是,ul元素與div元素一樣都是塊狀元素,一個導航菜單外面嵌套兩層元素,勢必會產生代碼冗余,如果沒有被定義的特殊樣式,我們完全可以這樣寫:

<body id="wrap">
        <div id="logo"></div>
        <div id="banner"></div>
        <div id="nav">
            <ul>  <!--導航列表-->
                <li></li>    <!--導航列表項-->
                <li></li>    <!--導航列表項-->
                <li></li>    <!--導航列表項-->
            </ul>
        </div>  
</body>                                

  這種情況就是最優的。但是,這樣做存在一定的風險,可能需要使用更多的css樣式來控制整個元素的顯示。如果多嵌套一層,對頁面布局會有更大的幫助,能節省大量不必要的css控制代碼,此時布局的功能重要性就遠大於結構的功能性。

 

總之,在我們大力提倡盡力減少div元素的多次嵌套時,是針對當前網頁設計中設計師亂套div元素的現狀而說的,但並不是談套色變,必要的嵌套是應該的,也是必須的!

 

補充:頁面語義化操作:

 1、XHTML結構的語義性

 

2、構建語義化頁面操作

 

 


免責聲明!

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



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