博客列表 >经典的双飞翼和圣杯三列布局—2018年3月28日18时45分

经典的双飞翼和圣杯三列布局—2018年3月28日18时45分

日薪月e的博客
日薪月e的博客原创
2018年03月28日 19:26:37881浏览

此次作业内容主要是经典的两种三列布局:双飞翼和圣杯布局。

双飞翼和圣杯布局主要是实现左、右两侧定宽,中间自适应宽度的三列布局。总体思路非常相像。都是将中间区块优先放在文档流前面,以便于优先渲染,然后是左、右两侧区块,并且三个区块全部进行左浮动。

不同之间在双飞翼的中间区块居中并且宽度为父级区块的100%,左、右两是在中间区块的上面左右两侧,为了显示出被遮挡的内容,用margin进行左右外边距的设置,分别与左、右两侧区块同宽。

圣杯布局的中间区块和左、右两侧区块是三个部分,利用中间区块设置padding内边距占位,再将左、右区块进行相对定位移动到padding区域。

具体代码分别如下。

1、双飞翼三列布局代码:

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>双飞翼三列布局-3月27日作业</title>
	<style type="text/css">
		/*设置网站头部和底部样式*/
		.header,.footer{
			/*宽度自适应*/
			width: 100%;
			height: 60px;
			background-color: lightgray;	
		}
		.footer{
			/*将底部清除浮动,以使其正确显示在浮动区块下方*/
			clear: both;
		}
		.content{
			/*头部与底部显示内容的样式*/
			width: 1000px;
			height: 100%;
			background-color: gray;
			/*显示内容自动居中*/
			margin: auto;
			/*内容中的文本水平居中*/
			text-align: center;
			/*内容中的文本垂直居中*/
			line-height: 60px;
		}
		/*给主体内容创建父级容器并设置样式*/
		.container{
			width: 1000px;
			background-color: yellow;
			margin: auto;
			
		}
		/*创建中间块的父级区块,设置基本样式*/
		.wrap{
			width: 1000px;
			background-color: gray;
			/*中间的主体、左侧和右侧都设置为左浮动*/
			float: left;
			overflow: hidden;
		}
		/*设置中间主体区块的样式*/
		.main{
			min-height: 650px;
			background-color: wheat;
			/*通过margin设置左右外边距,使内容显示出来*/
			margin: 0 200px;
		}
		/*左侧样式*/
		.left{
			width: 200px;
			min-height: 650px;
			background-color: pink;
			/*左浮动*/
			float: left;
			/*通过margin-left设置使用左侧区块从下方移至中间区块的左侧位置*/
			margin-left: -100%;
		}
		/*右侧样式*/
		.right{
			width: 200px;
			min-height: 650px;
			background-color: lightgreen;
			/*左浮动*/
			float: left;
			/*通过margin-left设置使用左侧区块从下方移至中间区块的右侧位置*/
			margin-left: -200px;
		}
	</style>
</head>
<body>
	<!-- 网站头部 -->
	<div class="header">
		<div class="content">
			头部内容
		</div>	
			
	</div>
	<!-- DOM结构 -->
	<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>

运行实例 »

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

2、圣杯三列布局代码:

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>圣杯三列布局-3月27日作业</title>
	<style type="text/css">
		/*设置网站头部和底部样式*/
		.header,.footer{
			/*宽度自适应*/
			width: 100%;
			height: 60px;
			background-color: lightgray;	
		}
		.footer{
			/*将底部清除浮动,以使其正确显示在浮动区块下方*/
			clear: both;
		}
		.content{
			/*头部与底部显示内容的样式*/
			width: 1000px;
			height: 100%;
			background-color: gray;
			/*显示内容自动居中*/
			margin: auto;
		}
		/*给主体内容创建父级容器并设置样式*/
		.container{
			/*设置容器宽度,此处应特别注意,与双飞翼不同。双飞翼的宽度是100%,而圣杯的宽度是中间与左、右三个部分的和是100%*/
			width: 600px;
			background-color: yellow;
			margin: auto;
			/*防止高度塌陷*/
			overflow: hidden;
			/*因为容器宽度只有600px,所以用padding进行点位,以便于使left和right能移动到padding区*/
			padding: 0 200px;
		}
		/*设置中间主体区块的样式*/
		.main{
			/*必须设置宽度为父级的100%,将左、右侧的浮动区块挤到下边*/
			width: 100%;
			min-height: 650px;
			background-color: wheat;
			/*左浮动*/
			float: left;
		}
		/*左侧样式*/
		.left{
			width: 200px;
			min-height: 650px;
			background-color: pink;
			/*左浮动*/
			float: left;
			/*左侧区块从下边移至中间区块左侧*/
			margin-left: -100%;
			/*使左侧区块移动到padding区*/
			position: relative;
			left: -200px;
		}
		/*右侧样式*/
		.right{
			width: 200px;
			min-height: 650px;
			background-color: lightgreen;
			/*左浮动*/
			float: left;
			/*右侧区块从下边移至中间区块右侧*/
			margin-left: -200px;
			/*使右侧区块移动到padding区*/
			position: relative;
			right: -200px;
		}
	</style>
</head>
<body>
	<!-- 网站头部 -->
	<div class="header">
		<div class="content">
			头部内容
		</div>	
			
	</div>
	<!-- DOM结构 -->
	<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>

运行实例 »

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

效果图:

00.png


个人体会:

1、两种布局在进行中间主体区块的宽度设置时要特别注意,这是这两种布局很重要的区别。

双飞翼:main=100%,圣杯:main+left+right=100%。

2、从DOM结构上,圣杯布局比双飞翼简洁明了。但双飞翼虽然中间区块多了一个父级区块,但属性设置上比圣杯简单易懂,个人比较喜欢双飞翼布局。

手写代码:(正在抄写,稍后上传)

01.jpg

02.jpg

03.jpg

04.jpg


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