學(xué)習(xí)隨筆 css布局 兩固定中間自適應(yīng)實現(xiàn)方法

> 在前端的面試中經(jīng)常被問到 請寫出一個兩邊固定中間自適應(yīng)的方法實現(xiàn)

> 廢話不多說直接上代碼

> 首先寫好默認(rèn)樣式

```javascript

? html *{

? ? ? ? padding: 0;

? ? ? ? margin: 0;

? ? ? }

? ? ? .layout article div{

? ? ? ? min-height: 100px;

? ? ? }

```

###### 利用float浮動實現(xiàn) ######

```javascript

<!--浮動布局? -->

? ? <section class="layout float">

? ? ? <style media="screen">

? ? ? .layout.float .left{

? ? ? ? float:left;

? ? ? ? width:300px;

? ? ? ? background: red;

? ? ? }

? ? ? .layout.float .center{

? ? ? ? background: yellow;

? ? ? }

? ? ? .layout.float .right{

? ? ? ? float:right;

? ? ? ? width:300px;

? ? ? ? background: blue;

? ? ? }

? ? ? </style>

? ? ? <h1>三欄布局</h1>

? ? ? <article class="left-right-center">

? ? ? ? <div class="left"></div>

? ? ? ? <div class="right"></div>

? ? ? ? <div class="center">

? ? ? ? ? <h2>浮動解決方案</h2>

? ? ? ? ? 1.這是三欄布局的浮動解決方案;

? ? ? ? ? 2.這是三欄布局的浮動解決方案;

? ? ? ? ? 3.這是三欄布局的浮動解決方案;

? ? ? ? ? 4.這是三欄布局的浮動解決方案;

? ? ? ? ? 5.這是三欄布局的浮動解決方案;

? ? ? ? ? 6.這是三欄布局的浮動解決方案;

? ? ? ? </div>

? ? ? </article>

? ? </section>

```

###### 使用相對定位實現(xiàn) ######

```javascript

<section class="layout absolute">

? ? ? <style>

? ? ? ? .layout.absolute .left-center-right>div{

? ? ? ? ? position: absolute;

? ? ? ? }

? ? ? ? .layout.absolute .left{

? ? ? ? ? left:0;

? ? ? ? ? width: 300px;

? ? ? ? ? background: red;

? ? ? ? }

? ? ? ? .layout.absolute .center{

? ? ? ? ? left: 300px;

? ? ? ? ? right: 300px;

? ? ? ? ? background: yellow;

? ? ? ? }

? ? ? ? .layout.absolute .right{

? ? ? ? ? right:0;

? ? ? ? ? width: 300px;

? ? ? ? ? background: blue;

? ? ? ? }

? ? ? </style>

? ? ? <h1>三欄布局</h1>

? ? ? <article class="left-center-right">

? ? ? ? <div class="left"></div>

? ? ? ? <div class="center">

? ? ? ? ? <h2>絕對定位解決方案</h2>

? ? ? ? ? 1.這是三欄布局的浮動解決方案;

? ? ? ? ? 2.這是三欄布局的浮動解決方案;

? ? ? ? ? 3.這是三欄布局的浮動解決方案;

? ? ? ? ? 4.這是三欄布局的浮動解決方案;

? ? ? ? ? 5.這是三欄布局的浮動解決方案;

? ? ? ? ? 6.這是三欄布局的浮動解決方案;

? ? ? ? </div>

? ? ? ? <div class="right"></div>

? ? ? </article>

? ? </section>

```

###### 利用flexbox實現(xiàn) ######

```javascript

<!-- flexbox布局 -->

? ? <section class="layout flexbox">

? ? ? <style>

? ? ? ? .layout.flexbox{

? ? ? ? ? margin-top: 110px;

? ? ? ? }

? ? ? ? .layout.flexbox .left-center-right{

? ? ? ? ? display: flex;

? ? ? ? }

? ? ? ? .layout.flexbox .left{

? ? ? ? ? width: 300px;

? ? ? ? ? background: red;

? ? ? ? }

? ? ? ? .layout.flexbox .center{

? ? ? ? ? flex:1;

? ? ? ? ? background: yellow;

? ? ? ? }

? ? ? ? .layout.flexbox .right{

? ? ? ? ? width: 300px;

? ? ? ? ? background: blue;

? ? ? ? }

? ? ? </style>

? ? ? <h1>三欄布局</h1>

? ? ? <article class="left-center-right">

? ? ? ? <div class="left"></div>

? ? ? ? <div class="center">

? ? ? ? ? <h2>flexbox解決方案</h2>

? ? ? ? ? 1.這是三欄布局的浮動解決方案;

? ? ? ? ? 2.這是三欄布局的浮動解決方案;

? ? ? ? ? 3.這是三欄布局的浮動解決方案;

? ? ? ? ? 4.這是三欄布局的浮動解決方案;

? ? ? ? ? 5.這是三欄布局的浮動解決方案;

? ? ? ? ? 6.這是三欄布局的浮動解決方案;

? ? ? ? </div>

? ? ? ? <div class="right"></div>

? ? ? </article>

? ? </section>

```

###### 利用display:table實現(xiàn) #####

```javascript

<!-- 表格布局 -->

? ? <section class="layout table">

? ? ? <style>

? ? ? ? .layout.table .left-center-right{

? ? ? ? ? width:100%;

? ? ? ? ? height: 100px;

? ? ? ? ? display: table;

? ? ? ? }

? ? ? ? .layout.table .left-center-right>div{

? ? ? ? ? display: table-cell;

? ? ? ? }

? ? ? ? .layout.table .left{

? ? ? ? ? width: 300px;

? ? ? ? ? background: red;

? ? ? ? }

? ? ? ? .layout.table .center{

? ? ? ? ? background: yellow;

? ? ? ? }

? ? ? ? .layout.table .right{

? ? ? ? ? width: 300px;

? ? ? ? ? background: blue;

? ? ? ? }

? ? ? </style>

? ? ? <h1>三欄布局</h1>

? ? ? <article class="left-center-right">

? ? ? ? <div class="left"></div>

? ? ? ? <div class="center">

? ? ? ? ? <h2>表格布局解決方案</h2>

? ? ? ? ? 1.這是三欄布局的浮動解決方案;

? ? ? ? ? 2.這是三欄布局的浮動解決方案;

? ? ? ? ? 3.這是三欄布局的浮動解決方案;

? ? ? ? ? 4.這是三欄布局的浮動解決方案;

? ? ? ? ? 5.這是三欄布局的浮動解決方案;

? ? ? ? ? 6.這是三欄布局的浮動解決方案;

? ? ? ? </div>

? ? ? ? <div class="right"></div>

? ? ? </article>

? ? </section>

```

###### 利用css3 display:grid實現(xiàn)(網(wǎng)格布局) #####

```javascript

<!-- 網(wǎng)格布局 -->

? ? <section class="layout grid">

? ? ? <style>

? ? ? ? .layout.grid .left-center-right{

? ? ? ? ? width:100%;

? ? ? ? ? display: grid;

? ? ? ? ? grid-template-rows: 100px;

? ? ? ? ? grid-template-columns: 300px auto 300px;

? ? ? ? }

? ? ? ? .layout.grid .left-center-right>div{

? ? ? ? }

? ? ? ? .layout.grid .left{

? ? ? ? ? width: 300px;

? ? ? ? ? background: red;

? ? ? ? }

? ? ? ? .layout.grid .center{

? ? ? ? ? background: yellow;

? ? ? ? }

? ? ? ? .layout.grid .right{

? ? ? ? ? background: blue;

? ? ? ? }

? ? ? </style>

? ? ? <h1>三欄布局</h1>

? ? ? <article class="left-center-right">

? ? ? ? <div class="left"></div>

? ? ? ? <div class="center">

? ? ? ? ? <h2>網(wǎng)格布局解決方案</h2>

? ? ? ? ? 1.這是三欄布局的浮動解決方案;

? ? ? ? ? 2.這是三欄布局的浮動解決方案;

? ? ? ? ? 3.這是三欄布局的浮動解決方案;

? ? ? ? ? 4.這是三欄布局的浮動解決方案;

? ? ? ? ? 5.這是三欄布局的浮動解決方案;

? ? ? ? ? 6.這是三欄布局的浮動解決方案;

? ? ? ? </div>

? ? ? ? <div class="right"></div>

? ? ? </article>

? ? </section>

```

* 以上是我所了解接觸到的最常見的方法及實現(xiàn)有其他方案可以在評論區(qū)提供哦

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前面學(xué)習(xí)了使用HTML為網(wǎng)頁添加內(nèi)容,要對所添加的內(nèi)容進行布局,就需要使用到CSS,JS等,這里就記錄一下自己關(guān)于...
    wxyzcctn閱讀 631評論 0 3
  • 1張I便簽,關(guān)于如何快速獲得信任感? 要想快速獲得對方的信任感,需要了解對方的情況,做到對癥下藥。下文中是給出通過...
    0大夢0閱讀 197評論 0 0
  • 像有一雙無形的大手,推著我們向前進?!}記 這幾天我一直處于悶聲不語狀態(tài),我天真地以為,時間可以如空氣,只要你不...
    楊榆閱讀 373評論 0 1
  • 兒子,首先,對你得到24點擂主表示祝賀。 回想起來,應(yīng)該差不多從寒假開始,我們一家三口陸陸續(xù)續(xù)地在玩24點,用紙牌...
    何豆子閱讀 860評論 0 0
  • 明天資格復(fù)審?fù)晔潞螅鸵M入面試的準(zhǔn)備工作了,看時間安排,滿打滿算也就一個月的時間,對于面試四道題而言,是遠遠不夠...
    阿_方閱讀 128評論 0 0

友情鏈接更多精彩內(nèi)容