Blogger Information
Blog 53
fans 4
comment 3
visits 41522
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
HTML经典布局0327
有点凉了
Original
584 people have browsed it

经典三列双飞翼

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>经典三列双飞翼布局</title>
	<style type="text/css">
		/*统一设置顶部底部样式*/
		.header, .footer{
			width: 100%;  
			height: 60px;
			background-color: #D3D3D3;
		}
		/*不加这个东西header 和 底部 会有阴影,清除浮动后正常*/
		.footer{
			clear: both;
		}
		/*设置顶部底部内部元素样式*/
		.content{ 
			width: 1000px;
			background-color: #808080;
			min-height: 100%;
			margin: auto;
			text-align: center;
			line-height:60px;
		}
		/*设置左中右三块元素父级容器*/
		.container{
			width: 1000px;
			margin: auto;
		}
		/*设置中间主体区域*/
		.wrap{
			width: 100%;
			float: left;
		}
		.main{
			min-height: 600px;
			margin: 0 200px;
			background-color: #F5DEB2;
			line-height: 600px;
			text-align: center;
		}
		/*设置左侧区域*/
		.left{
			width: 200px;
			min-height: 600px;
			background-color: #87CEF9;
			float: left;
			margin-left: -100%;
			line-height: 600px;
			text-align: center;
		}
		/*设置右侧区域*/
		.right{
			width: 200px;
			min-height: 600px;
			background-color: #91EE92;
			float: left;
			margin-left: -20%;
			line-height: 600px;
			text-align: center;
		}
	</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>

	<pre>
		经典三列双飞翼布局创建步骤以及原理
		1、创建一个大的容器container,设置页面总宽度并左右居中
		2、创建三列DOM结构,顺序很重要
			1、主体content在前,其次是left和right;
			2、主体content必须套一个父级块,然后将样式加给ta
			3、其中main快读100%,left right 宽度固定
			4、main left right 的高度暂时先设置固定值,有内容填充后在设置100%,自适应
		3、main left right 全部左浮动 因为前面的wrap宽度为100%,因此导致left right 全部被挤下面
		4、left设置 margin-left:-1000px; 或者 margin-left:-100px;
		 	(100%就是父级块的宽度1000px,负数表示方向相反,即向左缩进,最终到达父块起始点:0,0)
		5、right设置,参考left,只需要margin-left: -200px; 	
		6、content内容块,添加左右外边距,将内容区挤压出来: margin: 0 200px;
		并给一个宽度100%,直接引用父级块宽度
	</pre>
</body>
</html>

运行实例 »

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

经典三列圣杯

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>经典三列圣杯布局</title>
	<style type="text/css">
		/*统一设置顶部底部样式*/
		.header, .footer{
			width: 100%;  
			height: 60px;
			background-color: #D3D3D3;
		}
		/*不加这个东西header 和 底部 会有阴影,清除浮动后正常*/
		.footer{
			clear: both;
		}
		/*设置顶部底部内部元素样式*/
		.content{ 
			width: 1000px;
			background-color: #808080;
			min-height: 100%;
			margin: auto;
			text-align: center;
			line-height:60px;
		}
		/*这里边这个padding为什么表示的含义不是边框不动内容物距离边框内缩小*/
		.container{
			width: 600px;
			/*background-color: #F5D1B2;*/
			margin: auto;
			padding: 0 200px;
		}
		/*主体内部三块全部浮动 并设置定位 以及对设置对应偏离的位置*/
		.container .main{
			width: 100%;
			min-height: 650px;
			background-color: #F5DEB2;	
			margin: auto;
			float: left;
			text-align: center;
			line-height: 650px;
		}
		.container .left{
			width:200px;
			min-height: 650px;
			margin-left: -100%;
			background-color: #87CEF9;
			float: left;
			position: relative;
			left: -200px;
			text-align: center;
			line-height: 650px;
		}
		.container .right{
			width:200px;
			min-height: 650px;
			margin-left: -200px;
			background-color: #91EE92;
			float: left;
			position: relative;
			right: -200px;
			text-align: center;
			line-height: 650px;
		}
	</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>

	<br>
	<pre>
		圣杯布局基本思路以及实现
		1、DOM结构特点
			1、必须有一个父容器
			2、内部三列,主体main必须在最前面,确保可以优先渲染,其次是left和right
		2、区块的宽度和高度特点
			1、main+left+right = 总宽度
			2、父区块的宽度 =  主体宽度
			3、优先设置container宽度,如600px 然后main宽度可以设置为100%自适应
			4、如果暂时没有填充内容,可以设置一个最小高度min-height就能看到效果;
		3、三个区块必须全部浮动
			1、因为main区块占据了100%快读,后面left和right必须要被换行才能显示
			2、left、right都是浮动元素,所以按照先后浮动顺序显示,main - left - right
		4、将浮动区块left 和 right 移动到main区块指定位置
			1、通过给left设置对应的负的左侧外边距来实现区块的反向移动
			2、left必须跨越整个main区块才可以到达对应的起点,也就是margin-left:100%;
			3、right必须跨越自己的宽度也就是margin-left:-200px;
		5、给container添加内边距,进行挤压完成布局,这也是圣杯布局的精妙
			1、添加左右内边距padding 宽度等于left  和 right即可;
			2、谈价左右边距其实就是对应left和right的实际位置
		6、将main区块的内容完整的显示出来
			1、left和right占据了main区块,覆盖了main区块的部分内容
			2、可以对left和right进行相对定位,让他们讲占据的main控件位置腾出来
			3、那么left和right的浮动元素,都是脱离文档流的是否可以用相对定位
				答案是可以因为相对定位 是相对一其元素所在位置进行的定位,再怎么脱离文档流也是有一个位置的,所以必然可用
			4、当前相对位移看控件自身需求偏移量设置
	</pre>
</body>
</html>

运行实例 »

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

1111.png

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post