左邊定寬,右邊自適應布局的幾種方法


實際的頁面開發中經常會遇到左邊定寬,右邊自適應的需求,特別是一些管理系統,比如左邊顯示信息或操作列表,右邊顯示詳情,如下所示:、

 

 針對這種布局,首先抽象出頁面結構如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style>
 7         * {
 8             padding: 0;
 9             margin: 0;
10             color: #fff;
11             font-size: 30px;
12             font-weight: bold;
13             text-align: center;
14             box-sizing: border-box;
15         }
16         aside {
17             width: 200px;
18             height: 200px;
19             padding-top: 75px;
20             background: #5A6A94;
21         }
22         section {
23             height: 200px;
24             padding-top: 75px;
25             background: #BE4F4F;
26         }
27     </style>
28 </head>
29 <body>
30     <!-- 左邊定寬 -->
31     <aside class="left">Left</aside>
32     <!-- 右邊自適應 -->
33     <section class="right">Right</section>
34 </body>
35 </html>

 

瀏覽器中效果:

 

需要實現的效果如下:

 

那么針對這種常見的布局,方式是非常多的,下面給出幾種比較簡單和常見的方法。

 

方法一:左邊設置左浮動,右邊寬度設置100%

【分析】這樣的方式簡單得讓我懷疑,但是效果上確實是實現了。

 

方法二: 父容器設置 display:flex;Right部分設置 flex:1 

【分析】display:flex; 設置為彈性盒子,其子元素可以通過設置 flex 的數值來控制所占空間的比例。

 

方法三設置浮動 + 在 css 中使用 calc() 函數

【分析】

1. 浮動。(注意:為了不影響其他元素,別忘了在父級上清除浮動)

2. calc() = calc(四則運算) 用於在 css 中動態計算長度值,需要注意的是,運算符前后都需要保留一個空格,例如:width: calc(100% - 10px)

3. vw viewport width。1vw = viewport 寬度的 1%, 100vw = viewport width,

同樣的還有 vh: viewport height。1vw = viewport 高度的 1%, 100vh = viewport height。

瀏覽器支持情況: 主流瀏覽器、IE10+ 

vw 和 vh 會隨着viewport 的變化而變化,因此十分適合於自適應場景來使用。

 

方法四:使用負margin

首先修改頁面結構,為自適應部分添加容器 .container, 同時改變左右部分的位置,如下:

 

設置樣式:

【分析】

1. 首先設置左邊部分和右邊部分左浮動,並為自適應部分(Right)設置寬度100%。此時的效果是這樣的:

2. 設置左邊部分左外邊距為負100%,此時效果如下:

但是右邊部分的寬度仍然為100%,部分內容被 Left 所覆蓋。

3. 為 Right 部分添加左邊距(即 Left 部分的寬度)

此時可以看到,Right 部分的內容居中顯示了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM