CSS 布局

實(shí)現(xiàn)三欄布局:高度固定,中間自適應(yīng),左右寬度是 300px。(div 標(biāo)簽的位置)

布局一:圣杯布局

圣杯布局和雙飛翼布局解決的問(wèn)題是一樣的渴杆,就是兩邊頂寬射窒,中間自適應(yīng)的三欄布局,中間欄要在放在文檔流前面以優(yōu)先渲染将塑。

圣杯布局和雙飛翼布局解決問(wèn)題的方案在前一半是相同的脉顿,也就是三欄全部float浮動(dòng),但左右兩欄加上負(fù)margin讓其跟中間欄div并排点寥,以形成三欄布局艾疟。

不同在于解決“中間欄div內(nèi)容不被遮擋”問(wèn)題的思路不一樣:圣杯布局,為了中間div內(nèi)容不被遮擋敢辩,將中間div設(shè)置了左右padding-leftpadding-right后蔽莱,將左右兩個(gè)div用相對(duì)布局position: relative并分別配合rightleft屬性,以便左右兩欄div移動(dòng)后不遮擋中間div戚长。

<style>
   * {
    margin: 0;
    padding: 0;
  }
  .left,
  .center,
  .right {
    position: relative;
    float: left;
    height: 300px;
  }
  .wrapper{
    padding: 0 300px;
    overflow: hidden;
  }
  .left {
    margin-left: -100%;
    left: -300px;
    width: 300px;
    background: red;
  }
  .right {
    margin-left: -300px;
    right: -300px;
    width: 300px;
    background: green;
  }
  .center {
    width: 100%;
    background: blue;
  }
</style>
</head>
<body>
<div class="wrapper">
  <div class="center"></div>
  <div class="left"></div>
  <div class="right"></div>
</div>
</body>

布局二:雙飛翼布局

雙飛翼布局盗冷,為了中間div內(nèi)容不被遮擋,直接在中間div內(nèi)部創(chuàng)建子div用于放置內(nèi)容同廉,在該子div里用margin-leftmargin-right左右兩欄div留出位置仪糖。

 <style>
  * {
    margin: 0;
    padding: 0;
  }
  .center {
    float: left;
    width: 100%;
    height: 300px;
    overflow: hidden;
    background-color: springgreen;
  }
  .content {
    margin: 0 300px;
    height: 100%;
    background-color: purple;
  }
  .left {
    float: left;
    width: 300px;
    height: 300px;
    background-color: pink;
    margin-left: -100%;
  }
  .right {
    float: left;
    width: 300px;
    height: 300px;
    background-color: pink;
    margin-left: -300px;
  }
</style>
<body>
<div class="wrapper">
  <div class="center">
    <div class="content"></div>
  </div>
  <div class="left"></div>
  <div class="right"></div>
</div>
</body>

布局三:flex 布局

<style>
    .wrapper {
      display: flex;
    }
    .left {
      width: 300px;
      height: 300px;
      background-color: pink;
    }
    .main {
      flex: 1;
      height: 300px;
      background-color: springgreen;
    }
    .right {
      width: 300px;
      height: 300px;
      background-color: pink;
    }
</style>
<div class="wrapper">
  <div class="left"></div>
  <div class="main"></div>
  <div class="right"></div>
</div>

布局四:絕對(duì)定位布局

<style>
  * {
    margin: 0;
    padding: 0;
  }
  .wrapper {
    position: relative;
  }
  .left {
    position: absolute;
    left: 0;
    width: 300px;
    height: 300px;
    background-color: pink;
  }
  .right {
    position: absolute;
    right: 0;
    width: 300px;
    height: 300px;
    background-color: springgreen;
  }
  .center {
    position: absolute;
    left: 300px;
    right: 300px;
    height: 300px;
    background-color: yellowgreen;
  }
</style>
<body>
<div class="wrapper">
  <div class="left"></div>
  <div class="center"></div>
  <div class="right"></div>
</div>
網(wǎng)格布局
<style>
    * {
      margin: 0;
      padding: 0;
    }
    .wrapper {
      display: grid;
      grid-template-columns: 300px auto 300px;
      grid-template-rows: 300px;
    }
    .left {
      background-color: purple;
    }
    .center {
      background-color: dodgerblue;
    }
    .right {
      background-color: springgreen;
    }
</style>
<body>
<div class="wrapper">
  <div class="left"></div>
  <div class="center"></div>
  <div class="right"></div>
</div>
</body>

圣杯布局和雙飛翼布局的作用和區(qū)別
六種CSS經(jīng)典三欄布局方案

擴(kuò)展一:上下固定,中間自適應(yīng)
布局一:絕對(duì)定位布局
<style>
  * {
    padding: 0;
    margin: 0;
  }
  .top {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100px;
    background-color: pink;
  }
  .center {
    position: absolute;
    top: 100px;
    bottom: 100px;
    width: 100%;
    overflow: auto;
    background-color: yellowgreen;
    color: #fff;
    text-align: center;
  }
  .bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100px;
    background-color: purple;
  }
</style>
<body>
<div class="wrapper">
  <div class="top"></div>
  <div class="center">
  
  </div>
  <div class="bottom"></div>
</div>
</body>
布局二:flex 布局
<style>
  * {
    padding: 0;
    margin: 0;
  }
  html, body {
    height: 100%;
  }
  .wrapper {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
  }
  .top {
    width: 100%;
    height: 100px;
    background-color: yellow;
  }
  .center {
    flex: 1;
    overflow: auto;
    background-color: pink;
    color: #fff;
  }
  .bottom {
    width: 100%;
    height: 100px;
    background-color: rosybrown;
  }
</style>
</head>
<body>
<div class="wrapper">
  <div class="top"></div>
  <div class="center">
  </div>
  <div class="bottom"></div>
</div>
</body>
布局三:網(wǎng)格布局

超級(jí)nice的教程 【圖片版】CSS網(wǎng)格布局(Grid)完全教程

<style>
  html, body {
    height: 100%;
    padding: 0;
    margin: 0;
  }
  .wrapper {
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 100px auto 100px;
  }
  .top {
    background-color: springgreen;
  }
  .center {
    background-color: rosybrown;
    overflow: auto;
  }
  .bottom {
    background-color: purple;
  }
</style>
<body>
<div class="wrapper">
  <div class="top"></div>
  <div class="center">
  </div>
  <div class="bottom"></div>
</div>
</body>
擴(kuò)展二:左邊固定迫肖,右邊自適應(yīng)

七種實(shí)現(xiàn)左側(cè)固定锅劝,右側(cè)自適應(yīng)兩欄布局的方法

布局一:雙 float 布局
<style>
    html, body {
      width: 100%;
      height: 100%;
      overflow: hidden;
      margin: 0;
      padding: 0;
    }
    .wrapper {
      width: 100%;
      height: 100%;
    }
    .left {
      float: left;
      width: 100px;
      height: 100%;
      background-color: rosybrown;
    }
    .right {
      float: left;
      width: calc(100% - 100px);
      height: 100%;
      background-color: yellowgreen;
      overflow: hidden;
    }
    .content {
      overflow-y: scroll;
      height: 100%;
    }
</style>
<body>
<div class="wrapper">
  <div class="left"></div>
  <div class="right">
    <div class="content">
    </div>
  </div>
</div>
</body>
</html>
布局二:flex布局
<style>
  html, body {
    padding: 0;
    margin: 0;
    height: 100%;
  }
  .wrapper {
    display: flex;
    height: 100%;
  }
  .left {
    width: 150px;
    height: 100%;
    background-color: yellowgreen;
  }
  .right {
    flex: 1;
    height: 100%;
    background-color: pink;
  }
</style>
</head>
<body>
<div class="wrapper">
  <div class="left"></div>
  <div class="right">
    <div class="content">
    </div>
  </div>
</div>
布局三:雙inline-block方案
<style>
  * {
    margin: 0;
    padding: 0;
  }
  html, body {
    width: 100%;
    height: 100%;
  }
  .wrapper {
    width: 100%;
    height: 100%;
    font-size: 0;
    -webkit-text-size-adjust: none; //  解決inline-block水平呈現(xiàn)的元素間,換行顯示或空格分隔的情況下會(huì)有間距的問(wèn)題
  }
  .left, .right {
    height: 100%;
    display: inline-block;
    vertical-align: top;
  }
  .left {
    width: 150px;
    background-color: pink;
  }
  .right {
    width: calc(100% - 160px);
    background-color: yellowgreen;
  }
</style>
</head>
<body>
<div class="wrapper">
  <div class="left"></div>
  <div class="right"></div>
</div>
</body>
布局四:grid布局
<style>
  html, body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
  }
  .wrapper {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 150px 1fr;
    grid-template-rows: 1fr;
  }
  .left {
    background-color: yellowgreen;
  }
  .right {
    background-color: yellow;
  }
</style>
<body>
<div class="wrapper">
  <div class="left"></div>
  <div class="right"></div>
</div>
</body>
布局五:float+BFC
<style>
  html, body {
    width: 100%;
    height: 100%;
  }
  .wrapper {
    width: 100%;
    height: 100%;
  }
  .left {
    width: 150px;
    height: 100%;
    float: left;
    background-color: yellow;
  }
  .right {
    width: calc(100% - 150px);
    height: 100%;
    background-color: yellowgreen;
    overflow: hidden;
  }
</style>
<body>
<div class="wrapper">
  <div class="left"></div>
  <div class="right"></div>
</div>
</body>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蟆湖,一起剝皮案震驚了整個(gè)濱河市泪掀,隨后出現(xiàn)的幾起案子仔掸,更是在濱河造成了極大的恐慌,老刑警劉巖回季,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件量九,死亡現(xiàn)場(chǎng)離奇詭異仿耽,居然都是意外死亡获搏,警方通過(guò)查閱死者的電腦和手機(jī)怖喻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)呢铆,“玉大人晦鞋,你說(shuō)我怎么就攤上這事」卓耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵线定,是天一觀的道長(zhǎng)娜谊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)斤讥,這世上最難降的妖魔是什么纱皆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任湾趾,我火速辦了婚禮,結(jié)果婚禮上派草,老公的妹妹穿的比我還像新娘搀缠。我一直安慰自己,他們只是感情好近迁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布艺普。 她就那樣靜靜地躺著,像睡著了一般鉴竭。 火紅的嫁衣襯著肌膚如雪歧譬。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天搏存,我揣著相機(jī)與錄音瑰步,去河邊找鬼。 笑死璧眠,一個(gè)胖子當(dāng)著我的面吹牛缩焦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播责静,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼舌界,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了泰演?” 一聲冷哼從身側(cè)響起呻拌,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎睦焕,沒(méi)想到半個(gè)月后藐握,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垃喊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年猾普,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片本谜。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡初家,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乌助,到底是詐尸還是另有隱情溜在,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布他托,位于F島的核電站掖肋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赏参。R本人自食惡果不足惜志笼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一沿盅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纫溃,春花似錦腰涧、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至郎楼,卻和暖如春万伤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呜袁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工敌买, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阶界。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓虹钮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親膘融。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芙粱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 前言 溫馨提示:本文較長(zhǎng)氧映,圖片較多春畔,本來(lái)是想寫(xiě)一篇 CSS 布局方式的,但是奈何 CSS 布局方式種類太多并且實(shí)現(xiàn)...
    sunshine小小倩閱讀 3,139評(píng)論 0 59
  • CSS布局 布局是CSS中一個(gè)重要部分岛都,本文總結(jié)了CSS布局中的常用技巧律姨,包括常用的水平居中、垂直居中方法臼疫,以及單...
    web前端學(xué)習(xí)閱讀 1,599評(píng)論 1 38
  • 1.瀑布流布局 思路:要求:當(dāng)圖片寬度相同湾盗,高度不同時(shí)伏蚊;如何做一面圖片墻;每次圖片加載到每列最低的位置格粪;1.圖片的...
    饑人谷_楠柒閱讀 2,453評(píng)論 2 54
  • 記錄每天要做的事情躏吊,按大致分類成:公司,個(gè)人帐萎,其他比伏。 按要做事情重要程度,所需時(shí)間安排執(zhí)行時(shí)間疆导,如果要更細(xì)致赁项,可以...
    Oo呢喃oO閱讀 1,361評(píng)論 0 1