1. 程式人生 > >CSS聖盃佈局與雙飛翼佈局

CSS聖盃佈局與雙飛翼佈局

原文連結:http://www.cnblogs.com/imwtr/p/4441741.html

按照我的理解,其實聖盃佈局跟雙飛翼佈局的實現,目的都是左右兩欄固定寬度,中間部分自適應。

但在這裡實現起來還是有一些區別的

【聖盃佈局】

在這裡,實現了左(200px) 右(220px) 寬度固定,中間自適應,container部分高度保持一致。

DEMO

稍微說明一下:

html程式碼中  middle部分首先要放在container的最前部分。然後是left,right

1.將三者都 float:left , 再加上一個position:relative (因為相對定位後面會用到)

2.

middle部分 width:100%佔滿

3.此時middle佔滿了,所以要把left拉到最左邊,使用margin-left:-100%

4.這時left拉回來了,但會覆蓋middle內容的左端,要把middle內容拉出來,所以在外圍container加上 padding:0 220px 0 200px

5.middle內容拉回來了,但left也跟著過來了,所以要還原,就對left使用相對定位 left:-200px  同理,right也要相對定位還原 right:-220px

6.到這裡大概就自適應好了。如果想container高度保持一致可以給left middle right都加上min-height:130px

不過衰衰地發現ie中有問題.. ie6/7/8/9中 下面的空白高度都不一樣..

當然,為了保證視窗不能縮太小無法展示左右,可以給body加上 min-width

好了,程式碼敬上:

複製程式碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<
meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>聖盃佈局</title> <style type="text/css"> *{margin: 0;padding: 0;} body{min-width: 700px;} .header, .footer{ border: 1px solid #333; background: #aaa; text-align: center; } .left, .middle, .right{ position: relative; float: left; min-height: 130px; } .container{ padding:0 220px 0 200px; overflow: hidden; } .left{ margin-left: -100%; left: -200px; width: 200px; background: red; } .right{ margin-left: -220px; right: -220px; width: 220px; background: green; } .middle{ width: 100%; background: blue; word-break: break-all; } .footer{ clear: both; } </style> </head> <body> <div class="header"> <h4>header</h4> </div> <div class="container"> <div class="middle"> <h4>middle</h4> <p>HHHHHHHHHHHHHHHHHHHHHH hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh HHHHHHHHHHHHHHHHHHHHHH hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh </p> </div> <div class="left"> <h4>left</h4> <p>oooooooooooooo 0000000000000000 00000000000000000 ooooooooooooooo ooooooooooooooo 000000000000000</p> </div> <div class="right"> <h4>right</h4> <p>BBBBBBBBBBBBBB 888888888888888888 BBBBBBBBBBBBBBBBBB 88888888888888888888</p> </div> </div> <div class="footer"> <h4>footer</h4> </div> </body> </html>
複製程式碼

【雙飛翼佈局】

DEMO

聽說雙飛翼佈局是玉伯大大提出來的,始於淘寶UED

如果把三欄佈局比作一隻大鳥,可以把main看成是鳥的身體,sub和extra則是鳥的翅膀。這個佈局的實現思路是,先把最重要的身體部分放好,然後再將翅膀移動到適當的地方.

其實跟上邊的聖盃佈局差不多的,當然也可以改動一下(自己想想有哪些不同吧)

恩,這裡有一隻鳥~

左翅sub有200px,右翅extra..220px.. 身體main自適應未知

1.html程式碼中,main要放最前邊,sub  extra

2.將main  sub  extra 都float:left

3.將main佔滿 width:100%

4.此時main佔滿了,所以要把sub拉到最左邊,使用margin-left:-100%  同理 extra使用margin-left:-220px

(這時可以直接繼續上邊聖盃佈局的步驟,也可以有所改動)

5.main內容被覆蓋了吧,除了使用外圍的padding,還可以考慮使用margin。

給main增加一個內層div-- main-inner, 然後margin:0 220px 0 200px

6.main正確展示

程式碼敬上:

複製程式碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>雙飛翼佈局</title>
<style type="text/css">
    *{margin: 0;padding: 0;}
    body{min-width: 700px;}
    .header,
    .footer{ 
        border: 1px solid #333;
        background: #aaa;
        text-align: center;
    }
    .sub,
    .main,
    .extra{ 
        float: left;
        min-height: 130px;
    }
    .sub{
        margin-left: -100%;
        width: 200px;
        background: red;
    }
    .extra{
        margin-left: -220px;
        width: 220px;
        background: blue;
    }
    .main{ 
        width: 100%;
    }
    .main-inner{ 
        margin-left: 200px;
        margin-right: 220px;
        min-height: 130px;
        background: green;
        word-break: break-all;
    }
    .footer{ 
        clear: both;
    }
</style>
</head>
<body>
<div class="header">
    <h4>header</h4>
</div>
    <div class="main">
    <div class="main-inner">
        <h4>main</h4>
        <p>HHHHHHHHHHHHHHHHHHHHHH
        hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
        HHHHHHHHHHHHHHHHHHHHHH
        hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
        </p>
        </div>
    </div> 
    <div class="sub">
    <h4>sub</h4>
        <p>oooooooooooooo
        0000000000000000
        00000000000000000
        ooooooooooooooo
        ooooooooooooooo
        000000000000000</p>
    </div>

      <div class="extra">
    <h4>extra</h4>
        <p>BBBBBBBBBBBBBB
        888888888888888888
        BBBBBBBBBBBBBBBBBB
        88888888888888888888</p>
    </div>
    <div class="footer">
        <h4>footer</h4>
    </div>
</body>
</html>
複製程式碼

原文連結:http://www.cnblogs.com/tinyphp/p/4743674.html

在不增加額外標籤的情況下,聖盃佈局已經非常完美,聖盃佈局使用了相對定位,以後佈局是有侷限性的,而且寬度控制要改的地方也多,那麼有沒其他方法更加簡潔方便呢?

在淘寶UED探討下,增加多一個div就可以不用相對佈局了,只用到了浮動和負邊距,這就是我們所說的雙飛翼佈局。

DOM結構:main內層增加了一個div

複製程式碼
<div class="header">Header</div>
<div class="bd">
    <div class="main">
        <div class="inner">
            Main
        </div>
    </div>
    <div class="left">Left</div>
    <div class="right">Right
    </div>
</div>
<div class="footer">Footer</div>
複製程式碼

樣式:去掉了左右欄的相對定位,去掉包裹層padding,以中間欄新增div的margin代替

複製程式碼
  <style>
        body{padding:0;margin:0}
        .header,.footer{width:100%;  background: #666;height:30px;clear:both;}
        .bd{
            /*padding-left:150px;*/
            /*padding-right:190px;*/
        }
        .left{
            
           

相關推薦

圖解佈局佈局--CSS佈局實戰一

本質:均是兩側頂寬(寬度固定),中間自適應 適用:電商網頁pc移動端展示,比如淘寶、京東等電商網頁都有應用。 區別:只是中間自適應的處理方式不同。 聖盃佈局: 中間主要是直接撐滿,然後讓左右通過相對絕對定位(position)來浮動。 雙飛翼佈局:中間同樣充滿,在中間再放一層內部

div css 佈局佈局

div css 聖盃佈局 <html> <head> <style> body{ min-width:600

CSS佈局佈局

原文連結:http://www.cnblogs.com/imwtr/p/4441741.html 按照我的理解,其實聖盃佈局跟雙飛翼佈局的實現,目的都是左右兩欄固定寬度,中間部分自適應。 但在這裡實現起來還是有一些區別的 【聖盃佈局】 在這裡,實現了左(20

CSS中的佈局,以及佈局佈局的區別

            為了解決中間寬度自適應,左右列固定寬度,最早出現的是聖盃佈局,雙飛翼佈局是對聖盃佈局的改良,同樣這種 佈局的優勢在於在中間列中的文件可以優先渲染。        1.什麼是聖盃佈局           其實對於聖盃佈局,前面一部分與雙飛翼佈局完

css佈局佈局佈局

今天開班級會議,主要是講講畢業的事宜,其中一位同學說到他現在在專研一些新技術,但是我不建議他這麼做,畢竟基礎很重要程式設計主要學習的是思想 正題吧,前陣子朋友面試,有這麼一個要求: 就是兩邊定寬,中間自適應的三欄佈局 是不是感覺很簡單,但是我事後試了試,發現不是那麼簡單,

css-佈局佈局

1.聖盃佈局:(1)父元素中包含左中右三個盒子,並且讓他們分別左浮動。(2)將中間的盒子寬度設為100%,並且它在html中程式碼位置放在左右程式碼位置的上面(就是所說的第一個渲染)。(3)左右兩邊使用margin-left的負值,使他們與中間的盒子同行,(左邊:-100%,

Css佈局佈局

聖盃佈局和雙飛翼佈局是我再一次京東面試中聽到的詞彙,簡單來說,這種佈局其實都是我們CSS+div佈局的入門級,但是大家肯恩都不知道這個名詞,高大上的名詞一般都會顯示你的知識面及專業度 閒話不多說,原理講起來: 事實上,聖盃佈局其實和雙飛翼佈局是一回事。它們實現的都是三欄佈局

CSS | 佈局佈局 | 自適應三欄佈局

聖盃佈局和雙飛翼佈局是前端工程師需要日常掌握的重要佈局方式。兩者的功能相同,都是為了實現一個兩側寬度固定,中間寬度自適應的三欄佈局 雖然兩者的實現方法略有差異,不過都遵循了以下要點: 1.兩側寬度固定,中間寬度自適應 2.中間部分在DOM結構上優先,以便先行渲染 3.允許三列中的任意一列成為最高列 4.只需

佈局佈局佈局

聖盃佈局和雙飛翼佈局都是為了實現兩邊固定,中間自適應的三列的佈局,他的中間欄優先渲染。 聖盃佈局與雙飛翼佈局前面幾步相同 1.寫三個div,中間的那個div放在第一個//優先渲染 2.給左中右設定浮動,分別設定高度,寬度,顏色 3.左邊模組讓它margin-left:-100%,右邊模組ma

佈局佈局的理解和區別

連結 聖盃佈局和雙飛翼佈局基本上是一致的,都是兩邊固定寬度,中間自適應的三欄佈局,其中,中間欄放到文件流前面,保證先行渲染。解決方案大體相同,都是三欄全部float:left浮動,區別在於解決中間欄div的內容不被遮擋上,聖盃佈局是中間欄在新增相對定位,並配合left和right屬性,效

佈局佈局、Flex佈局和絕對定位佈局的幾種經典佈局的具體實現示例

題目要求:針對如下DOM結構,編寫CSS,實現三欄水平佈局,其中left、right分別位於左右兩側,left寬度為200px,right寬度為300px,main處在中間,寬度自適應。 要求:允許增加額外的DOM節點,但不能修改現有節點順序。 <

關於佈局佈局

聖盃佈局和雙飛翼佈局講的都是三欄佈局,其中兩欄固定,中間自適應,兩者顯示的效果是一致的;另外由於沒有使用絕對定位position:absolute,所以可以避免發生當頁面內容比較多的時候用絕對定位導致

經典的三欄佈局佈局佈局,flex佈局

需求: 兩邊欄固定寬度,中間寬度自適應,一般左邊欄為導航,右邊欄為廣告,中間欄為主要內容的展示,div塊上中間欄放在第一位,重要的東西放在文件流前面可以優先渲染。 聖盃佈局和雙飛翼佈局的共同特點都是利用float+margin的負值來實現並列的結

佈局佈局

聖盃佈局 聖盃佈局就是三欄佈局,其中左右兩欄固定寬度,中間部分自適應 主要步驟: 在html中,中間的塊在最前面,後面緊跟左邊的塊和右邊的塊 三者均設定float:left,中間塊設定width

佈局佈局的理解及對比

一、聖盃佈局 1.聖盃佈局的DOM結構如下: 聖盃特點簡單記為:有頭、有尾、包三列,聖盃佈局中間是有container大容器包裹著左中右區域的。 <!--特點:有頭、有尾、包三列(有個container容器包裹:左、中、右三個區域)--> <h

佈局佈局】的幾種實現

聖盃佈局【雙飛翼佈局】:兩邊定寬,中間寬度自適應;且優先渲染中間主題內容部分。 一、負邊距法 DOM結構: 由於需要優先渲染主題內容部分,因此在DOM結構中需要將其寫在左右側邊欄之前。

三種方式實現:三欄佈局佈局佈局前端面試的佈局問題)

1.float+margin效果如下:html程式碼如下: <div class="main">im center</div> <div class="left">

佈局and佈局

聖盃佈局: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</titl

重溫佈局佈局

1.聖盃佈局 <!doctype html> <html> <head> <meta charset="utf-8"> <title>無標題

佈局佈局

聖盃佈局是討論「三欄液態佈局」的實現,它最早出自於誰或許不得而查了。 所謂液態佈局是相對固態佈局而言的,固態佈局就是固定值不變的佈局,液態就好比在容器裡到了一杯水,它可以隨著容器寬度的變化而自適應寬度。(說白了,就是三欄佈局,兩邊固定,中間自適應) &l