广告位联系
返回顶部
分享到

CSS3中的box-flex弹性盒属性布局介绍

css 来源:互联网 作者:佚名 发布时间:2023-06-27 21:58:14 人浏览
摘要

box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的局限性,在firefox、chrome这浏览器下需要使用它们

box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的局限性,在firefox、chrome这浏览器下需要使用它们的私有属性来定义:firefox(-moz)、chrome(-webkit)。

一、box-flex属性

box-flex主要让子容器针对父容器的宽度按一定规则进行划分。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<div class="box">   

 <div class="col_1">111</div>   

 <div class="col_2">222</div>   

 <div class="col_3">333</div>   

</div>   

<style type="text/css">   

.box {   

 display:box;   

 display:-webkit-box;   

 display:-moz-box;   

 background-color:#fff;   

 width:500px;   

 height:100px;   

 border:1px solid #333;   

 margin:0 auto;   

}   

.col_1 {   

 box-flex:1;   

 -moz-box-flex:1;   

 -webkit-box-flex:1;   

 background-color:#ffc;   

}   

.col_2 {   

 background-color:#ccf;   

 box-flex:2;   

 -moz-box-flex:2;   

 -webkit-box-flex:2;   

}   

.col_3 {   

 background-color:#fcf;   

 box-flex:2;   

 -moz-box-flex:2;   

 -webkit-box-flex:2;   

}   

</style>  

201669113611192.jpg (515×114)

注意:

父容器必须定义为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)。
以上是按比例数来进行划分的,如果其中一个或多个子容器设置了固定宽度,其它子容器没有设置,那么设置宽度的按宽度来算,剩下的部分再按上面的方法来计算。

1

2

3

4

.col_3 {   

 background-color:#fcf;   

 width:50px;/*设置宽度为50px*/  

201669113657401.jpg (517×115)

当子容器中需要有间隔的时候,他们平分的宽度需要减去中间的margin,然后再按比例平分。

1

2

3

4

5

6

7

.col_2 {   

 background-color:#ccf;   

 box-flex:2;   

 -moz-box-flex:2;   

 -webkit-box-flex:2;   

 margin:0 20px;   

}  

201669113719197.jpg (519×114)

二、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下面其子容器的高度无效,但chrome下面则有效。

1

2

3

4

5

6

.col_1 {  

 height:50px;  

}  

.col_2 {  

 height:80px;  

}

201669113803283.jpg (519×116)

如果你容器不设置高度,子容器的高度值才生效,在firefox下面他们的高度取其中的最大值。而chrome下面设置高度的子容器为自己的高度,未设置的其高度和最大值的高度一样,其实就是和父容器的高度一致。

1

2

3

4

5

6

7

8

9

10

11

12

.box {   

 /*未设置高度*/  

}   

.col_1 {   

 height:50px;   

}   

.col_2 {   

 height:80px;   

}   

.col_3 {   

 /*未设置高度*/  

}  

201669113829855.jpg (517×119)201669113843727.jpg (519×114)

vertical和block-axis属性效果表现一致,都可将子容器垂直排列。他们是对父容器的高度进行分配。如果子容器设置了宽度,也是谷歌下面有效,火狐无效,其它都与horizontal表现一致。

201669113904619.jpg (517×138)201669113926651.jpg (521×133)

2、box-direction

box-direction用来确定父容器里面的子容器排列顺序,具有以下属性:
normal | reverse | inherit
normal是默认值,如上面测试结果。
reverse表示反转,其表现方式跟normal相反,呈现为3、2、1
201669113951921.jpg (520×120)

3、box-align

box-align表示父容器里面子容器的垂直对齐方式,属性值为:
start | end | center | baseline | stretch
start、baseline展示效果
201669114009719.jpg (528×114)

end展示效果
201669114037531.jpg (524×120)

center展示效果
201669114053675.jpg (520×113)

stretch展示效果,(谷歌下面如start)
201669114126922.jpg (519×119)

4、box-pack

box-pack表示父容器里面子容器的水平对齐方式,可选参数如下所示:
start | end | center | justify

css代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

.box {   

 display:box;   

 display:-webkit-box;   

 display:-moz-box;   

 background-color:#fff;   

 width:500px;   

 border:1px solid #333;   

 margin:0 auto;   

 height:100px;   

 -webkit-box-pack:start;   

 -moz-box-pack:start;   

 box-pack:start;   

}   

.col_1,.col_2,.col_3{   

 width:100px;   

}  

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

201669114205803.jpg (516×113)

end:在box-pack表示水平居右对齐,如下图所示

201669114227915.jpg (518×117)

center:在box-pack表示水平居中对齐,如下图所示

201669114251271.jpg (518×115)

justify:在box-pack表示两边对齐试


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • CSS颜色混合的五种实现方式介绍
    如果出现一种颜色就定义一个变量,每次都要维护多个颜色变量太麻烦了。有没有办法只用一个颜色呢?在这里也就是,如何将一个颜色变
  • CSS3中的box-flex弹性盒属性布局介绍
    box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的局
  • JS/CSS压缩工具(YUI Compressor)使用方法

    JS/CSS压缩工具(YUI Compressor)使用方法
    YUI Compressor 是一个用来压缩 JS 和 CSS 文件的工具,采用Java开发。方便快捷,压缩后的代码文件体积小,有效率高,当然市面上不乏有很多压
  • CSS中的z-index属性介绍
    本文主要是对z-index属性进行详细的讲解,包括其使用场景、属性效果、适用范围等等。本博客的所有代码执行的浏览器环境,都是以Chrome浏
  • CSS中的hover属性使用方法介绍
    css 的 hover 属性是一种伪类选择器,它可以用来在鼠标悬停在某个元素上时改变该元素或其子元素、同级元素、相邻元素的样式 。hover 属性
  • CSS中外边距塌陷的八种解决方法
    margin-top塌陷是在CSS的盒子模型中出现的一种现象,描述的是当父元素包裹着一个子元素的时候,当给子元素设置margin-top属性时,此时只是想
  • 什么是clearfix (一文搞清楚css清除浮动clearfix)
    clearfix 是一种 CSS 技巧,可以在不添加新的 html 标签的前提下,解决让父元素包含浮动的子元素的问题。这个技巧的版本是很多的,最流行的
  • 如何利用css var函数让你的组件样式输出规范样式
    我们平时在使用Elementui Antdesing这些UI库时,难免会碰到使用deep强行侵入式去修改组件内部样式的情况;比如下列代码,我们需要把ant的分页
  • 纯CSS实现了下划线的交互动画效果

    纯CSS实现了下划线的交互动画效果
    最近看到了一个特别炫酷的网站上的一个小细节,下划线的动画。看下他的实现效果。 但是,假如我们左边并没有足够的空间存放一条不可
  • css动画实现节流的代码
    1、节流原理 如果持续触发事件,每隔一段时间只执行一次函数。意思就是针对调用频率高的函数,通过设置延时,使其在执行后间隔一段时
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计