博客列表 >0327-页面布局作业

0327-页面布局作业

瘦不下来的博客
瘦不下来的博客原创
2018年03月28日 18:48:02703浏览

三列双飞翼布局与圣杯布局:

代码:

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>4.三列双飞翼布局</title>
	<style type="text/css">
	/*先给最简单的头部和底部设置基本的样式*/
	.head, .foot {
		/*宽度为窗口的宽度,自适应变化*/
		width: 100%;  

		/*为了简化,头部与尾部高度统一设置为60px*/
		height: 60px;

		/*参考背景色:浅灰*/
		background-color: lightgray;
	}

	.foot {
		/*底部二边不能有浮动元素*/
		clear: both;
	}
	
	/*设置头部和底部的中间内容区的基本样式*/
	.content {
		/*先设置总的宽度,这步很重要*/
		width: 1000px;
		
		/*高度直接引用父区块值*/
		min-height: 100%;

		/*设置参考色:灰色*/
		background-color: gray;
		
		/*使自己水平居中*/
		margin: auto;

		/*使其内部的文本水平垂直居中*/
		text-align: center;
		line-height: 60px;
	}

	/*设置主体的基本样式*/
	.container {
		/*设置主体的总宽度:非常关键*/
		width: 1000px;
		
		/*设置主体内部所有区块水平居中*/
		margin:auto;

		/*使当前区块能够包住内部的浮动区块*/
		overflow: hidden;

		/*设置背景参考色*/
		background-color: yellow;
	}

	/*设置主体区域中的中间区块的基本样式*/
	.father {
		/*宽度与父区块相同,独占整行,这很重要,可确保后面的浮动元素换行显示*/
		width: 100%;		

		/*参考背景色: 青色*/
		background-color: cyan;

		/*左浮动,脱离文档流*/
		float: left;
	}

	/*设置中间区块的样式*/
	.main {
		/*注意:它的宽度是在父区块father中设置了,这里不需要重复设置*/
        height: 100%;
		/*给中间内容区设置一个最小高度,这个最终会被真实内容替换*/
		min-height:600px;
		
		/*设置左右外边距为left和right的宽度,使他们显示到正确位置*/
		margin: 0 200px;

		
		/*参考背景色:小麦色*/
		background-color: wheat;
	
	}
	.left {
		/*宽度是必须设置的*/
		width: 200px;

		/*同理,也设置一个最小高度*/
		min-height:600px;

		/*设置左浮动:与前面元素一起排列*/
		float:left;

		/*将左区块拉回到中间区块的起始位置处*/
		margin-left:-100%;

		/*设置背景参考色:天蓝色*/
		background-color: lightskyblue;
	}

	/*设置右边区块的基本样式*/
	.right {
		/*同样也要先设置一个宽度*/
		width: 200px;

		/*高度与先给一个最小高度做为参考,最终会被实际内容替换*/
		min-height:600px;

		/*同样也要设置左浮动,依次排到left区块的后面*/
		float:left;

		/*将右区块拉回到上一行的最右侧*/
		margin-left:-200px;

		/*背景参考色:浅绿*/
		background-color: lightgreen;
	}

	</style>
</head>
<body>


<!-- DOM结构 -->

	<!-- 头部 -->
	<div class="head">
		<div class="content">头部</div>
	</div>

	<!-- 主体 -->
	<div class="container">

		<div class="father">
			<div class="main">主体</div>
		</div>
		<div class="left">左侧</div>
		
		<div class="right">右侧</div>
	</div>

	<!-- 底部 -->
	<div class="foot">
		<div class="content">底部</div>
	</div>

	
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看351J55B0_ZGI%F01Y_JNAT7.png


圣杯代码:

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>三列圣杯布局</title>
	<style type="text/css">
	.head, .foot {
		width: 100%;
		height: 60px;
		background-color: lightgray;
	}

	.foot {
		clear: both;
	}

	.content {
		width: 1000px;
		height: 100%;
		background-color: gray;
		margin: auto;
		text-align: center;
		line-height: 60px;
	}

	.father {
		width: 600px;
		background-color: yellow;
		
		/*父容器自身以及内部所有区块main,left,right水平居中*/
		margin:auto;
		
		/*使它能包住浮动区块*/
		overflow: hidden;  

		/*因为左右区块现在覆盖在main之上,挡住了main的内容,现在添加padding来实现自身内容显示*/
		padding:0 200px;

		
	}

	.father .main {
		/*因为暂无内容,先给main,left,right设置一个最小行高*/
		min-height: 650px;

		/*宽必必须为100%,即与父元素container一致,这样才能使left,right挤下来*/
		width: 100%;
		float:left;

		/*设置参考背景色:小麦色*/
		background-color: wheat; 
	}

	.father .left {
		/*除main外,left和right必须设置宽度*/
		width: 200px;
		/*最小高度*/
		min-height: 650px;
		
		/*左浮动后,因为前面main占据100%宽度,所以自动挤到下一行首*/
		float:left;

		/*设置左外边距margin为-100%,使它回到main区块的起始点处*/
		margin-left: -100%;

		/*关键步骤:相对定位,向左为负200,相当于向右移动200px;*/
		position: relative;
		left: -200px;
		
		/*设置参考背景色:天蓝色*/
		background-color: lightskyblue; 

	}

	.father .right {
		width: 200px;
		min-height: 650px;

		/*左浮动后,因为前面main占据100%宽度,所以自动挤到下一行,
		并且还遇到前面已经浮动过来的left左侧的区块,所以排到left右边*/
		float:left;

		/*设置左外边距为当前宽度的负值,使之定位到main区块的右边*/
		margin-left:-200px;
		
		/*关键步骤:设置为相对定位,right:-200px意思是向左边移动200px;*/
		position: relative;
		right:-200px;

		/*设置参考背景色:清绿色*/
		background-color: lightgreen;
	}
	</style>
</head>
<body>
<!-- DOM结构 -->
<!-- 头部 -->
<div class="head">
	<div class="content">头部</div>
</div>

<!-- 内容区 -->
<div class="father">
	<div class="main">主体</div>
	<div class="left">左侧</div>
	<div class="right">右侧</div>
</div>

<!-- 底部 -->
<div class="foot">
	<div class="content">底部</div>
</div>

</body>
</html>

运行实例 »

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

预览图一样

手抄双飞翼:

B@_@@CIVUD6VP46QZJZI09N.png

RJ4F[[1B6MSEFJ%Z]2$ZQ{F.png


个人体会心得:

双飞翼是先创建一个大盒子,然后中间分为左中右,给中间的盒子一个子盒子,最终在左右两翼回到大盒子的位子时,中间盒子的父级不变,子盒子给一个margin,使子盒子两边往里缩。

圣杯方式是大盒子里分别有左中右三个盒子,将中间盒子设置为100%宽度,待左右盒子回到大盒子的区块里后,子盒子不变,父盒子给自己一个padding值,将自己撑开,然后将左右盒子用绝对定位的方式放到撑开部分。










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