博客列表 >网站布局常用方法总结--2018年3月28号

网站布局常用方法总结--2018年3月28号

tonykorn97的博客
tonykorn97的博客原创
2018年03月28日 14:39:40778浏览

下面的代码是实现双飞翼布局的代码:

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>2.经典的三列双飞翼布局</title>
	<style type="text/css">
		/*选择器中间加空格和逗号的区别
		空格是后代选择器的标识符,
		逗号多元素选择器,同时选择多个元素,元素之间用逗号分隔	
		*/
		.header, .footer{
			/*宽度自适应,继承父级body*/
			width: 100%;
			/*为了简化,头和底统一为60px*/
			height: 60px;
			background-color: lightgray;
		}

		.content{
			/*设置总宽度*/
			width: 1000px;

			/*设置高度*/
			min-height: 100%;
			background-color: gray;

			/*实现contenter水平居中效果,可以通过背景颜色来判断*/
			margin: auto;

			/*text-align:设置文本水平居中*/
			text-align: center;
			line-height: 60px;
		}

		.footer {
			/*其实设置完毕后可以取消此项属性
			因为双飞翼设置完毕后footer傍边不会存在float元素*/
			/*clear:both;*/
			/*clear 属性规定元素的哪一侧不允许其他浮动元素。
			left	在左侧不允许浮动元素。
			right	在右侧不允许浮动元素。
			both	在左右两侧均不允许浮动元素。
			none	默认值。允许浮动元素出现在两侧。
			inherit	规定应该从父元素继承 clear 属性的值。*/

		}
		/*主体样式设置*/
		.container{
			/*宽度设置*/
			width: 1000px;

			/*内部的区块水平居中*/
			margin: auto;
			background-color: yellow;
			overflow: hidden;
/*			overflow 属性规定当内容溢出元素框时发生的事情。
			visible	默认值。内容不会被修剪,会呈现在元素框之外。
			hidden	内容会被修剪,并且其余内容是不可见的。
			scroll	内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
			auto	如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
			inherit	规定应该从父元素继承 overflow 属性的值。*/
		}

		.wrap{
			/*宽度设为父级的100%,即1000px*/
			width:100%;

			float:left;
			background-color: cyan;
		}

		.wrap .main {
			min-height: 600px;
			background-color: wheat;

			/*margin-left: 200px;
			margin-right: 200px;*/
			/*简化代码:*/
			margin:0 200px;

		}

		.left{
			width: 200px;
			min-height: 600px;
			float:left;	
			background-color: #1219B3;
			
			/*让margin距离左边为-1000px,即父级的-100%*/
			margin-left: -100%;
			
		}

		.right{
			width: 200px;
			min-height: 600px;
			float:left;
			background-color: lightgreen;

			/*让margin距离右边为-200px;*/
			margin-left: -200px;
		}
	</style>

</head>
<body>
	<!-- DOM结构 -->
	<!-- 头部 -->
	<div class="header">
		<div class="content">网站头部</div>
	</div>


	<!-- 主体 -->
	<div class="container">
		 <!-- 顺序不能错,必须是先中间,在左侧,后右侧 -->
		 <div class="wrap">
		 	 <!-- 为了不超出,外面加一个div盒子 -->
		 	 <div class="main">中间</div>
		 </div>
		 <div class="left">左侧</div>
		 <div class="right">右侧</div>	
	</div>


	<!-- 底部 -->
	<div class="footer">
		<div class="content">网站底部</div>
	</div>
	
</body>
</html>

运行实例 »

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


双飞翼代码实现的具体思路为:

1,container是一个大的容器,里面并排3个wrap,left,right 容器。

2,设置wrap容器为父容器(container)宽度的100%,此时会把left,right容器挤下去。

3, 3个容器全部设置为左浮动,此时3个容器会重叠,从上看分别是right,left,wrap.但是位置排序为wrap,left,right.

4,此时设置margin-left 为负的wrap。因为wrap宽度和container宽度一样。也即为负的container的100%。此时位置排序变为left,wrap,right.

5, right容器设置为-200px,相当于相对自身左移动,会放在wrap的上方。

6,设置main容器的margin距离,使左右存在left和right的空间。不让left和right遮挡到wrap的内容



下面这段代码是圣杯布局的代码:

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>3.经典的圣杯三列布局</title>
	<style type="text/css">
		/*选择器中间加空格和逗号的区别
		空格是后代选择器的标识符,
		逗号多元素选择器,同时选择多个元素,元素之间用逗号分隔	
		*/
		.header, .footer{
			/*宽度自适应,继承父级body*/
			width: 100%;
			/*为了简化,头和底统一为60px*/
			height: 60px;
			background-color: lightgray;
		}

		.content{
			/*设置总宽度*/
			width: 1000px;
			/*设置高度*/
			min-height: 100%;
			background-color: gray;

			/*实现contenter水平居中效果,可以通过背景颜色来判断*/
			margin: auto;

			/*text-align:设置文本水平居中*/
			text-align: center;
			line-height: 60px;
		}
		
		.footer{
			clear: both;
		}
		.container{
			width: 600px;
			height: 650px;
			background-color: yellow;

			/*水平居中*/
			margin: auto;

			/*设置padding左右距离为200px*/
			padding:0 200px;
		}

		 .main{
			/*父级:600px*/
			width: 100%;
			min-height: 650px;
			background-color: wheat;

			float: left;
			
		}

		.left{
			width:200px;
			min-height: 650px;
			background-color: skyblue;

			/*margin-left: 设置为-100%,相当于left区域贴左侧覆盖到main区域上*/
			float:left;
			margin-left:-100%;
			
			/*通过相对定位设置向左移动的距离*/
			position: relative;
			left:-200px;
		}

		.right{
			width:200px;
			min-height: 650px;
			background-color: lightgreen;

			/*margin-left: 设置为-200px,相当于left区域贴右侧覆盖到main区域上*/
			float:left;
			margin-left:-200px;
			
			/*通过相对定位设置向右移动的距离*/
			position: relative;
			right: -200px
		}

		
	</style>

</head>
<body>
	<!-- DOM结构 -->
	<!-- 头部 -->
	<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>

运行实例 »

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


圣杯布局实现的思路为:

1,container是一个大的容器,里面并排3个main,left,right 容器。

2,设置容器(container)宽度的实际需要的宽度,并且把main元素的宽度设置为父容器宽度的100%,此时会把left,right容器挤下去。

3,main,left,right 全部设置为左浮动,此时位置顺序为main,left,right.

4,left,right容器margin-left设置为相应的负值,让分别贴左右两侧覆盖到main容器上

5,通过相对定位设置向右移动的距离

6,设置container的左右padding为left和right的值,挤压内容区,内边距扩大,相当于left和right的内容是覆盖在container区域的内边距上的。这样可以防止left和right的内容覆盖到main区域上


两种布局方式的优缺点:

1,圣杯的DOM结构更清晰简单些, 但css代码多点,双飞翼正好相反,DOM结构复杂一点点,但css代码少。

2,圣杯用padding来处理left,right,  双飞翼用margin来处理,其它地方完全一样


个人简介圣杯麻烦一些,需要float,还需要相对定位。更喜欢用双飞翼布局模式操作



手抄代码双飞翼布局:

微信图片_20180328143836.jpg

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