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

2022-09-24 11:18:09 字數 2016 閱讀 8751

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

一、box-flex屬性

box-flex主要讓子容器針對父容器的寬度按一定規則進行劃分。

css code複製內容到剪貼簿

注意:父容器必須定義為display:box,其子容器才可以進行劃分(如果定了display:box則該容器為內聯元素,使用margin:0 auto讓其居中在firefox下無效,需要通過父容器的text-align:center;來控制。但在chrome下是可以的)

上面所講到的例子中,三個子塊分別設定了1、2、2,也就是把這個父容器分成5份,分別佔據了父結構寬度的1/5(100px)、2/5(200px)、2/5(200px)。

以上是按比例數來進行劃分的,如果其中乙個或多個子容器設定了固定寬度,其它子容器沒有設定,那麼設定寬度的按寬度來算,剩下的部分再按上面的方法來計算。

css code複製內容到剪貼簿

當子容器中需要有間隔的時候,他們平分的寬度需要減去中間的margin,然後再按比例平分。

css code複製內容到剪貼簿

二、box屬性

上面講到的是如何將box-flex如何對父容器的寬度進行劃分,現在來說一下父容器裡面的box屬性包括哪些。

box-orient, box-direction, box-align, box-pack, box-lines

1、box-orient

box-orient用來確定父容器裡子容器的排列方式是水平還是垂直,可選屬性如下:

horizontal | vertical | inline-axis | block-axis | inherit

horizontal和inline-axis屬性其效果表現一致,都可以將容器水平排列,在預設情況下也呈現水平排列的樣式。當父容器設定高度時,在firefox下面其子容器的高度無效,但chroma下面則有效。

css code複製內容到剪貼簿

如果你容器不設定高度,子容器的高度值才生效,在firefox下面他們的高度取其中的最大值。而chrome下面設定高度程式設計客棧的子容器為自己的高度,未設定的其高度和最大值的高度一樣,其實就是和父容器的高度一致。

css code複製內容到剪貼簿

uzzrtt

vertical和block-axis屬性效果表現一致,都可將子容器垂直排列。他們是對父容器的高度進行分配。如果子容器設定了寬度,也是谷歌下面有效,火狐無效,其它都與horizontal表現一致。

2、box-direction

box-direction用來確定父容器裡面的子容器排列順序,具有以下屬性:

normal | reverse | inherit

normal是預設值,如上面測試結果。

reverse表示反轉,其表現方式跟normal相反,呈現為3、2、1

3、box-align

box-align表示父容器裡面子容器的垂直對齊方式,屬性值為:

start | end | center | baseline | stretch

start、baseline展示效果

end展示效果

center展示效果

stretch展示效果,(谷歌下面如start)

4、box-pack

box-pack表示父容器裡面子容器的水平對齊方式,可選引數如下所示:

start | end | center | justify

css**

css code複製內容到剪貼簿

start:在box-pack表示水平居左對齊,如下所示:

end:在box-pack表示水平居右對齊,如下圖所示

center:在box-pack表示水平居中對齊,如下圖所示

justify:在box-pack表示兩邊對齊試

本文標題: 例項講解css3中的box-flex彈性盒屬性布局

本文位址:

css3變形講解

transform變形 可以實現文字或者旋轉 縮放 傾斜和移動,並且該元素下的所有子元素都隨著父元素一樣。既然接觸到transform,我們就可以做好多3d的效果啦 旋 transform rotate 角度deg deg是css3的 values and units 模組中定義的乙個角度單位 縮放...

css3中的transform屬性講解

屬性如下 matrix 2d矩陣 translate 平移,第乙個引數為x軸,第二個引數為y軸,第二個引數預設為0 translatex x軸 水平方向 的平移 translatey y軸 垂直方向 的平移 rotate 2d旋轉 scale 2d伸縮。第乙個引數對應x軸,第二個引數對應y軸。第二個...

css3動畫例項

在 css3 中建立動畫,需要學習 keyframes 規則。keyframes 規則用於建立動畫。在 keyframes 中規定某項 css 樣式,就能建立由當前樣式逐漸改為新樣式的動畫效果。keyframes是定義動畫的 定義動畫的樣式 例 keyframes animatname 此動畫的名稱...