三种传统PC端⽹⻚布局⽅式:
(1)传统的DIV+CSS布局
(2)HTML5+CSS3布局
(3)响应式布局

1. DIV+CSS布局

此种布局是⽹⻚的HTML通过DIV标签+CSS样式表代码开发制作的(HTML)⽹⻚的统称。
DIV+CSS布局好处:便于维护,有利的SEO(⾕歌将⽹⻚打开速度作为排名因素及SEO因素),
⽹⻚打开速度还原,符合web标准等。
image.png
案列

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>DIV+CSS传统网页布局</title>
  7. <style>
  8. /*公共的css样式*/
  9. *{margin:0px;padding:0px}
  10. a{text-decoration: none;}
  11. ul{list-style:none;}
  12. /*页面头部样式*/
  13. #header{
  14. position:fixed;
  15. top:0px;
  16. width:100%;
  17. border-bottom:1px solid #46474a;
  18. }
  19. #header .header-nav{
  20. height:80px;
  21. width:1200px;
  22. background-color: goldenrod;
  23. margin:0px auto;
  24. }
  25. /*页面导航样式*/
  26. #nav{
  27. height:60px;
  28. margin-top:81px;
  29. background-color:#46474a;
  30. }
  31. /*页面主体样式*/
  32. #container{
  33. width:100%;
  34. }
  35. #container .content{
  36. width:1200px;
  37. margin:0px auto;
  38. margin-top:50px;
  39. }
  40. #container .content .main{
  41. width:950px;
  42. margin:0px auto;
  43. }
  44. /*页面主体中的电影排行列表样式*/
  45. #container .content .main ul li{
  46. display:block;
  47. height:220px;
  48. line-height:220px;
  49. width:100%;
  50. margin-bottom:20px;
  51. border:1px dashed #f60;
  52. }
  53. .main ul li .info{
  54. height:100%;
  55. width:680px;
  56. float:right;
  57. background-color:snow;
  58. border-bottom:1px solid #aaa;
  59. }
  60. .main ul li .info .info-right{
  61. width:80px;
  62. height:80px;
  63. border:1px dashed orange;
  64. float: right;
  65. margin-top:70px;
  66. }
  67. .main ul li .info .info-left{
  68. width:300px;
  69. height:120px;
  70. border:1px dashed orange;
  71. margin-top:50px;
  72. }
  73. .main ul li .ids{
  74. height:50px;
  75. width:50px;
  76. margin-top:85px;
  77. margin-bottom:85px;
  78. background-color:orange;
  79. display:inline-block;
  80. }
  81. .main ul li .pic{
  82. height:200px;
  83. width:160px;
  84. margin:10px 25px;
  85. border:1px dashed green;
  86. display: inline-block;
  87. }
  88. /*页面尾部样式*/
  89. #footer{
  90. height:300px;
  91. background-color:#46474a;
  92. }
  93. </style>
  94. </head>
  95. <body>
  96. <!-- 网页头部开始 -->
  97. <div id="header">
  98. <div class="header-nav">
  99. <h2>使用div+CSS布局实现《猫眼电影》榜单排行界面的布局效果</h2>
  100. 网址:https://maoyan.com/board
  101. </div>
  102. </div>
  103. <!-- 网页头部结束 -->
  104. <!-- 导航开始 -->
  105. <div id="nav">
  106. </div>
  107. <!-- 导航结束 -->
  108. <!-- 页面主体开始 -->
  109. <div id="container">
  110. <div class="content">
  111. <div class="main">
  112. <!-- 电影排行列表开始 -->
  113. <ul>
  114. <li>
  115. <div class="info">
  116. <div class="info-right"></div>
  117. <div class="info-left"></div>
  118. </div>
  119. <div class="ids"></div>
  120. <div class="pic"></div>
  121. </li>
  122. <li>
  123. <div class="info">
  124. <div class="info-right"></div>
  125. <div class="info-left"></div>
  126. </div>
  127. <div class="ids"></div>
  128. <div class="pic"></div>
  129. </li>
  130. <li>
  131. <div class="info">
  132. <div class="info-right"></div>
  133. <div class="info-left"></div>
  134. </div>
  135. <div class="ids"></div>
  136. <div class="pic"></div>
  137. </li>
  138. <li>
  139. <div class="info">
  140. <div class="info-right"></div>
  141. <div class="info-left"></div>
  142. </div>
  143. <div class="ids"></div>
  144. <div class="pic"></div>
  145. </li>
  146. <li></li>
  147. <li></li>
  148. <li></li>
  149. <li></li>
  150. <li></li>
  151. <li></li>
  152. </ul><!-- 电影排行列表结束 -->
  153. </div>
  154. </div>
  155. </div><!-- 页面主体结束 -->
  156. <!-- 页面尾部开始 -->
  157. <div id="footer"></div>
  158. <!-- 页面主体结束 -->
  159. </body>
  160. </html>

2. HTML5+CSS3布局

HTML5 可以让很多更语义化的结构化代码标签代替⼤量⽆意义的 div 标签
1. 这种语义化的特性提升了⽹⻚的质量和语义
2. 减少了以前⽤于CSS 调⽤的class 和 id 属性
对搜索引擎的友好 新的结构标签带来的是⽹⻚布局的改变及提升对搜索引擎的友好。
HTML5的新标签元素有:

<header> 定义⻚⾯或区段的头部;
 <footer> 定义⻚⾯或区段的尾部;
 <nav> 定义⻚⾯或区段的导航区域;
 <section> ⻚⾯的逻辑区域或内容组合;
 <article> 定义正⽂或⼀篇完整的内容;
 <aside> 定义补充或相关内容;

image.png
注意:使⽤HTML5 语义化标签的布局模式在IE9以下浏览器不兼容,可使⽤下⾯的代码解决。

<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"
type="text/javascript"></script>
<![endif]-->

案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML5语义话标签网页布局</title>
    <!--[if lt IE 9]>
     <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script> 
    <![endif]-->
    <style>
        /*公共的css样式*/
        *{margin:0px;padding:0px}
        a{text-decoration: none;}
        ul{list-style:none;}

        /*页面头部样式*/
        #header{
            position:fixed;
            top:0px;
            width:100%;
            border-bottom:1px solid #46474a;
        }
        #header .header-nav{
            height:80px;
            width:1200px;
            background-color: goldenrod;
            margin:0px auto;
        }

        /*页面导航样式*/
        #nav{
            height:60px;
            margin-top:81px;
            background-color:#46474a;
        }

        /*页面主体样式*/
        #container{
            width:100%;
        }
        #container .content{
            width:1200px;
            margin:0px auto;
            margin-top:50px;
        }
        #container .content .main{
            width:950px;
            margin:0px auto;
        }

        /*页面主体中的电影排行列表样式*/
        #container .content .main ul li{
            display:block;
            height:220px;
            line-height:220px;
            width:100%;
            margin-bottom:20px;
            border:1px dashed #f60;
        }
        .main ul li .info{
            height:100%;
            width:680px;
            float:right;
            background-color:snow;
            border-bottom:1px solid #aaa;
        }

        .main ul li .info .info-right{
            width:80px;
            height:80px;
            border:1px dashed orange;
            float: right;
            margin-top:70px;
        }

        .main ul li .info .info-left{
            width:300px;
            height:120px;
            border:1px dashed orange;
            margin-top:50px;
        }
        .main ul li .ids{
            height:50px;
            width:50px;
            margin-top:85px;
            margin-bottom:85px;
            background-color:orange;
            display:inline-block;
        }

        .main ul li .pic{
            height:200px;
            width:160px;
            margin:10px 25px;
            border:1px dashed green;
            display: inline-block;
        }

        /*页面尾部样式*/
        #footer{
            height:300px;
            background-color:#46474a;
        }
    </style>
</head>
<body>


    <!-- 网页头部开始 -->
    <header id="header">
        <div class="header-nav">
            <h2>HTML5语义话标签实现《猫眼电影》榜单排行界面的布局效果</h2>
            网址:https://maoyan.com/board
        </div>
    </header>
    <!-- 网页头部结束 -->

    <!-- 导航开始 -->
    <nav id="nav">
    </nav>
    <!-- 导航结束 -->

    <!-- 页面主体开始 -->
    <section id="container">
        <div class="content">
            <article class="main">
                <!-- 电影排行列表开始 -->
                <ul>
                    <li>
                        <div class="info">
                            <div class="info-right"></div>
                            <div class="info-left"></div>
                        </div>
                        <div class="ids"></div>
                        <div class="pic"></div>
                    </li>
                    <li>
                        <div class="info">
                            <div class="info-right"></div>
                            <div class="info-left"></div>
                        </div>
                        <div class="ids"></div>
                        <div class="pic"></div>
                    </li>
                    <li>
                        <div class="info">
                            <div class="info-right"></div>
                            <div class="info-left"></div>
                        </div>
                        <div class="ids"></div>
                        <div class="pic"></div>
                    </li>
                    <li>
                        <div class="info">
                            <div class="info-right"></div>
                            <div class="info-left"></div>
                        </div>
                        <div class="ids"></div>
                        <div class="pic"></div>
                    </li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                </ul><!-- 电影排行列表结束 -->
            </article>
        </div>
    </section><!-- 页面主体结束 -->


    <!-- 页面尾部开始 -->
    <footer id="footer"></footer>
    <!-- 页面主体结束 -->
</body>
</html>

3. 响应式布局

3.1第⼀种:直接在⻚头中使⽤CSS样式修饰。

<style type="text/css">
 /* 宽度范围 最⾼度*/
 @media all and (min-width:300px) and (max-width:800px){
 body{
 color:red;
 }
 }
 @media all and (min-width:100px) and (max-width:300px){
 body{
 color:green;
 }
 }
</style>

3.2第⼆种:导⼊不同的css样式⽂件:

<link media="all and (min-width:300px) and (max-width:800px)" rel="stylesheet"
href="my.css" />
<link media="all and (min-width:100px) and (max-width:200px)" rel="stylesheet"
href="test.css" />