博客列表 >20180327作业(双飞翼、圣杯布局)

20180327作业(双飞翼、圣杯布局)

lilove的博客
lilove的博客原创
2018年03月28日 16:51:251427浏览

主题:

三列布局的三种方式:绝对定位布局,“双飞翼”布局,“圣杯”布局。

双飞翼布局特点:网页主体部分由中间部分与两侧部分用margin分开并定位。

圣杯布局特点:网页主体部分由中间部分用padding包住两侧部分并用margin定位。

具体实现效果如下:

实现效果.png

“双飞翼”布局代码:


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>2.双飞翼布局</title>
	<style type="text/css">
		.header,.footer {
			width:100%;	/*使头部和尾部宽度自适应*/
			height:50px;
			background-color:grey;
		}
		.footer {
			clear:both;	/*为尾部清除浮动*/
		}
		.content {
			width:1000px;
			min-height:100%;	/*设置头尾内容区域最小高度100%以便于后期添加网站内容*/
			background-color:coral;
			margin:0 auto;	/*设置内容区域块在父容器中水平居中*/
			text-align: center;	/*设置内容区域的文本水平居中*/
			line-height:50px;	/*设置内容区域文本垂直居中*/
		}
		.container {
			width:1000px;	/*只设置宽度,高度由容器内元素指定*/
			background-color:yellow;
			margin:0 auto;	/*设置中间容器水平居中*/
		}
		.wrap {
			width:100%;	/*宽度为100%会将后面浮动的元素挤到下一行显示*/
			min-height:650px;
			background-color:pink;
			float:left;	/*将元素左浮动,会脱离文档流*/
		}
		.main {
			min-height:650px;
			margin:0 200px;	/*将被覆盖的区域挤出来*/
		}
		.left {
			width:200px;
			min-height:650px;
			background-color:skyblue;
			float:left;
			margin-left:-100%;	/*将浮动的左边DOM移动到正确位置*/
		}
		.right {
			width:200px;
			min-height:650px;
			background-color:lightgreen;
			float:left;
			margin-left:-200px;	/*这里只需将margin值定位要移动的元素宽度就可以*/
		}
	</style>
</head>
<body>
	<!-- 头部 -->
	<div class="header">
		<div class="content">头部</div>
	</div>
	<!-- 主体 -->
	<div class="container">
		<div class="wrap">
			<div class="main">主体</div>
		</div>
		<div class="left">左边</div>
		<div class="right">右边</div>
    </div>
	<!-- 尾部 -->
    <div class="footer">
    	<div class="content">尾部</div>
    </div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

“圣杯”布局代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>3.圣杯布局</title>
	<style type="text/css">
		.header,.footer {
			width:100%;	/*使头部和尾部宽度自适应*/
			height:50px;
			background-color:grey;
		}
		.footer {
			clear:both;	/*为尾部清除浮动*/
		}
		.content {
			width:1000px;
			min-height:100%;	/*设置头尾内容区域最小高度100%以便于后期添加网站内容*/
			background-color:coral;
			margin:0 auto;	/*设置内容区域块在父容器中水平居中*/
			text-align: center;	/*设置内容区域的文本水平居中*/
			line-height:50px;	/*设置内容区域文本垂直居中*/
		}
		.container {
			width:600px;	/*这里和双飞翼布局宽度不同*/
			background-color:yellow;
			margin:0 auto;	/*设置中间容器水平居中*/
		}
		.main {
			width:100%;	/*宽度为100%会将后面浮动的元素挤到下一行显示*/
			min-height:650px;
			background-color:pink;
			float:left;	/*将元素左浮动,会脱离文档流*/
		}
		.left {
			width:200px;
			min-height:650px;
			background-color:skyblue;
			float:left;
			margin-left:-100%;	/*这里和双飞翼布局设置一样*/
			/*相对定位移动元素到正确位置*/
			position:relative;	/*相对于浮动元素文档流*/
			right:200px;	/*向左移动200px*/
		}
		.right {
			width:200px;
			min-height:650px;
			background-color:lightgreen;
			float:left;
			margin-left:-200px;	/*这里和双飞翼布局设置一样*/
			/*相对定位移动元素到正确位置*/
			position:relative;	/*相对于浮动元素文档流*/
			left:200px;	/*向右移动200px*/
		}
	</style>
</head>
<body>
	<!-- 头部 -->
	<div class="header">
		<div class="content">头部</div>
	</div>
	<!-- 主体 -->
	<div class="container">		
		<div class="main">主体</div>		
		<div class="left">左边</div>
		<div class="right">右边</div>
    </div>
	<!-- 尾部 -->
    <div class="footer">
    	<div class="content">尾部</div>
    </div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:我个人喜欢双飞翼布局,两者的效果差不多,由于块元素基本都是自增长,网页内容的填充也比较方便,需要注意的是布局时文档流的变化和相对定位的目标变化,以及两种经典布局的区别。

以下是手写代码:

20180327作业手写.png

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议