应用地址:http://www.jb51.net/css/467291.html

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>

注意: 父容器必须定义为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. }

当子容器中需要有间隔的时候,他们平分的宽度需要减去中间的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. }

二、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. }

如果你容器不设置高度,子容器的高度值才生效,在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. }

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复制内容到剪贴板
  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表示水平居左对齐,如下所示:

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

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

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

css3 box-flex的更多相关文章

  1. CSS3 display:flex和display:box有什么区别?

    **区别**,仅是各阶段草案命名.- W3C 2009年第1次草案:[display:box;](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723 ...

  2. 使用css3的Flex布局实现列表展示

    实现效果图如下: 通过css3样式实现(部分代码): .box { display: flex; flex-wrap:wrap; justify-content:space-between; alig ...

  3. CSS3的flex布局

    flex的一些属性 CSS3中引入了另一种框--flexbox,flexbox有一些block和inline不同的性质,比如: 自适应子元素(flex item,又称伸缩项目)的宽度 伸缩项目的flo ...

  4. 浅谈 css3 box盒子模型以及box-flex的使用

    display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂直等高.水平均分.按比例划分.   一.使 ...

  5. box flex 弹性盒模型(转载)

    css3引入了新的盒模型——弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及如何处理可用的空间.这与XUL(火狐使用的用户交互语言)相似,其它语言也使用相同的盒模型,如XAML .GladeX ...

  6. 彻底弄懂css3的flex弹性盒模型

    由于在日常工作中使用css或者bootstrap的栅格系统已经能很好的满足业务需求,所以一直以来对css3的弹性布局不是很感冒. 近日有幸在一篇文章中领略了flex的魅力--简洁优雅.随试之. /*容 ...

  7. 第103天:CSS3中Flex布局(伸缩布局)详解

    一.Flex布局 Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{ display: flex; } 行 ...

  8. css3 box

    一.box-shadow介绍 box-shadow属性向box添加一个或多个阴影. 语法: box-shadow: offset-x offset-y blur spread color inset; ...

  9. CSS3:flex布局应用

    想把先前的整理的东西贴出来,怎奈总是有额外事情发生,额,教训电脑要离水杯远点~~ 推荐一本书,<编写可维护的Javascript>这是Nicbolas C.Zakas写的,他的<Ja ...

  10. css3属性flex弹性布局设置三列(四列)分布样式

    参考:阮一峰的网络日志 <!doctype html> <html lang="en"> <head> <meta charset=&qu ...

随机推荐

  1. 如何彻底卸载Jenkins

    起因: 最近在做持续集成测试过程中遇到一个问题,之前部署的Jenkins管理员密码忘了之后无法登陆,而且删除掉tomcat下webapps文件夹中的Jenkins目录后,再次安装Jenkins后相关的 ...

  2. static和extern的用法小结

    以前写程序是,基本不管static和extern,一个工程文件也只有一个c文件.今天尝试用多个文件来写,自然就涉及到这两个关键词的使用,自己查了些资料,并且做了些实验,总结如下. extern的用法 ...

  3. 基于nutch-1.2实现本地搜索引擎

    声明:本博文参考了很多资料,主要来自http://blog.csdn.net/jiutao_tang/article/details/6461884/,http://www.cnblogs.com/x ...

  4. 最大流sap

    带当前弧优化 gap优化的sap 甚至省去了开始的bfs分层 虽然花了一些时间了解原理 但是感觉不亏 现在能完全独立靠原理写出具体实现了 #include<cstdio> #include ...

  5. Eclipse中 maven 工程 pom 文件 出错

    解决: 在<plugins>  外层  添加  <pluginManagement> No marketplace entries found to handle mybati ...

  6. bytes,bytearray

    1.bytes.bytearray ---Python3 引入的! bytes:不可变字节序列,bytearray:字节属组,可变 都是连续的空间. 2.字符串与bytes 字符串是字符组成的有序的序 ...

  7. Codeforces 1154D - Walking Robot - [贪心]

    题目链接:https://codeforces.com/contest/1154/problem/D 题解: 贪心思路,没有太阳的时候,优先用可充电电池走,万不得已才用普通电池走.有太阳的时候,如果可 ...

  8. PHP函数ip2long转换IP时数值太大而产生负数

    // 使用 sprintf 返回无符号十进制数 $long = sprintf("%u",ip2long($ip)); // 先转换为二进制然后在转换为十进制 $long = bi ...

  9. 复制pdf文字出来是乱码

    PDF文件复制文本为乱码 - longzhinuhou的博客 - CSDN博客 https://blog.csdn.net/longzhinuhou/article/details/83758966 ...

  10. Nginx(一)-windows下的安装配置

    第一步 下载 官网下载地址 因为只是测试这里选择最新版本1.13.9 下载完成得到zip压缩包 解压后得到如下目录 第二步  启动nginx 注意不要直接双击nginx.exe,这样会导致修改配置后重 ...