css3 box-flex
应用地址:http://www.jb51.net/css/467291.html
box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的局限性,在firefox、chrome这浏览器下需要使用它们的私有属性来定义:firefox(-moz)、chrome(-webkit)。
一、box-flex属性 box-flex主要让子容器针对父容器的宽度按一定规则进行划分。
- <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>
注意: 父容器必须定义为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)。 以上是按比例数来进行划分的,如果其中一个或多个子容器设置了固定宽度,其它子容器没有设置,那么设置宽度的按宽度来算,剩下的部分再按上面的方法来计算。
- .col_3 {
- background-color:#fcf;
- width:50px;/*设置宽度为50px*/
- }
当子容器中需要有间隔的时候,他们平分的宽度需要减去中间的margin,然后再按比例平分。
- .col_2 {
- background-color:#ccf;
- box-flex:2;
- -moz-box-flex:2;
- -webkit-box-flex:2;
- margin:0 20px;
- }
二、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下面则有效。
- .col_1 {
- height:50px;
- }
- .col_2 {
- height:80px;
- }
如果你容器不设置高度,子容器的高度值才生效,在firefox下面他们的高度取其中的最大值。而chrome下面设置高度的子容器为自己的高度,未设置的其高度和最大值的高度一样,其实就是和父容器的高度一致。
- .box {
- /*未设置高度*/
- }
- .col_1 {
- height:50px;
- }
- .col_2 {
- height:80px;
- }
- .col_3 {
- /*未设置高度*/
- }
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代码
- .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表示水平居左对齐,如下所示:
end:在box-pack表示水平居右对齐,如下图所示
center:在box-pack表示水平居中对齐,如下图所示
justify:在box-pack表示两边对齐试
css3 box-flex的更多相关文章
- CSS3 display:flex和display:box有什么区别?
**区别**,仅是各阶段草案命名.- W3C 2009年第1次草案:[display:box;](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723 ...
- 使用css3的Flex布局实现列表展示
实现效果图如下: 通过css3样式实现(部分代码): .box { display: flex; flex-wrap:wrap; justify-content:space-between; alig ...
- CSS3的flex布局
flex的一些属性 CSS3中引入了另一种框--flexbox,flexbox有一些block和inline不同的性质,比如: 自适应子元素(flex item,又称伸缩项目)的宽度 伸缩项目的flo ...
- 浅谈 css3 box盒子模型以及box-flex的使用
display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂直等高.水平均分.按比例划分. 一.使 ...
- box flex 弹性盒模型(转载)
css3引入了新的盒模型——弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及如何处理可用的空间.这与XUL(火狐使用的用户交互语言)相似,其它语言也使用相同的盒模型,如XAML .GladeX ...
- 彻底弄懂css3的flex弹性盒模型
由于在日常工作中使用css或者bootstrap的栅格系统已经能很好的满足业务需求,所以一直以来对css3的弹性布局不是很感冒. 近日有幸在一篇文章中领略了flex的魅力--简洁优雅.随试之. /*容 ...
- 第103天:CSS3中Flex布局(伸缩布局)详解
一.Flex布局 Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{ display: flex; } 行 ...
- css3 box
一.box-shadow介绍 box-shadow属性向box添加一个或多个阴影. 语法: box-shadow: offset-x offset-y blur spread color inset; ...
- CSS3:flex布局应用
想把先前的整理的东西贴出来,怎奈总是有额外事情发生,额,教训电脑要离水杯远点~~ 推荐一本书,<编写可维护的Javascript>这是Nicbolas C.Zakas写的,他的<Ja ...
- css3属性flex弹性布局设置三列(四列)分布样式
参考:阮一峰的网络日志 <!doctype html> <html lang="en"> <head> <meta charset=&qu ...
随机推荐
- CCTV5 前端
get : fre = 11868 symbolrate = 27500 pls_n=0------167 CCTV 9------------168 CCTV 3--------- ...
- mobile_轮播图_transform 版本_transform 读写二合一
轮播图_transform 版本 关键点: 2D 变换 transform 不会改变 元素 在 文档流 中的位置 定位 position 会改变 元素 在 文档流 中的位置 语句解析太快,使用 set ...
- 关于在IE浏览器中使用控件问题
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head&g ...
- JMter随记
线程组( Threads (Users))理解:一个虚拟用户组,线程组内线程数量在运行过程中不会发生改变. 注意事项:线程间变量相互独立. 一个测试计划内可以包含多个线程组. 可定义内容: 取样器错误 ...
- Java常用类库 读书笔记 二
1.Date类 常用操作方法: public Date () 构造方法,实例化Date类对象 public Data(long Date) ...
- 阿里云服务器ssh经常一段时间就断掉解决办法
#vim /etc/ssh/sshd_config 找到下面两行 #ClientAliveInterval 0#ClientAliveCountMax 3 去掉注释,改成 ClientAliveInt ...
- 如何用anysend发wirshark的报文
可以复制 抓包的的报文的 hex txt文档 粘贴到 anysend 继续发送
- [Day16]常用API(正则表达式、Date类、DateFormat类、Calendar类)
1.正则表达式(Regular Expression,regex)-是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串 1.1匹配规则: (1)字符:x -代表的 ...
- 技术Leader相关文章和思考
参考文章: 你与优秀的技术Leader之间只差这一个“图谱” 如何成为优秀的技术主管?你要做到这三点
- 数据结构优化dp
本以为自己的dp已经成熟了没想到在优化上面还是欠佳 或者是思路方面优化dp还不太行. 赤壁之战 当然 很有意思的题目描述 大体上是苦肉计吧 .盖黄 ... 题意是 求出长度为m的严格上升子序列的个数 ...