css三列布局--兩邊固定中間自適應(yīng)和中間固定兩邊自適應(yīng)

需求: 兩邊固定市埋,中間自適應(yīng)

效果圖


nihao.png
一捐韩、浮動(float)

index.html

// style
<style>
    .app{
        margin: 0;
        padding: 0;
    }
    .left{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
        float: left;
    }
    .right{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
        float: right;
    }
    .main{
        height: 200px;
        background-color: blueviolet;
        margin: 0 200px;
    }
</style>

//html
<body>
    <div class="app">
      <div class="left"></div>
      <div class="right"></div>
      <div class="main"></div>
    </div>
</body>

總結(jié):浮動(float)需要注意頁面布局,main不能在中間;原理利用左右浮動兩塊div元素床未,脫離標(biāo)準(zhǔn)流就缆,中間那塊元素就會上去,跟他們一行尤溜,利用margin留出左右寬度

二倔叼、定位(position)

index.html

// style
<style>
    .app{
        margin: 0;
        padding: 0;
        position: relative;
    }
    .left{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
        position: absolute;
        left: 0;
        top: 0;
    }
    .right{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
        position: absolute;
        right: 0;
        top: 0;
    }
    .main{
        height: 200px;
        background-color: blueviolet;
        margin: 0 200px;
    }
</style>

//html
<body>
    <div class="app">
      <div class="left"></div>
      <div class="main"></div>
      <div class="right"></div>
    </div>
</body>

總結(jié):定位(position)沒有要求布局;原理利用左右定位兩塊div元素宫莱,脫離標(biāo)準(zhǔn)流丈攒,中間那塊元素就會上去,跟他們一行授霸,利用margin留出左右寬度

三巡验、彈性布局(flex)

index.html

// style
<style>
    .app{
        margin: 0;
        padding: 0;
        display: flex;
    }
    .left{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
    }
    .right{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
    }
    .main{
        height: 200px;
        background-color: blueviolet;
        flex: 1;
    }
</style>

//html
<body>
    <div class="app">
      <div class="left"></div>
      <div class="main"></div>
      <div class="right"></div>
    </div>
</body>

總結(jié):彈性布局(flex)需要父級元素彈性,中間flex:1碘耳;原理利用flex:1显设,可以自適應(yīng)剩余空間

四、雙飛翼布局

index.html

//style
<style>
    .app{
        margin: 0;
        padding: 0;
    }
    .main{
        width: 100%;
        height: 200px;
        background-color: blueviolet; 
        float: left;
    }
    .itemMain{
      margin: 0 200px;
      color: #FFF;
    }
    .left{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
        float: left;
        margin-left: -100%;
    }
    .right{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
        float: left;
        margin-left: -200px;
    }
</style>

//html
<body>
    <div class="app">
      <div class="main">
        <div class="itemMain">雙飛翼布局</div>
      </div>
      <div class="left"></div>
      <div class="right"></div>
    </div>
</body>

總結(jié):雙飛翼布局個人理解:在div.main元素中添加一個元素辛辨,設(shè)置margin外邊距捕捂;div.left和div.right占的是itemMain的外邊距

五瑟枫、圣杯布局

index.html

//style
<style>
    .app{
        margin: 0;
        padding: 0;
        padding: 0 200px;
        overflow: hidden;
    }
    .main{
        width: 100%;
        height: 200px;
        background-color: blueviolet; 
        position: relative;
        float: left;
    }
    .left{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
        position: relative;
        float: left;
        margin-left: -100%;
        left: -200px;
    }
    .right{
        width: 200px;
        height: 200px;
        background-color: aquamarine;
        position: relative;
        float: left;
        margin-left: -200px;
        right: -200px;
    }
</style>

//html
<body>
    <div class="app">
      <div class="main">圣杯布局</div>
      <div class="left"></div>
      <div class="right"></div>
    </div>
</body>

總結(jié):圣杯布局個人理解:它是通過設(shè)置padding內(nèi)邊距和position,div.left和div.right占的是itemMain的內(nèi)邊距。它有缺點:瀏覽器無線放大縮小時指攒,布局將混亂

雙飛翼布局和圣杯布局介紹

1.雙飛翼布局:淘寶針對「圣杯」的缺點做了優(yōu)化慷妙,并提出「雙飛翼」布局。
2.圣杯布局:國外的前輩就提出了「圣杯」布局允悦,目的就是通過 css 的方式配合上面的 DOM 結(jié)構(gòu)膝擂,優(yōu)化 DOM 渲染。

優(yōu)點:如果我們希望中部 main 部分優(yōu)先顯示的話隙弛,是可以做布局優(yōu)化的架馋。因為瀏覽器渲染引擎在構(gòu)建和渲染渲染樹是異步的(誰先構(gòu)建好誰先顯示),那么將 <div class="main">main</div>部分提前即可優(yōu)先渲染全闷。

兩邊固定叉寂,中間自適應(yīng):這里給大家總結(jié)5中常用方法基本夠用

需求: 兩邊自適應(yīng),中間固定

效果圖


nihao.png
一室埋、box-flex

index.html

// style
<style>
    .app{
        margin: 0;
        padding: 0;
        display: -webkit-box;
    }
    .main{
        width: 800px;
        height: 200px;
        background-color: blueviolet; 
    }
    .left{
        height: 200px;
        background-color: aquamarine;
        -webkit-box-flex:1;
    }
    .right{
        height: 200px;
        background-color: aquamarine;
        -webkit-box-flex:1;
    }
</style>

//html
<body>
    <div class="app">
      <div class="left"></div>
      <div class="main"></div>
      <div class="right"></div>
    </div>
</body>

總結(jié): box-flex 屬性規(guī)定框的子元素是否可伸縮其尺寸办绝。提示:可伸縮元素能夠隨著框的縮小或擴(kuò)大而縮寫或放大。只要框中有多余的空間姚淆,可伸縮元素就會擴(kuò)展來填充這些空間孕蝉。

二、彈性布局(flex)

index.html

// style
<style>
    .app{
        margin: 0;
        padding: 0;
        display:flex;
        flex-direction:row;
    }
    .main{
        width: 800px;
        height: 200px;
        background-color: blueviolet; 
    }
    .left{
        flex-grow: 1;
        background-color: aquamarine;
    }
    .right{
        flex-grow: 1;
        background-color: aquamarine;
    }
</style>

// html
<body>
    <div class="app">
      <div class="left"></div>
      <div class="main"></div>
      <div class="right"></div>
    </div>
</body>

總結(jié):flex-grow 屬性定義項目的擴(kuò)大系數(shù)腌逢,用于分配容器的剩余空間降淮。(可以去看看flex-grow詳解)

三、calc()

index.html

// style
<style>
    .app{
        margin: 0;
        padding: 0;
        height:200px;
        width: 100%;
    }
    .main{
        float:left;
        width: 1000px;
        height: 200px;
        background-color: blueviolet; 
    }
    .left{
        float:left;
        height:100%;
        width: calc(50% - 500px);
        background-color: aquamarine;
    }
    .right{
        float:left;
        height:100%;
        width: calc(50% - 500px);
        background-color: aquamarine;
    }
</style>

// html
<body>
    <div class="app">
      <div class="left"></div>
      <div class="main"></div>
      <div class="right"></div>
    </div>
</body>

總結(jié):calc():用于動態(tài)計算長度值搏讶,值靈活佳鳖。css3新增功能(可以去看看calc()詳解)

兩邊自適應(yīng),中間固定:這里給大家總結(jié)3中常用方法基本夠用

感謝閱讀媒惕, 完系吩!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妒蔚,隨后出現(xiàn)的幾起案子穿挨,更是在濱河造成了極大的恐慌,老刑警劉巖肴盏,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件科盛,死亡現(xiàn)場離奇詭異,居然都是意外死亡菜皂,警方通過查閱死者的電腦和手機(jī)贞绵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恍飘,“玉大人榨崩,你說我怎么就攤上這事谴垫。” “怎么了蜡饵?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵弹渔,是天一觀的道長胳施。 經(jīng)常有香客問我溯祸,道長,這世上最難降的妖魔是什么舞肆? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任焦辅,我火速辦了婚禮,結(jié)果婚禮上椿胯,老公的妹妹穿的比我還像新娘筷登。我一直安慰自己,他們只是感情好哩盲,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布前方。 她就那樣靜靜地躺著,像睡著了一般廉油。 火紅的嫁衣襯著肌膚如雪惠险。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天抒线,我揣著相機(jī)與錄音班巩,去河邊找鬼。 笑死嘶炭,一個胖子當(dāng)著我的面吹牛抱慌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播眨猎,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抑进,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了睡陪?” 一聲冷哼從身側(cè)響起寺渗,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宝穗,沒想到半個月后户秤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡逮矛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年鸡号,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片须鼎。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鲸伴,死狀恐怖府蔗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情汞窗,我是刑警寧澤姓赤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站仲吏,受9級特大地震影響不铆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜裹唆,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一誓斥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧许帐,春花似錦劳坑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至循帐,卻和暖如春框仔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惧浴。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工存和, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人衷旅。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓捐腿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親柿顶。 傳聞我的和親對象是個殘疾皇子茄袖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

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