圣杯布局和双飞翼布局的区别
圣杯布局和双飞翼布局实现的效果其实都是三栏布局,就是左右是固定的,中间的宽度是自适应的,两个的主要的区别是,防止左右两栏遮挡中间内容的方式不同。
圣杯布局是给整个container加上padding-left和padding-right,然后再让left和right来分别填充padding-left和padding-right,这样来实现避免遮挡。
双飞翼布局是在center这个div里面再加一个content的div,给这个content加上margin-left和margin-left,这样再让left和right来填充margin-left和margin-right。
圣杯布局的代码
<!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>
.container{
height: 300px;
padding-left: 200px;
padding-right: 300px;
background-color: aqua;
}
.container #column{
height: 300px;
position: relative;
float: left;
}
.left{
background-color: brown;
width: 200px;
right:200px;
margin-left: -100%;
}
.right{
background-color: chartreuse;
width: 300px;
margin-left: -300px;
right:-300px;
}
.middle{
width: 100%;
}
</style>
</head>
<body>
<div class="container">
<div class="middle" id="column">#middle</div>
<div class="left" id="column">#left</div>
<div class="right" id="column">#right</div>
</div>
</body>
</html>
双飞翼布局
<!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>
#container{
height: 300px;
background-color: chartreuse;
}
#container .column{
height: 300px;
float: left;
position: relative;
}
#center{
width: 100%;
background-color: chocolate;
}
#center #content{
padding-left: 200px;
padding-right: 300px;
}
#left{
background-color: rgb(0, 139, 127);
width: 200px;
margin-left: -100%;
}
#right{
background-color: darkred;
width: 300px;
margin-left: -300px;
}
</style>
</head>
<body>
<div id="container">
<div id="center" class="column">
<div id="content">
content
</div>
</div>
<div id="left" class="column">left</div>
<div id="right" class="column">right</div>
</div>
</body>
</html>