CSS實(shí)現(xiàn)兩欄布局,左邊固定,右邊自適應(yīng)的4種方法
1. float+overflow:hidden
這種辦法主要通過(guò) overflow 觸發(fā) BFC,而 BFC 不會(huì)重疊浮動(dòng)元素。由于設(shè)置 overflow:hidden 并不會(huì)觸發(fā) IE6-瀏覽器的 haslayout 屬性,所以需要設(shè)置 zoom:1 來(lái)兼容 IE6-瀏覽器。具體代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.parent {
margin: 0 auto; // 使父容器水平居中顯示
overflow: hidden;
zoom: 1;
max-width: 1000px;
}
.left {
float: left;
margin-right: 20px;
width: 200px;
background-color: green;
}
.right {
overflow: hidden;
zoom: 1;
background-color: yellow;
}
</style>
</head>
<body>
<div class="parent">
<div class="left">
<p>left left left left</p>
</div>
<div class="right">
<p>right</p>
<p>right</p>
</div>
</div>
</body>
</html>
2. float: left+ margin-left
float使左邊的元素脫離文檔流,右邊的元素可以和左邊的元素顯示在同一行,設(shè)置margin-left讓右邊的元素不覆蓋掉左邊的元素, 代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.parent {
margin: 0 auto;
max-width: 1000px;
}
.parent::after {
content: '';
display: table;
clear: both;
}
.left {
float: left;
width: 200px;
background-color: green;
}
.right {
margin-left: 200px;
background-color: yellow;
}
</style>
</head>
<body>
<div class="parent">
<div class="left">
<p>left left left left</p>
</div>
<div class="right">
<p>right</p>
<p>right</p>
<p>right</p>
</div>
</div>
</body>
</html>
3. position: absolute + margin-left
左邊絕對(duì)定位,右邊設(shè)置margin-left,代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.parent {
position: relative;
margin: 0 auto;
max-width: 1000px;
}
.left {
position: absolute;
width: 200px;
background-color: green;
}
.right {
margin-left: 200px;
background-color: yellow;
}
</style>
</head>
<body>
<div class="parent">
<div class="left">
<p>left left left left</p>
</div>
<div class="right">
<p>right</p>
<p>right</p>
<p>right</p>
</div>
</div>
</body>
</html>
4. flex布局
flex布局可以使兩個(gè)子元素顯示在同一行,只要左邊的寬度固定,就可以實(shí)現(xiàn)效果, 代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.parent {
display: flex;
margin: 0 auto;
max-width: 1000px;
}
.left {
width: 200px;
background-color: green;
}
.right {
margin-left: 20px;
flex: 1;
background-color: yellow;
}
</style>
</head>
<body>
<div class="parent">
<div class="left">
<p>left left left left</p>
</div>
<div class="right">
<p>right</p>
<p>right</p>
<p>right</p>
</div>
</div>
</body>
</html>
到此這篇關(guān)于CSS實(shí)現(xiàn)兩欄布局,左邊固定,右邊自適應(yīng)的4種方法的文章就介紹到這了,更多相關(guān)CSS實(shí)現(xiàn)兩欄布局內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
兩個(gè)div左邊的固定寬度右邊的自動(dòng)填充的css
想實(shí)現(xiàn)這樣的一個(gè)效果兩個(gè)div左邊的寬度固定、右邊的自動(dòng)填滿,實(shí)現(xiàn)方法很簡(jiǎn)單,下面為大家簡(jiǎn)單介紹下,感興趣的朋友可以參考下2013-08-18

