4. css弹性盒子模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4. css弹性盒子模型相关的知识,希望对你有一定的参考价值。

参考技术A

备注 :我们需要在不同设备的不同尺寸屏幕下去浏览网页,传统的网页布局方式很难满足响应式布局的需要。因此css3提出了一些全新的布局属性,包括: 弹性盒子模型 , 多列属性 , 响应式布局 等等。弹性盒子模型的最大特征在于动态修改子元素的宽度和高度,以满足在不同尺寸屏幕下的恰当布局。

说明 :盒子模型的内容范围包括内容(content)、内边距(padding)、边框(border)和外边距(margin)。盒子模型就是通过div和css样式来设计一个可以添加逻辑的效果。

备注 :内边距(padding)在 content 外,边框内。内边距有1个参数时,上下左右外边距都为该参数值;2个参数时,第一个参数为 上下 外边距值,第二个参数为 左右 外边距值;4个参数分别代表 上右下左 外边距值。

边框可以创造出效果出色的边框,并可以应用于任何元素。 基本的边框属性

简化写法

备注: border: 1px solid red; 三个参数分别为边框的宽度、样式和颜色属性。

css3提供的边框属性

eg1 :圆角边框的绘制

阴影属性(box-shadow)的4个参数分别代表:背景阴影 向右 移动10个像素,再 向下 移动20个像素;阴影 透明度 ;阴影 颜色 。

备注:围绕在内容边框的区域就是外边距(margin),外边距默认是透明区域,外边距接受任何长度单位和百分数值。外边距和内边距的属性比较相似。margin的参数个数和对应代表大含义和padding一致。

盒子模型示例

说明:最外层的div为容器层,之后为边框、内边距和内容区域。

说明:外边距合并就是一个叠加的概念。外边距合并遵循边距大的一方,即元素1的外边距为10px,元素2的外边距为20px,则元素1和元素2间的距离为20px;元素1的外边距为10px,元素2的外边距为10px,则元素1和元素2间的距离为10px。

(1) 弹性容器属性

(2) 弹性子元素属性

eg1

Flex弹性盒子布局

首先,设置伸缩盒的 display 有如下两个属性值:

flex:将容器盒模型作为块级弹性伸缩盒显示

inline-flex:将容器盒模型作为内联级弹性伸缩盒显示

代码如下:

/*大部分不需要前缀*/
div {
    display: flex;
}

弹性布局的八个常用属性:

1.flex-direction
flex-direction 属性和旧版本 box-orient 属性一样,都是设置伸缩项目的排列方式。代码如下:

/*设置从上往下排列*/
div {
    flex-direction: column;
}

row:设置从左到右排列

row-reverse:设置从右到左排列

column:设置从上到下排列

column-reverse:设置从下到上排列

2.flex-wrap
flex-wrap 属性类似与旧版本中的 box-lines,但是 box-lines 我们没有讲解,原因是没有浏览器支持它。代码如下:

/*设置无法容纳时,自动换行*/
div {
    -ms-flex-wrap: wrap;
}

nowrap :默认值,都在一行或一列显示

wrap:伸缩项目无法容纳时,自动换行

wrap-reverse:伸缩项目无法容纳时,自动换行,方向和 wrap 相反

3.flex-flow
flex-flow 属性是集合了排列方向和控制换行的简写形式。代码如下:

/*简写形式*/
div {
    flex-flow: row wrap;
}

4.justify-content
justify-content 属性和旧版本中的 box-pack 一样,设置伸缩项目的对其方式。代码如下:

/*按照中心点对齐*/
div {
    justify-content: space-around;
}

flex-start:伸缩项目以起始点靠齐

flex-end:伸缩项目以结束点靠齐

center:伸缩项目以中心点靠齐

space-between :伸缩项目平局分布

space-around:同上,但两端保留一半的空间

5.align-items
align-items 属性和旧版本中的 box-align 一样,处理伸缩项目容器的额外空间。

/*处理额外空间*/
div {
    align-itmes: center;
}

flex-start:伸缩项目以顶部为基准,清理下部额外空间

flex-end:伸缩项目以底部为基准,清理上部额外空间

center:伸缩项目以中部为基准,平均清理上下部额外空间

baseline:伸缩项目以基线为基准,清理额外的空间

stretch:伸缩项目填充整个容器,默认

6.align-self
align-self 和 align-items 一样,都是清理额外空间,但它是单独设置某一个伸缩项目的。所有的值和 align-itmes 一致。代码如下:

/*单独设置清理额外空间*/
p:nth-child(2) {
    align-self: center;
}

7.flex
flex 属性和旧版本中的 box-flex 类似,用来控制伸缩容器的比例分配。

/*设置比例分配*/
p:nth-child(1) {
    flex: 1;
}
p:nth-child(2) {
    flex: 3;
}
p:nth-child(3) {
    flex: 1;
}

8.order
order 属性和 box-ordinal-group 属性一样控制伸缩项目出现的顺序。

/*设置伸缩项目顺序*/
p:nth-child(1) {
    order: 2;
}
p:nth-child(2) {
    order: 3;
}
p:nth-child(3) {
    order: 1;
}

 

以上是关于4. css弹性盒子模型的主要内容,如果未能解决你的问题,请参考以下文章

CSS3--Flex弹性盒子布局:使用弹性盒子模型布局微信客户端

[ css 弹性盒子模型 box-flex 及相关属性 ] box-flex属性弹性盒子模型讲解及实例演示

CSS 零基础到实战(05)布局盒子模型弹性盒子前端就业课 第二阶段

flex-direction css3属性设定弹性盒子模型子元素反向排列

css弹性布局是啥

CSS 零基础到实战(05)布局盒子模型弹性盒子前端就业课 第二阶段