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