CSS實(shí)現(xiàn)頁(yè)面兩列布局與三列布局的方法示例
yangbo5207 發(fā)布時(shí)間:2016-06-23 11:52:59 作者:Ormie
我要評(píng)論

這篇文章主要介紹了CSS實(shí)現(xiàn)頁(yè)面兩列布局與三列布局的方法示例,包括寬度與高度的自適應(yīng)的示例,需要的朋友可以參考下
1. 使用BFC的原理實(shí)現(xiàn)
BFC的規(guī)則之一,就是BFC區(qū)域,不會(huì)與float box重疊,因此我們可以利用這一點(diǎn)來(lái)實(shí)現(xiàn)3列布局。
html代碼如下
css代碼如下
2.雙飛翼布局
這種布局方案最早由淘寶提出,主要為了主列能夠被最先加載。
實(shí)現(xiàn)原理:
(1)讓主列外面添加一個(gè)wrap,主列wrap,以及2子列都左浮動(dòng)。
(2)設(shè)置主列wrap寬度為100%,將子列的margin-left設(shè)置為負(fù)值,讓子列能夠排列在左右兩側(cè)。
(3)這是主列的margin-left與margin-right比左右兩列的寬度大一點(diǎn),則可以設(shè)置出來(lái)主列與子列之間的間隙。
html代碼如下
css代碼如下
3.圣杯布局
圣杯布局在結(jié)構(gòu)上要簡(jiǎn)單一點(diǎn),也能夠讓主列優(yōu)先加載。
實(shí)現(xiàn)原理:
(1)添加一個(gè)包裹框,設(shè)置padding-leftpadding-right值,比子列寬度大一個(gè)空隙的寬度。
(2)主列,子列都設(shè)置為float: left 左子列margin-left設(shè)置為-100%,并且設(shè)置為position:relative; left: -110px將左子列放置到左側(cè)。右子列同理。
(3)主列只需設(shè)置寬度為100%即可。包裹框的寬度不要設(shè)置為100%,自適應(yīng)即可。
html代碼如下
css代碼如下
下面再給出一個(gè)高度占滿(mǎn)全屏的例子:
BFC的規(guī)則之一,就是BFC區(qū)域,不會(huì)與float box重疊,因此我們可以利用這一點(diǎn)來(lái)實(shí)現(xiàn)3列布局。
html代碼如下
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- <div class="left"></div>
- <div class="right"></div>
- <div class="main"></div>
CSS Code復(fù)制內(nèi)容到剪貼板
- .left {
- float: left;
- margin-right: 10px;
- width: 100px;
- height: 100px;
- background-color: orange;
- }
- .rightright {
- float: rightright;
- margin-left: 10px;
- width: 100px;
- height: 100px;
- background-color: orange;
- }
- .main {
- height: 100px;
- background-color: green;
- overflow: hidden;
- }
這種布局方案最早由淘寶提出,主要為了主列能夠被最先加載。
實(shí)現(xiàn)原理:
(1)讓主列外面添加一個(gè)wrap,主列wrap,以及2子列都左浮動(dòng)。
(2)設(shè)置主列wrap寬度為100%,將子列的margin-left設(shè)置為負(fù)值,讓子列能夠排列在左右兩側(cè)。
(3)這是主列的margin-left與margin-right比左右兩列的寬度大一點(diǎn),則可以設(shè)置出來(lái)主列與子列之間的間隙。
html代碼如下
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- <div class="wrap">
- <div class="main-content">
- <div class="main"></div>
- </div>
- <div class="left"></div>
- <div class="right"></div>
- </div>
CSS Code復(fù)制內(nèi)容到剪貼板
- .wrap {
- width: 100%;
- }
- .wrap::after {
- display: block;
- content: '';
- font-size: 0;
- height: 0;
- clear: both;
- zoom: 1;
- }
- .main-content {
- float: left;
- width: 100%;
- }
- .main {
- height: 100px;
- background-color: green;
- margin-left: 110px;
- margin-right: 110px;
- }
- .left {
- float: left;
- width: 100px;
- height: 100px;
- background-color: orange;
- margin-left: -100%;
- }
- .rightright {
- float: left;
- width: 100px;
- height: 100px;
- background-color: orange;
- margin-left: -100px;
- }
圣杯布局在結(jié)構(gòu)上要簡(jiǎn)單一點(diǎn),也能夠讓主列優(yōu)先加載。
實(shí)現(xiàn)原理:
(1)添加一個(gè)包裹框,設(shè)置padding-leftpadding-right值,比子列寬度大一個(gè)空隙的寬度。
(2)主列,子列都設(shè)置為float: left 左子列margin-left設(shè)置為-100%,并且設(shè)置為position:relative; left: -110px將左子列放置到左側(cè)。右子列同理。
(3)主列只需設(shè)置寬度為100%即可。包裹框的寬度不要設(shè)置為100%,自適應(yīng)即可。
html代碼如下
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- <div class="wrapper">
- <div class="main"></div>
- <div class="left"></div>
- <div class="right"></div>
- </div>
CSS Code復(fù)制內(nèi)容到剪貼板
- .wrapper {
- padding-left: 110px;
- padding-right: 110px;
- overflow: hidden;
- }
- .main {
- float: left;
- width: 100%;
- height: 100px;
- background-color: #ccc;
- }
- .left {
- float: left;
- width: 100px;
- height: 100px;
- margin-left: -100%;
- position: relative;
- left: -110px;
- _left: 0;
- background-color: orange;
- }
- .rightright {
- float: left;
- width: 100px;
- height: 100px;
- background-color: orange;
- margin-left: -100px;
- position: relative;
- rightright: -110px;
- }
CSS Code復(fù)制內(nèi)容到剪貼板
- <p><!DOCTYPE html>
- <html xmlns="<a target="_blank" href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>">
- <head runat="server">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title></title>
- <style type="text/css">
- body, html {
- margin: 0px;
- }
- #header {
- background: blue;
- height: 100px;
- width: 100%;
- position: relative; /*父div的位置設(shè)置成相對(duì)的*/
- top: 0;
- }
- #header #h_menu {
- position:absolute;
- bottombottom:0;
- background:yellow;
- width:100%;
- height:50px;
- }
- #middle {
- position:absolute;
- width:100%;
- height:auto;
- top: 100px;
- bottombottom:50px;
- }
- .left {
- width: 15%; /*這里是百分比或者像素值,對(duì)應(yīng)下面的center就是百分比或者像素值*/
- background: red;
- float: left;
- height:100%;
- }
- .rightright {
- width: 15%; /*這里是百分比或者像素值,對(duì)應(yīng)下面的center就是百分比或者像素值*/
- height: 100%;
- background: pink;
- float: rightright;
- }
- .center {
- height: 100%;
- background: green;
- /*兩種方式均可(一)margin(二)margin-left、margin-right*/
- /*(一)、用這種方式上面的left和right中的width是百分比或者像素值都可以*/
- margin: auto;
- /*(二)、這里是百分比或者像素值,對(duì)應(yīng)上面的left、right中的width就是百分比或者像素值*/
- /*margin-left:15%;
- margin-right:15%;*/
- }
- #footer {
- background: blue;
- height: 50px;
- width: 100%;
- position: absolute;
- bottombottom: 0;
- }
- </style>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <div id="header">
- 上
- <div id="h_menu">
- 上_底
- </div>
- </div>
- <div id="middle">
- <div class="left">
- 中左
- </div>
- <div class="right">
- 中右
- </div>
- <div class="center">
- 中間
- </div>
- </div>
- <div id="footer">
- 下
- </div>
- </div>
- </form>
- </body>
- </html>
- </p>
相關(guān)文章
- 這篇文章主要介紹了一文匯總 CSS 兩列布局和三列布局的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小2020-06-28
- 這篇文章主要介紹了CSS兩列布局實(shí)現(xiàn)方式總結(jié),討論了包括absolute + margin和float + margin方式的一些實(shí)踐和問(wèn)題,需要的朋友可以參考下2016-06-02
橫向兩列布局(左列固定,右列自適應(yīng))的4種CSS實(shí)現(xiàn)方式
這篇文章主要介紹了橫向兩列布局,即左列固定,右列自適應(yīng)的4種CSS實(shí)現(xiàn)方式,感興趣的小伙伴們可以參考一下2016-04-27學(xué)習(xí)DIV+CSS網(wǎng)頁(yè)布局之兩列布局
學(xué)習(xí)DIV+CSS網(wǎng)頁(yè)布局中的兩列布局,本文為大家分享的是DIV+CSS網(wǎng)頁(yè)布局教程的第二篇,感興趣的小伙伴們可以參考一下2016-03-15- CSS三列布局走出HTML布局陰影,兩端固定寬度,中間自適應(yīng)結(jié)構(gòu),下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-02-27
- CSS兩列布局,右側(cè)固定,左側(cè)自適應(yīng)寬度.2009-11-25
- 在CSS面試題中經(jīng)常會(huì)遇到CSS兩列布局的問(wèn)題,下面給大家分享CSS兩列布局的實(shí)現(xiàn)方式,每種方法給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-07-27