圣杯布局&雙飛翼布局

實(shí)現(xiàn)一個(gè)圣杯布局

圣杯布局是為了討論 三欄液態(tài)布局的實(shí)現(xiàn)

有幾點(diǎn)要求

  1. 上部(header)和下部(footer)各自占領(lǐng)屏幕所有寬度
  2. 中間部分(container)是一個(gè)三欄布局
  3. 三欄布局兩側(cè)寬度不變悯周,中間部分自動(dòng)填充整個(gè)區(qū)域
  4. 中間部分的高度是三欄中最高的區(qū)域的高度


float 實(shí)現(xiàn)

html 代碼中 middle 部分首先要放在 container 的最前部分,container 的高度保持一致

  1. 將三者都 float:left , 再加上一個(gè)position:relative (因?yàn)橄鄬Χㄎ缓竺鏁?huì)用到)
  2. middle部分 width:100%占滿
  3. 此時(shí)middle占滿了滓技,所以要把left拉到最左邊进每,使用margin-left:-100%
  4. 這時(shí)left拉回來了偏塞,但會(huì)覆蓋middle內(nèi)容的左端,要把middle內(nèi)容拉出來,所以在外圍container加上 padding:0 220px 0 200px
  5. middle內(nèi)容拉回來了哪审,但left也跟著過來了饶深,所以要還原餐曹,就對left使用相對定位 left:-200px 同理,right也要相對定位還原 right:-220px
  6. 到這里大概就自適應(yīng)好了敌厘。如果想container高度保持一致可以給left middle right都加上min-height:130px
<div class="header">
    <h4>header</h4>
</div>

<div class="container">
    <div class="middle">
        <h4>middle</h4>
        <p>middle-content</p>
    </div>
    
    <div class="left">
        <h4>left</h4>
        <p>left-content</p>
    </div>
    
    <div class="right">
        <h4>right</h4>
        <p>right-content</p>
    </div>
</div>

<div class="footer">
    <h4>footer</h4>
</div>
.header, .footer {
    border: 1px solid #333;
    background: #ccc;
    text-align: center;
}
.footer {
    clear: both;
}

.container {
    padding:0 220px 0 200px;
    overflow: hidden;
}
.left, .middle, .right {
    position: relative;
    float: left;
    min-height: 130px;
}
.middle {
   width: 100%;
    background: blue;
}
.left {
    margin-left: -100%;
    left: -200px;
    width: 200px;
    background: red;
}
.right {
    margin-left: -220px;
    right: -220px;
    width: 220px;
    background: green;
}

flex 實(shí)現(xiàn)

用彈性盒子來實(shí)現(xiàn)圣杯布局特別簡單台猴,只需要把中間的部分用flex布局即可。

  1. header和footer同上面一樣俱两,橫向撐滿饱狂。footer不用再清浮動(dòng)了
  2. container中的left、middle宪彩、right依次排布即可休讳,不用特意將middle放置到最前面
  3. 給container設(shè)置彈性布局 display: flex;
  4. left和right區(qū)域定寬,middle設(shè)置 flex: 1; 即可
<div class="header">
    <h4>header</h4>
</div>

<div class="container">
    <div class="left">
        <h4>left</h4>
        <p>left-content</p>
    </div>
    
    <div class="middle">
        <h4>middle</h4>
        <p>middle-content</p>
    </div>
    
    <div class="right">
        <h4>right</h4>
        <p>right-content</p>
    </div>
</div>

<div class="footer">
    <h4>footer</h4>
</div>
.header, .footer {
    border: 1px solid #333;
    background: #ccc;
    text-align: center;
}

.container {
    display: flex;
}
.left {
    width: 200px;
    background: red;
}
.middle {
    flex: 1;
    background: blue;
}
.right {
    width: 220px;
    background: green;
}

總結(jié)

總的來說毯焕,彈性布局是最適合實(shí)現(xiàn)圣杯布局的方法了衍腥,相較浮動(dòng),彈性布局的結(jié)構(gòu)更清楚纳猫,更好理解婆咸,也不用擔(dān)心移動(dòng)端的適配問題。

而浮動(dòng)的方法芜辕,在面試中可能會(huì)遇到尚骄,主要考察對布局的理解能力。

圣杯布局的另一個(gè)核心:重要的內(nèi)容先加載侵续。就像本文中的 middle 在前倔丈,left 和 right 在后

雙飛翼布局

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

如果把三欄布局比作一只大鳥状蜗,可以把main看成是鳥的身體需五,sub和extra則是鳥的翅膀。這個(gè)布局的實(shí)現(xiàn)思路是轧坎,先把最重要的身體部分放好宏邮,然后再將翅膀移動(dòng)到適當(dāng)?shù)牡胤?

其實(shí)跟上邊的圣杯布局差不多的,當(dāng)然也可以改動(dòng)一下(自己想想有哪些不同吧)

恩,這里有一只鳥~

左翅sub有200px,右翅extra..220px.. 身體main自適應(yīng)未知

  1. html代碼中蜜氨,main要放最前邊械筛,sub extra
  2. 將main sub extra 都float:left
  3. 將main占滿 width:100%
  4. 此時(shí)main占滿了,所以要把sub拉到最左邊飒炎,使用margin-left:-100% 同理 extra使用margin-left:-220px
    (這時(shí)可以直接繼續(xù)上邊圣杯布局的步驟埋哟,也可以有所改動(dòng))
  5. main內(nèi)容被覆蓋了吧,除了使用外圍的padding郎汪,還可以考慮使用margin赤赊。
    給main增加一個(gè)內(nèi)層div-- main-inner, 然后margin:0 220px 0 200px
  6. main正確展示
 *{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;
    }
<div class="header">
    <h4>header</h4>
</div>
    <div class="main">
    <div class="main-inner">
        <h4>main</h4>
        </div>
    </div> 
    <div class="sub">
    <h4>sub</h4>
    </div>

      <div class="extra">
    <h4>extra</h4>
    </div>
    <div class="footer">
        <h4>footer</h4>
    </div>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市怒竿,隨后出現(xiàn)的幾起案子砍鸠,更是在濱河造成了極大的恐慌扩氢,老刑警劉巖耕驰,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異录豺,居然都是意外死亡朦肘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門双饥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來媒抠,“玉大人,你說我怎么就攤上這事咏花∨可” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵昏翰,是天一觀的道長苍匆。 經(jīng)常有香客問我,道長棚菊,這世上最難降的妖魔是什么浸踩? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮统求,結(jié)果婚禮上检碗,老公的妹妹穿的比我還像新娘。我一直安慰自己码邻,他們只是感情好折剃,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著像屋,像睡著了一般怕犁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天因苹,我揣著相機(jī)與錄音苟耻,去河邊找鬼。 笑死扶檐,一個(gè)胖子當(dāng)著我的面吹牛凶杖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播款筑,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼智蝠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奈梳?” 一聲冷哼從身側(cè)響起杈湾,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎攘须,沒想到半個(gè)月后漆撞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡于宙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年浮驳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捞魁。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡至会,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谱俭,到底是詐尸還是另有隱情奉件,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布昆著,位于F島的核電站县貌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏宣吱。R本人自食惡果不足惜窃这,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望征候。 院中可真熱鬧杭攻,春花似錦、人聲如沸疤坝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跑揉。三九已至锅睛,卻和暖如春埠巨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背现拒。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工辣垒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人印蔬。 一個(gè)月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓勋桶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親侥猬。 傳聞我的和親對象是個(gè)殘疾皇子例驹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容