博客列表 >css布局中双飞翼布局和圣杯布局二中经典案例的/思路和实例-2018年3月28日

css布局中双飞翼布局和圣杯布局二中经典案例的/思路和实例-2018年3月28日

在路上的博客
在路上的博客原创
2018年03月28日 20:01:29732浏览

css布局中双飞翼和圣杯经典布局实例,效果是一样的:左右两栏固定宽度,中间部分自适应。实现方法不一样。

双飞翼布局


思路

1.先创建三个大的div块将整个html页面分割上.主体.下三大部分

2.在上下二个div块分别建立一个子块装内容,统一设置宽高,通过外边距margin:auto居中显示并且将行内元素水平垂直居中显示

3将主体部分分割成三块,左右二边固定,中间自适应!注意要先将中间部分写在左右的前面,并且宽度设置为100%,因为只有这样中间才会自适应,然后套一个父块,后面用外边距的时候回用到,如果你没有套父块,到时候会将整个盒子撑大!

4.将主体三个div块全部浮动起来,底部清除浮动,将三个div块包裹起来,overflow: hidden;

5.利用外边距把左右二边复位,margin可以为负值 复位之后左右二边会遮挡中间二边的位值

6.主体中间部分通过外边距将遮挡的位置挤压出来形成自适应内容区

实例

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>双飞翼布局</title>
	<style type="text/css">
	.heared , .footer{
		/*统一设置页面头部尾部的宽,高,背景色*/
		width: 100%;  /*宽度自适应*/
		height: 80px;
		background-color: #efefef;  /*背景色*/
	}
	.centent { 
		/*设置头部尾部宽高,背景色,*/
		width: 1200px;
		min-height: 100%;
		text-align: center;    /*内联元素水平居中*/
		line-height: 80px;     /*内联元素垂直居中,设置行高与父元素等高*/
		background-color: #456;
		margin: auto;/*div块外边距自动居中*/

	}
	.footer{
		clear: both;  /*清楚浮动*/
	}
	.body{
		width: 1200px;
		background-color:#888;
		margin: auto;
		overflow: hidden;
	}
	.ke {
		width: 100%;
		float: left;
		
	}
	.ke .main{
		min-height: 650px;
		background-color: #333;
/*		margin-left: 200px;
		margin-right: 200px;*/
		margin: 0 200px; /*简写上面二行 上下  ,左右*/
	}
	.left{
		float: left;
		width: 200px;
		min-height: 650px;
		background-color: #577;
		margin-left: -100%;

	}
	.right{
		float: left;
		width: 200px;
		min-height: 650px;
		background-color: #666;
		margin-left: -200px;

	}
	</style>
</head>
<body>
	<!-- 双飞翼布局思路
	1.先创建三个大的div块将页面分割上.主体.下三大部分
	2.在上下二个div块分别建立一个子块装内容,统一设置宽高,通过外边距margin aoto居中显示并且将行内元素水平垂直居中显示
	3将主体部分分割成三块,左右二边固定,中间自适应!注意要先将中间部分写在左右的前面,并且宽度设置为100%,因为只有这样中间才会自适应,然后套一个父块,后面用外边距的时候回用到,如果你没有套父块,到时候会将整个盒子撑大!
	4.将主体三个div块全部浮动起来,底部清除浮动,将三个div块包裹起来,overflow: hidden;
	5.利用外边距把左右二边复位,margin可以为负值 复位之后左右二边会遮挡中间二边的位值
	6.主体中间部分通过外边距将遮挡的位置挤压出来形成自适应内容区   -->
	<div class="heared">
		<div class="centent">我是头部 我是</div>
	</div>
	<div class="body">
		<div class="ke">
		<div class="main">我是中间1我是中间2我是中间3我是中间4我是中间5我是中间6我是中间7我是中间8我是中间9我是中间1我是中间2我是中间3我是中间4我是中间5我是中间6我是中间7我是中间8我是中间9</div>
		</div>
		<div class="left">我是左边</div>

		
		
		<div class="right">我是右边</div>
	</div>
	<div class="footer">
		<div class="centent">我是底部</div>
	</div>

	
</body>
</html>

运行实例 »

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

t1.png

中间部分放在左右二边之前,宽度100%,并用父块包裹,浮动-然后左右二边通过外边距复位-复位后左右二边遮住了中间的左右二边的位置,主体中间部分通过外边距将遮挡的位置挤压出来形成自适应内容区


圣杯布局


思路

1.先创建三个大的div块将页面分割上.主体.下三大部分

2.在上下二个div块分别建立一个子块装内容,统一设置宽高,通过外边距margin aoto居中显示并且将行内元素水平垂直居中显示

3将主体部分分割成三块,左右二边固定,中间自适应!然后三个一起浮动,然后通过外边距将其复位,复位之后左右二边会遮挡中间二边的位值

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>圣杯布局</title>
	<style type="text/css">
	.heared , .footer{
		width: 100%;
		height: 80px;
		background-color: #efefef;
	}
	.centent {
		width: 1200px;
		min-height: 100%;
		text-align: center;  /*内联元素水平居中*/
		line-height: 80px;   /*内联元素垂直居中,设置行高与父元素等高*/
		background-color: #456;
		margin: auto; /*div块自动居中*/


	}
	.footer{
		clear: both;   /*清除浮动*/
	}
	.body {
		width: 800px;
		margin: auto;
		background-color: pink;
		overflow: hidden;  /*包裹子块*/
		padding: 0 200px;  /*左右二边增加内边距*/

		}
	.body .left{
		width: 200px;
		height: 650px;
		float: left;  /*浮动块*/
		background-color: #211222;
		margin-left: -100%;  /*归为*/
		position: relative;  /*相对定位*/
		left: -200px
	}
	.body .main{
		width: 100%;
		height: 650px;
		float: left;
		background-color: #622333;
	}
	.body .right{
		width: 200px;
		height: 650px;
		float: left;
		background-color: #933444;
		margin-left: -200px;
		position: relative;
		right: -200px;
	}
	</style>
</head>
<body>
	<!-- 圣杯布局思路
	1.先创建三个大的div块将页面分割上.主体.下三大部分
	2.在上下二个div块分别建立一个子块装内容,统一设置宽高,通过外边距margin aoto居中显示并且将行内元素水平垂直居中显示
	3将主体部分分割成三块,左右二边固定,中间自适应!然后三个一起浮动,然后通过外边距将其复位,复位之后左右二边会遮挡中间二边的位值 -->
	<div class="heared">
		<div class="centent">我是头部 我是</div>
	</div>
	<div class="body">
		
		<div class="main">我是中间1我是中间2我是中间3我是中间4我是中间5我是中间6我是中间7我是中间8我是中间9我是中间1我是中间2我是中间3我是中间4我是中间5我是中间6我是中间7我是中间8我是中间9</div>	
		<div class="left">我是左边</div>	
		
		<div class="right">我是右边</div>
	</div>
	<div class="footer">
		<div class="centent">我是底部</div>
	</div>

	
</body>
</html>

运行实例 »

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

2.png

3.png4.png5.png

总结:

圣杯布局跟双飞翼布局都是左右两栏固定宽度,中间部分自适应。但在这里二者有很多相同之处和不同之处

相同点:都是通过浮动去实现,并且中间部分的宽度都是100%

不同点:DOM结果不一样,圣杯不需要再中间部分嵌套一个div父块。而且二者浮动之后,中间部分处理的方式不一样,双飞翼是通过外边距margin ,圣杯则是通过padding,然后在相对定位

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