實現兩列布局的方法

html

<div class="main">
    <div class="left">left</div>
    <div class="right">right</div>
</div>

1. float+margin-left

.main{
 border: 1px solid black;
  overflow: hidden;//清除浮動
}
.left{
  width: 200px;
  background: green;
  float: left;
  
}
.right{
  margin-left: 200px;
  background: red;
}

left設為float: left,脫離文檔流。right是塊級元素會"無視"浮動元素,它的寬度隨著適應父元素的寬度,此時margin-left為left元素的寬度。

2. absolute+margin-left

.main{
 border: 1px solid black;
  
}
.left{
  width: 200px;
  background: green;
  position: absolute;
}
.right{
  margin-left: 200px;
  background: red;
}

另外一種讓兩個block排列到一起的方法是對左側盒子使用position: absolute的絕對定位。這樣,右側盒子也能無視掉它

3. 浮動和負邊距實現

html

<div class="main">
    <!--右邊盒子先渲染-->
    <div class="right">
        <div class="right-inner">right-inner</div>
    </div>
    <div class="left">left</div>
</div>

css

.main {
            border: 1px solid black;
        }

        .left {
            float: left;
            width: 200px;
            background: green;
            margin-left: -100%;
        }

        .right {
            float: left;
            width: 100%;
        }

        .right-inner {
            margin-left: 200px;
            background: yellow;
        }

可以不用指定左邊寬度(即不用計算)的方法有:

4. flex

.main{
 border: 1px solid black;
 display: flex;
}
.left{
  width: 100px;
  background: green;
}
.right{
  background: red;
  flex: 1;
}

只須將右邊盒子flex:1,意為寬度自動伸縮

5. float+BFC

.main{
 border: 1px solid black;
overflow: auto;
}
.left{
  float: left;
  background: green;
  margin-right: 20px;
}
.right{
  background: red;
  overflow: hidden;
}

由于觸發了BFC的元素不會與浮動元素重疊這條特性,這種情況下,只需要為左側的浮動盒子設置margin-right,就可以實現兩個盒子的距離了。而右側盒子是block級別的,所以寬度能實現自適應

鏈接

https://zhuqingguang.github.io/2017/08/16/adapting-two-layout/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,806評論 1 92
  • 以下文章是我在網上收集的內容,為了記錄自己的學習以及為了以后不到處找而記錄下來,如果對你有用,請感謝寫這些文章的前...
    DCbryant閱讀 953評論 0 2
  • 雙飛翼布局和BFC 之前看到了一些面試題中,面試官會問到如果實現雙飛翼布局或者是圣杯布局,這兩個布局的理念基本是類...
    LucasDog閱讀 1,075評論 0 4
  • 新晉制片人佟蔓薇攜國產影片再沖海外電影節~繼電影《七十七天》在中美電影節斬獲殊榮之后,另一部由佟蔓薇擔任制片人...
    藝術資訊1閱讀 909評論 1 0
  • 選課,備課,做課件,終于要錄課了。 期間的思考琢磨修改,就不啰嗦了,一句話——40分鐘的一堂課,臺下400分鐘的準...
    羽衣甘蘭閱讀 341評論 2 0