HTML+CSS 五種佈局方式
阿新 • • 發佈:2018-12-05
已知佈局元素的高度,寫出三欄佈局,要求左欄、右欄寬度各為300px,中間自適應。
一、浮動佈局
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>浮動佈局</title>
<style type="text/css">
.wrap1 div{
min-height: 200px;
}
.wrap1 .left{
float : left;
width: 300px;
background: red;
}
.wrap1 .right{
float: right;
width: 300px;
background: blue;
}
.wrap1 .center{
background: pink;
}
</style>
</head>
<body>
< div class="wrap1">
<div class="left"></div>
<div class="right"></div>
<div class="center">
浮動佈局
</div>
</div>
</body>
</html>
浮動佈局的相容性比較好,但是浮動帶來的影響比較多,頁面寬度不夠的時候會影響佈局。
二、絕對定位佈局
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>絕對定位佈局</title>
<style type="text/css">
.wrap2 div{
position: absolute;
min-height: 200px;
}
.wrap2 .left{
left: 0;
width: 300px;
background: red;
}
.wrap2 .right{
right: 0;
width: 300px;
background: blue;
}
.wrap2 .center{
left: 300px;
right: 300px;
background: pink;
}
</style>
</head>
<body>
<div class="wrap2 wrap">
<div class="left"></div>
<div class="center">
絕對定位佈局
</div>
<div class="right"></div>
</div>
</body>
</html>
絕對定位佈局快捷,但是有效性比較差,因為脫離了文件流。
三、flex佈局
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>flex佈局</title>
<style type="text/css">
.wrap3{
display: flex;
min-height: 200px;
}
.wrap3 .left{
flex-basis: 300px;
background: red;
}
.wrap3 .right{
flex-basis: 300px;
background: blue;
}
.wrap3 .center{
flex: 1;
background: pink;
}
</style>
</head>
<body>
<div class="wrap3 wrap">
<div class="left"></div>
<div class="center">
flex佈局
</div>
<div class="right"></div>
</div>
</body>
</html>
自適應好,高度能夠自動撐開
四、table-cell表格佈局
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>table-cell表格佈局</title>
<style type="text/css">
.wrap4{
display: table;
width: 100%;
height: 200px;
}
.wrap4>div{
display: table-cell;
}
.wrap4 .left{
width: 300px;
background: red;
}
.wrap4 .right{
width: 300px;
background: blue;
}
.wrap4 .center{
background: pink;
}
</style>
</head>
<body>
<div class="wrap4 wrap">
<div class="left"></div>
<div class="center">
表格佈局
</div>
<div class="right"></div>
</div>
</body>
</html>
相容性好,但是有時候不能固定高度,因為會被內容撐高。
五、網格佈局
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>網格佈局</title>
<style type="text/css">
.wrap5{
display: grid;
width: 100%;
grid-template-rows: 200px;
grid-template-columns: 300px auto 300px;
}
.wrap5 .left{
background: red;
}
.wrap5 .right{
background: blue;
}
.wrap5 .center{
background: pink;
}
</style>
</head>
<body>
<div class="wrap5 wrap">
<div class="left"></div>
<div class="center">
網格佈局
</div>
<div class="right"></div>
</div>
</body>
</html>
比較新的一種佈局方式,相容性沒那麼好。