css3 box flex 彈性盒模型的應用

2021-06-20 14:22:52 字數 1430 閱讀 5565

我們經常會遇到的,在各種選項卡上,要求選項卡標籤是等寬,並平均分配父容器的寬度。

這個時候,通常我們使用百分比來設定各選項卡的寬度。

但是,你會遇到各種不同數量的選項卡,你只能分別為這些選項卡設定不同的百分比寬度,還要為3、6、7 這樣不能被100整除的數量的選項卡做特殊的設定。

而使用 css3 box-flex 就會很簡單:將父容器設定為 display: -webkit-box,然後給子容器設定乙個寬度,比如 width:0,並設定 -webkit-box-flex: 1,那麼它們將平均分配父容器的寬度

經測試,box-flex 對表單元素元素無效,此時,你可以在表單元素外新增乙個標籤,然後將設定表單元素的尺寸為 100%。

有了 box-flex,在大部分使用 float 的場景,你可以不再使用以下屬性:

float

margin

vertical-align

width: 50%...

我們來看一下 display 為 box 的容器內的子物件除了 box-flex 外還可以使用的好東西(從網上搜刮而來):

box-orient

box-orient用來確定子元素的方向。是橫著排還是豎著走。可選的值有:

horizontal | vertical | inline-axis(預設) | block-axis | inherit

box-direction

box-direction是用來確定子元素的排列順序,可選值有:

normal(預設) | reverse | inherit

box-align

box-align決定了垂直方向上的空間利用,也就是垂直方向上的對齊表現。為了便於記憶,我們可以拿來和css2中的vertical-align隱射記憶,兩者都有」align」,都是都是垂直方向的對齊;而剩下的box-pack就是水平方向的了。

box的可選引數有:

start | end | center | baseline | stretch(預設)

box-pack

box-pack決定了父標籤水平遺留空間的使用,其可選值有:

start(預設) | end | center | justify

box-lines

box-lines是用來決定子元素是可以換行顯示呢?還是就算擠出油還是單行顯示。兩個可選值:

single | multiple

其中single是預設值,表示死活不換行

子元素除了box-flex屬性,還有兩個屬性,box-flex-group和box-ordinal-group,其中box-flex- group的作用不詳,貌似目前瀏覽器也不支援;box-ordinal-group的作用是拉幫結派;拉攏的組織團夥是有乙個數字級別的,決定了你這個組織的位置。

困擾我們多年的等高布局、垂直居中、左右對齊、尺寸和間距分配……

另外說句,好些功能其實**早就實現了

CSS3彈性盒模型之box flex

對於之前講過的box sizing屬性,對於頁面布局很有用,但是突然發現它依然存在一些問題,前面例子中不會存在問題,不代表它沒有問題。如果元素的個數整除100 的時候呢,比較3個元素,那麼第乙個盒子的寬度就會是33.3333333 很顯然,無論如何都是除不盡的,也就是說不可能平均分配。這顯然是不完美...

例項講解CSS3中的box flex彈性盒屬性布局

box flex是css3新新增的盒子模型屬性,它的出現打破了我們經常使用的浮動布局,實現垂直等高 水平均分 按比例劃分。但是它有一定的侷限性,在firefox chrome這瀏覽器下需要使用它們的私有屬性來定義 firefox moz chrome webkit 一 box flex屬性 box ...

css3 彈性盒模型

1.box flex 定義盒子的彈性空間 子元素的尺寸 盒子的尺寸 子元素的box flex屬性值 所有子元素的box flex屬性值的和 例題 中間寬度固定,兩側寬度自適應 box div nth of type 1 box div nth of type 2 box div nth of typ...