实战案例: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、构建语义化页面操作

 

 

posted @ 2015-12-13 11:44  *茉莉花开*  阅读(2501)  评论(2编辑  收藏  举报