三种传统PC端⽹⻚布局⽅式:
(1)传统的DIV+CSS布局
(2)HTML5+CSS3布局
(3)响应式布局
1. DIV+CSS布局
此种布局是⽹⻚的HTML通过DIV标签+CSS样式表代码开发制作的(HTML)⽹⻚的统称。
DIV+CSS布局好处:便于维护,有利的SEO(⾕歌将⽹⻚打开速度作为排名因素及SEO因素),
⽹⻚打开速度还原,符合web标准等。
案列
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DIV+CSS传统网页布局</title>
<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>
<!-- 网页头部开始 -->
<div id="header">
<div class="header-nav">
<h2>使用div+CSS布局实现《猫眼电影》榜单排行界面的布局效果</h2>
网址:https://maoyan.com/board
</div>
</div>
<!-- 网页头部结束 -->
<!-- 导航开始 -->
<div id="nav">
</div>
<!-- 导航结束 -->
<!-- 页面主体开始 -->
<div id="container">
<div class="content">
<div 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><!-- 电影排行列表结束 -->
</div>
</div>
</div><!-- 页面主体结束 -->
<!-- 页面尾部开始 -->
<div id="footer"></div>
<!-- 页面主体结束 -->
</body>
</html>
2. HTML5+CSS3布局
HTML5 可以让很多更语义化的结构化代码标签代替⼤量⽆意义的 div 标签
1. 这种语义化的特性提升了⽹⻚的质量和语义
2. 减少了以前⽤于CSS 调⽤的class 和 id 属性
对搜索引擎的友好 新的结构标签带来的是⽹⻚布局的改变及提升对搜索引擎的友好。
HTML5的新标签元素有:
<header> 定义⻚⾯或区段的头部;
<footer> 定义⻚⾯或区段的尾部;
<nav> 定义⻚⾯或区段的导航区域;
<section> ⻚⾯的逻辑区域或内容组合;
<article> 定义正⽂或⼀篇完整的内容;
<aside> 定义补充或相关内容;
注意:使⽤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" />