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

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

 

 針對這種佈局,首先抽象出頁面結構以下:html

 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>

 

瀏覽器中效果:瀏覽器

 

須要實現的效果以下:ide

 

那麼針對這種常見的佈局,方式是很是多的,下面給出幾種比較簡單和常見的方法。函數

 

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

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

 

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

【分析】display:flex; 設置爲彈性盒子,其子元素能夠經過設置 flex 的數值來控制所佔空間的比例。3d

 

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

【分析】

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 部分的內容居中顯示了。

相關文章
相關標籤/搜索