音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

实例讲解CSS3中的box-flex弹性盒属性布局
日期:2021-09-08 12:37:26   来源:脚本之家

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

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

CSS Code复制内容到剪贴板
  1. <div class="box">   
  2.  <div class="col_1">111</div>   
  3.  <div class="col_2">222</div>   
  4.  <div class="col_3">333</div>   
  5. </div>   
  6. <style type="text/css">   
  7. .box {   
  8.  display:box;   
  9.  display:-webkit-box;   
  10.  display:-moz-box;   
  11.  background-color:#fff;   
  12.  width:500px;   
  13.  height:100px;   
  14.  border:1px solid #333;   
  15.  margin:0 auto;   
  16. }   
  17. .col_1 {   
  18.  box-flex:1;   
  19.  -moz-box-flex:1;   
  20.  -webkit-box-flex:1;   
  21.  background-color:#ffc;   
  22. }   
  23. .col_2 {   
  24.  background-color:#ccf;   
  25.  box-flex:2;   
  26.  -moz-box-flex:2;   
  27.  -webkit-box-flex:2;   
  28. }   
  29. .col_3 {   
  30.  background-color:#fcf;   
  31.  box-flex:2;   
  32.  -moz-box-flex:2;   
  33.  -webkit-box-flex:2;   
  34. }   
  35. </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)。
以上是按比例数来进行划分的,如果其中一个或多个子容器设置了固定宽度,其它子容器没有设置,那么设置宽度的按宽度来算,剩下的部分再按上面的方法来计算。

CSS Code复制内容到剪贴板
  1. .col_3 {   
  2.  background-color:#fcf;   
  3.  width:50px;/*设置宽度为50px*/  
  4. }  

201669113657401.jpg (517×115)

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

CSS Code复制内容到剪贴板
  1. .col_2 {   
  2.  background-color:#ccf;   
  3.  box-flex:2;   
  4.  -moz-box-flex:2;   
  5.  -webkit-box-flex:2;   
  6.  margin:0 20px;   
  7. }  

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

CSS Code复制内容到剪贴板
  1. .col_1 {   
  2.  height:50px;   
  3. }   
  4. .col_2 {   
  5.  height:80px;   
  6. }  

201669113803283.jpg (519×116)

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

CSS Code复制内容到剪贴板
  1. .box {   
  2.  /*未设置高度*/  
  3. }   
  4. .col_1 {   
  5.  height:50px;   
  6. }   
  7. .col_2 {   
  8.  height:80px;   
  9. }   
  10. .col_3 {   
  11.  /*未设置高度*/  
  12. }  

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代码

CSS Code复制内容到剪贴板
  1. .box {   
  2.  display:box;   
  3.  display:-webkit-box;   
  4.  display:-moz-box;   
  5.  background-color:#fff;   
  6.  width:500px;   
  7.  border:1px solid #333;   
  8.  margin:0 auto;   
  9.  height:100px;   
  10.  -webkit-box-pack:start;   
  11.  -moz-box-pack:start;   
  12.  box-pack:start;   
  13. }   
  14. .col_1,.col_2,.col_3{   
  15.  width:100px;   
  16. }  

start:在box-pack表示水平居左对齐,如下所示:
201669114205803.jpg (516×113)

end:在box-pack表示水平居右对齐,如下图所示
201669114227915.jpg (518×117)

center:在box-pack表示水平居中对齐,如下图所示
201669114251271.jpg (518×115)

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

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    教程标签
    HTMLCSSDreamweaverFrontpage