博客列表 >三例双飞翼布局与三例圣杯布局总结——2018年3月28日1时05分

三例双飞翼布局与三例圣杯布局总结——2018年3月28日1时05分

白猫警长的博客
白猫警长的博客原创
2018年03月28日 13:33:50784浏览

双飞翼布局与圣杯布局有很多相似之处,不同的是一个使用margin,一个使用Padding来控制左右区块。究竟怎么来写呢,看实例代码:

三例双飞翼布局实例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>三例双飞翼布局</title>
	<style>
	/* 	头部与底部通用样式 */
		.top,.foort{
			width: 100%;
			height: 60px;
			background-color: bisque;
			text-align: center;
			line-height: 60px;
		}
		.top2,.foor2{
			width: 1000px;
			height: 100%;
			background-color: coral;
			/* 区块水平居中 */
			margin: auto;
		}
		/* 主体区块 父级元素*/
		.comter{
			width: 1000px;
			background-color: yellow;
			margin: auto;
			/* 隐藏超出当前区块部分的内容 */
			overflow: hidden;
		}
		.center{
			width: 100%;
			/* 左浮动,中间区块 父级 */
			float: left;
		}
		/* 子级 */
		.center .mai{
			height: 600px;
			/* 让当前区块向左右两侧各挤出200像素,并且居中显示。 */
			margin: 0 200px;
			background-color: green;
		}
		/* 左浮动,左侧区块 */
		.left{
			width: 200px;
			height: 600px;
			background-color: cyan;
			float: left;
			margin-left: -100%;
		}
		/* 左浮动,右侧区块 */
		.right{
			width: 200px;
			height: 600px;
			background-color: deeppink;
			float: left;
			margin-left: -200px;
		}
		.foort{
			/*清除浮动*/
			clear: both;
		}
	</style>
</head>
<body>
	<div class="top">
		<div class="top2">头部</div>
	</div>
	<div class="comter">
		<div class="center">
		<div class="mai">中间</div>
		</div>
		<div class="left">左侧</div>
		<div class="right">右侧</div>
	</div>
	<div class="foort">
		<div class="foor2">底部</div>
	</div>
</body>
</html>

运行实例 »

执行效果:

双飞翼布局.png


三例圣杯布局实例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>三例圣杯布局</title>
	<style>
		.top,.foort{
			width: 100%;
			height: 60px;
			background-color: bisque;
			text-align: center;
			line-height: 60px;
		}
		.top2,.foor2{
			width: 1000px;
			height: 100%;
			background-color: coral;
			/* 区块水平居中 */
			margin: auto;
		}
		.comater{
			width: 600px;
			height: 100%;
			background-color: red;
			margin:auto;
			/*隐藏当前容器溢出内容部分*/
			overflow: hidden;
			/*给当前容器添加内边距(padding),把左右两侧向中间挤压*/
			padding: 0 200px;
		}
		.comater .mai{
			width: 100%;
			height: 600px;
			background-color: yellow;
			/*左浮动,中间子区块*/
			float: left;	
		}
		.comater .left{
			width: 200px;
			height: 600px;
			background-color: blue;
			/*左浮动,左侧区块*/
			float: left;
			/*将补挤下来的左侧区块使用margin回到主体指定位置*/
			margin-left: -100%;
			/*为显示完整的主体内容,使用相对定位left和right把占据主体部分的位置腾出来*/
			/*左侧区块遮挡了主体部分内容,设置left相对定位属性向反方向移动自身像素*/
			position: relative;
			left: -200px;
		}
		.comater .right{
			width: 200px;
			height:600px;
			background-color: green;
			/*左浮动,右侧区块*/
			float: left;
			/*右侧区块显示在右边位置,只需要返回自身像素*/
			margin-left: -200px;
			/*右侧区块遮挡了主体部分内容,使用right相对定位属性向反方向移动自身像素*/
			position: relative;
			right: -200px;
		}
		.foort{
			/*清除浮动*/
			clear: both;
		}
	</style>
</head>
<body>
	<div class="top">
		<div class="top2">头部</div>
	</div>
	<div class="comater">
		<div class="mai">中间</div>
		<div class="left">左侧</div>
		<div class="right">右侧</div>
	</div>
	<div class="foort">
		<div class="foor2">底部</div>
	</div>
</body>
</html>

运行实例 »

执行效果预览图:

圣杯布局.png


手抄作业:

1.jpg

2.jpg


总结:通过以上2个预览图可以看出,2种布局方法的效果是一样的。那么肯定有人问了,双飞翼和圣杯哪个好呢?我只能说,2种布局各有各的长处,一个在DOM结构方面比较简洁,一个在CSS样式中比较简单。对DOM结构有洁癖的可以选择想圣杯,反之选择双飞翼。


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