CSS3 彈性盒模型與流式布局

2021-06-06 01:48:27 字數 1344 閱讀 7843

這是乙個常見的頁面布局,header→body→footer,中間body包含兩到三列,重要內容放置在html靠前位置,優先載入,html**如下:

main

aside

sub footer

如果使用傳統的css來實現,比較麻煩,得使用float,margin負值,但是採用css3乙個新增屬性——display:box後,一切問題,迎刃而解。我們先看相關文件(

飄零霧雨 css3手冊

):實現的css**,左右定寬,中間自適應的流式布局,html、css**量極少。

header

article

footer

article

.aside

.main

.sub

box-flex:,number為任意數字,預設為0。意思為子元素按照父元素剩餘空間分配比例,number即為比例數。兩個aside的寬度分別為150px、200px,article剩餘空間分配給main,如果article寬設為100%,即為流式布局。

box-ordinal-group:,元素按number值顯示,數值較低的元素顯示在數值較高的元素前面。本來頁面載入順序是【main】→【aside】→【sub】,我們把這3個的box-ordinal-group值分別設為1-0-2,這樣就讓aside在main左邊顯示了。

最後,我們看下傳統做法是怎樣的。

html**:

header

main

side

sub footer

css**:

.old_method

.hd.bd

.ft.bd

.bd_side

.bd_main

.bd_main .main_content

.bd_sub

通過margin負值把side拉到左邊,sub拉上右邊;

margin-bottom

:-3000px

;padding-bottom

:3000px

;使兩邊同高,效果圖如下:

完整**如下:

main

aside

sub footer

header 不用css3的方法

main

side

sub footer

CSS3與彈性盒布局

在規定彈性盒子之中的子級元素換行顯示之前父級元素必須是彈性盒子模型,也就是設定 display 為 flex 如下 結果 flex wrap wrap 彈性容器為多行。該情況下彈性子項溢位的部分會被放置到新行,子項內部會發生斷行。結果 從上面的結果來看雖然子元素換行顯示了但是布局效果並不是很好,好的...

CSS3彈性盒布局

使用自適應的視窗彈性盒布局 可以使div總寬度等於瀏覽器寬度,而且可以隨著瀏覽器的改變而改變。12 zh cn 33536 container 37 left sidebar 示例文字,頁面中比較長的示例文字。示例文字,頁面中比較長的示例文字。示例文字,頁面中比較長的示例文字。示例文字,頁面中比較長...

CSS3彈性盒布局

使用自適應的視窗彈性盒布局 可以使div總寬度等於瀏覽器寬度,而且可以隨著瀏覽器的改變而改變。1 2 335 36 37 示例文字,頁面中比較長的示例文字。示例文字,頁面中比較長的示例文字。示例文字,頁面中比較長的示例文字。示例文字,頁面中比較長的示例文字。示例文字,頁面中比較長的示例文字。38 示...