CSS布局(圣杯、双飞翼、flex)

时间:2023-03-09 16:13:44
CSS布局(圣杯、双飞翼、flex)

圣杯布局(float + 负margin + padding + position)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>圣杯</title>
<style>
*{
margin: 0;
padding: 0;
}
.main{
float: left;
width: 100%;
height: 500px;
background:red;
}
.sub{
position: relative;
float: left;
left: -200px;
width: 200px;
height: 500px;
margin-left: -100%;
background:blue;
}
.extra{
position: relative;
float: left;
right: -180px;
width: 180px;
height: 500px;
margin-left: -180px;
background:green;
}
.content{
padding: 0 180px 0 200px;
}
</style>
</head>
<body>
<!-- 圣杯布局(float + 负margin + padding + position) -->
<div class="content">
<div class="main"></div>
<div class="sub"></div>
<div class="extra"></div>
</div>
</body>
</html>

双飞翼布局(float + 负margin + margin)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<style>
*{
margin: 0;
padding: 0;
}
.content{
float: left;
width: 100%;
height: 500px;
background:red;
}
.sub{
float: left;
width: 200px;
height: 500px;
margin-left: -100%;
background:blue;
}
.extra{
float: left;
width: 180px;
height: 500px;
margin-left: -180px;
background:green;
}
.main{
margin: 0 180px 0 200px;
}
</style>
</head>
<body>
<!-- 双飞翼布局(float + 负margin + margin) -->
<div class="content">
<div class="main"></div>
</div>
<div class="sub"></div>
<div class="extra"></div>
</body>
</html>

flex布局

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<style>
*{
margin: 0;
padding: 0;
}
.content{
display: flex;
}
.sub{
width: 200px;
height: 500px;
background:blue;
}
.main{
flex:1;
height: 500px;
background:red;
}
.extra{
width: 180px;
height: 500px;
background:green;
}
</style>
</head>
<body>
<!-- flex布局 -->
<div class="content">
<div class="sub"></div>
<div class="main"></div>
<div class="extra"></div>
</div>
</body>
</html>

一样效果,不一样的布局。如下:

CSS布局(圣杯、双飞翼、flex)