圣杯布局方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
#parent {
height: 300px;
/*第二步加一个左右填充留一些空间可以放左右的模块,将center往中间挤压*/
padding-left: 310px;
padding-right: 310px;
}
#left,
#center,
#right {
height: 300px;
/* 第一步:三个容器横向排列使用float -->已经在一行显示了,因为中间100%没有空余空间所以掉下去了*/
float: left;
}
#left,
#right {
width: 300px;
}
#left {
background-color: red;
/*第三步将left移到他原本的位置,因为原本应该left在center前边但是现在前面有一个100%的center,现在只用把left向负方向移动一个center的大小即可*/
margin-left: -100%;
/*3.1步将left进行移动到理想的位置=>定位 relative的作用是让方位left起作用*/
position: relative;
left: -310px;
}
#center {
width: 100%;
background-color: green;
}
#right {
background-color: rgb(0, 0, 0);
/*第四步将right移动到center的后面,移动的是right模块本身的宽度,所以此处应该移动-300px*/
margin-left: -300px;
/*4.1步移动到理想位置=> relative的作用是让方位left起作用*/
position: relative;
right: -310px;
}
</style>
</head>
<body>
<!-- 圣杯布局中特别之处在于他是中左右这样排块的顺序的 -->
<div id="parent">
<div id="center"></div>
<div id="left"></div>
<div id="right"></div>
</div>
<!-- 正常三列布局 左中右 -->
<!-- <div id="parent">
<div id="left"></div>
<div id="center"></div>
<div id="right"></div>
</div> -->
</body>
</html>