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

這篇文章主要介紹了CSS實現(xiàn)頁面兩列布局與三列布局的方法示例,包括寬度與高度的自適應的示例,需要的朋友可以參考下
1. 使用BFC的原理實現(xiàn)
BFC的規(guī)則之一,就是BFC區(qū)域,不會與float box重疊,因此我們可以利用這一點來實現(xiàn)3列布局。
html代碼如下
css代碼如下
2.雙飛翼布局
這種布局方案最早由淘寶提出,主要為了主列能夠被最先加載。
實現(xiàn)原理:
(1)讓主列外面添加一個wrap,主列wrap,以及2子列都左浮動。
(2)設置主列wrap寬度為100%,將子列的margin-left設置為負值,讓子列能夠排列在左右兩側。
(3)這是主列的margin-left與margin-right比左右兩列的寬度大一點,則可以設置出來主列與子列之間的間隙。
html代碼如下
css代碼如下
3.圣杯布局
圣杯布局在結構上要簡單一點,也能夠讓主列優(yōu)先加載。
實現(xiàn)原理:
(1)添加一個包裹框,設置padding-leftpadding-right值,比子列寬度大一個空隙的寬度。
(2)主列,子列都設置為float: left 左子列margin-left設置為-100%,并且設置為position:relative; left: -110px將左子列放置到左側。右子列同理。
(3)主列只需設置寬度為100%即可。包裹框的寬度不要設置為100%,自適應即可。
html代碼如下
css代碼如下
下面再給出一個高度占滿全屏的例子:
BFC的規(guī)則之一,就是BFC區(qū)域,不會與float box重疊,因此我們可以利用這一點來實現(xiàn)3列布局。
html代碼如下
XML/HTML Code復制內容到剪貼板
- <div class="left"></div>
- <div class="right"></div>
- <div class="main"></div>
CSS Code復制內容到剪貼板
- .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;
- }
這種布局方案最早由淘寶提出,主要為了主列能夠被最先加載。
實現(xiàn)原理:
(1)讓主列外面添加一個wrap,主列wrap,以及2子列都左浮動。
(2)設置主列wrap寬度為100%,將子列的margin-left設置為負值,讓子列能夠排列在左右兩側。
(3)這是主列的margin-left與margin-right比左右兩列的寬度大一點,則可以設置出來主列與子列之間的間隙。
html代碼如下
XML/HTML Code復制內容到剪貼板
- <div class="wrap">
- <div class="main-content">
- <div class="main"></div>
- </div>
- <div class="left"></div>
- <div class="right"></div>
- </div>
CSS Code復制內容到剪貼板
- .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;
- }
圣杯布局在結構上要簡單一點,也能夠讓主列優(yōu)先加載。
實現(xiàn)原理:
(1)添加一個包裹框,設置padding-leftpadding-right值,比子列寬度大一個空隙的寬度。
(2)主列,子列都設置為float: left 左子列margin-left設置為-100%,并且設置為position:relative; left: -110px將左子列放置到左側。右子列同理。
(3)主列只需設置寬度為100%即可。包裹框的寬度不要設置為100%,自適應即可。
html代碼如下
XML/HTML Code復制內容到剪貼板
- <div class="wrapper">
- <div class="main"></div>
- <div class="left"></div>
- <div class="right"></div>
- </div>
CSS Code復制內容到剪貼板
- .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復制內容到剪貼板
- <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的位置設置成相對的*/
- 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%; /*這里是百分比或者像素值,對應下面的center就是百分比或者像素值*/
- background: red;
- float: left;
- height:100%;
- }
- .rightright {
- width: 15%; /*這里是百分比或者像素值,對應下面的center就是百分比或者像素值*/
- height: 100%;
- background: pink;
- float: rightright;
- }
- .center {
- height: 100%;
- background: green;
- /*兩種方式均可(一)margin(二)margin-left、margin-right*/
- /*(一)、用這種方式上面的left和right中的width是百分比或者像素值都可以*/
- margin: auto;
- /*(二)、這里是百分比或者像素值,對應上面的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>
相關文章
- 這篇文章主要介紹了一文匯總 CSS 兩列布局和三列布局的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小2020-06-28
- 這篇文章主要介紹了CSS兩列布局實現(xiàn)方式總結,討論了包括absolute + margin和float + margin方式的一些實踐和問題,需要的朋友可以參考下2016-06-02
橫向兩列布局(左列固定,右列自適應)的4種CSS實現(xiàn)方式
這篇文章主要介紹了橫向兩列布局,即左列固定,右列自適應的4種CSS實現(xiàn)方式,感興趣的小伙伴們可以參考一下2016-04-27- 學習DIV+CSS網(wǎng)頁布局中的兩列布局,本文為大家分享的是DIV+CSS網(wǎng)頁布局教程的第二篇,感興趣的小伙伴們可以參考一下2016-03-15
- CSS三列布局走出HTML布局陰影,兩端固定寬度,中間自適應結構,下面有個不錯的示例,大家可以參考下2014-02-27
- CSS兩列布局,右側固定,左側自適應寬度.2009-11-25
- 在CSS面試題中經(jīng)常會遇到CSS兩列布局的問題,下面給大家分享CSS兩列布局的實現(xiàn)方式,每種方法給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2021-07-27