css3中box-flex的使用
语法:
- box-flex:<number>
其中number取值:使用浮点数指定对象所分配其父元素剩余空间的比例。
设置或检索伸缩盒对象的子元素如何分配其剩余空间。(伸缩盒最老版本
)
html代码:
- <ul id="box">
- <li>a</li>
- <li>b</li>
- <li>c</li>
- </ul>
css代码:
- #box{
- display:-webkit-box;
- display:-moz-box;
- display:-ms-box
- display:box;
- width:240px;
- height:100px;
- margin:;
- padding:10px;
- list-style:none;
- color:#fff;
- }
- #box li:nth-child(1){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background:#000;
- }
- #box li:nth-child(2){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background:red;
- }
- #box li:nth-child(3){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background: grey;
- }
得到的结果如图所示:
注:其实上面的css代码中
-ms-box-flex
与box-flex
可以省略,为什么这么说呢,IE6-IE11
的浏览器不支持box-flex
,其它内核的浏览器都需要加上前缀如-webkit-
,-moz-
浏览器才解析这个属性。这儿写上是为告诉大家,为了让css3
属性兼容,一般都这么写完整而已。下面会说一下浏览器的兼容。
误区:注意box-flex
只是动态分配父元素的剩余空间
,而不是整个父元素的空间
。如上例,父元素#box的宽度为240px,如果你认为a,b,c的宽度分别为60, 60, 120那么就错了,因为box-flex只是分配父元素的剩余空间而已,所以a,b,c所分到的应该是除内容外所剩余下来的宽度
为了清晰所谓的剩余空间分配,对上例稍作修改,HTML Code不变
css代码:
- #box{
- display:-webkit-box;
- display:-moz-box;
- display:-ms-box
- display:box;
- width:240px;
- height:100px;
- margin:;
- padding:10px;
- list-style:none;
- color:#fff;
- }
- #box li{
- width:50px;
- padding:7px;
- }
- #box li:nth-child(1){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background:#000;
- }
- #box li:nth-child(2){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background:red;
- }
- #box li:nth-child(3){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background: grey;
- }
结果如图所示:
从上面的代码,我们可以知道a,b,c的宽度分别为50+7*2=64px,三者加起来即192px,所以剩下的240-192=48px才是父元素的剩余空间,于是a,b,c按照设定的1:1:2来分配这48px,a分得12px,b分得12px,c分得24px,所以最终a=64+12=76px,b=64+12=76px,c=64+24=88px
由上面的代码引入了一个思考,如果我没有给li
设置宽度,并且当子元素的内容过多,会出现什么问题,那就是设置的box-flex会被撑开,根据上面来写个例子,如下:
css代码:
- #box{
- display:-webkit-box;
- display:-moz-box;
- display:-ms-box
- display:box;
- width:240px;
- height:100px;
- margin:;
- padding:10px;
- list-style:none;
- color:#fff;
- }
- #box li{
- padding:7px;
- }
- #box li:nth-child(1){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background:#000;
- }
- #box li:nth-child(2){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background:red;
- }
- #box li:nth-child(3){
- -webkit-box-flex:;
- -moz-box-flex:;
- -ms-box-flex:;
- box-flex:;
- background: grey;
- }
html代码:
- <ul id="box">
- <li>这个内容过多怎么办?有问题没有?</li>
- <li>b</li>
- <li>c</li>
- </ul>
结果如图所示:
那要怎么解决呢?
就是给li添加一个width:1%
,代码如下:
- #box li{
- width:1%;
- padding:7px;
- }
或者width:1px
也是可以的。结果如图所示:
兼容性如图所示:
参考地址:《css3参考手册:box-flex》
最后说明下:
display:box
,是2009的flexbox版本display:flexbox
,或者函数flex(),是2011年发布的display:flex
,是目前正在使用的2012年发布的标准
css3中box-flex的使用的更多相关文章
- 关于css3中的flex
参考几篇文章: Flex 布局语法教程 IE10中的Flexible Box("Flexbox")布局 “老”的Flexbox和“新”的Flexbox 一个可以练习的地方: NEW ...
- 浅谈CSS3中display属性的Flex布局
浅谈CSS3中display属性的Flex布局 最近在学习微信小程序,在设计首页布局的时候,新认识了一种布局方式display:flex 1 .container { 2 display: fle ...
- CSS3 弹性盒子(Flex Box)
1 CSS3 弹性盒子(Flex Box) 1 http://caniuse.com/#search=flex%20box https://www.w3.org/TR/css-flexbox-1/ C ...
- CSS3中flexbox如何实现水平垂直居中和三列等高布局
最近这些天都在弥补css以及css3的基础知识,在打开网页的时候,发现了火狐默认首页上有这样一个东西.
- css3中的布局相关样式
web页面中的布局是指在页面中如何对标题.导航栏.主要内容.脚注.表单等各种构成要素进行合理编辑.在css3之前,主要使用float属性或position属性进行页面中的简单布局,但是也存在一些缺点, ...
- CSS3中的Flexbox弹性布局(一)
CSS3引入了一种新的布局模式——Flexbox布局,即伸缩布局盒模型(Flexible Box),用来提供一个更加有效的方式制定.调整和分布一个容器里项目布局,即使它们的大小是未知或者动态的,这里简 ...
- CSS3中的弹性盒子模型
介绍 在css2当中,存在标准模式下的盒子模型和IE下的怪异盒子模型.这两种方案表示的是一种盒子模型的渲染模式.而在css3当中,新增加了弹性盒子模型,弹性盒子模型是一种新增加的强大的.灵活的布局方案 ...
- CSS3中DIV水平垂直居中-2(3)
用到CSS3中display的新属性. HTML <div class="parent"> </div> CSS html,body{ width: 100 ...
- CSS3中新出现的技术
CSS3中新出现的技术 CSS媒体查询 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定 ...
- CSS3中的变形处理(transform)属性
在CSS3中,可以利用transform功能来实现文字或图像的旋转.扭曲.缩放.位移.矩阵.原点这六种类型的变形处理,下面将详细讲解transform的使用. 变形--旋转 rotate() div. ...
随机推荐
- SQL索引学习-聚集索引
这篇接着我们的索引学习系列,这次主要来分享一些有关聚集索引的问题.上一篇SQL索引学习-索引结构主要是从一些基础概念上给大家分享了我的理解,没有实例,有朋友就提到了聚集索引的问题,这里列出来一下: 其 ...
- C#中List<T>对象的深度拷贝问题
一.List<T>对象中的T是值类型的情况(int 类型等) 对于值类型的List直接用以下方法就可以复制: List<T> oldList = new List<T&g ...
- linux 查看占用内存/CPU最多的进程
可以使用一下命令查使用内存最多的5个进程 ps -aux | sort -k4nr | head -n 5 或者 top (然后按下M,注意大写) 可以使用一下命令查使用CPU最多的5个进程 ps - ...
- jQuery Flipping Gallery 翻转画廊
在线实例 简单配置 翻转方向 鼠标滚动 自动播放 绑定事件 使用方法 <div class="main"> <div class="page_conta ...
- 关于setInterval和setTImeout中的this指向问题
前些天在练习写一个小例子的时候用到了定时器,发现在setInterval和setTimeout中传入函数时,函数中的this会指向window对象,如下例: var num = 0; function ...
- CSS的一些小事
1.什么时候能将零散的图片整合成一张大图,达到减少请求数的作用? 答:整合进大图的图片是被设置no-repeat用的,如果是repeat-x.repeat-y就不可以. 2.E + F 选择紧贴在E元 ...
- SeismicPro地震剖面显示程序
SeismicPro是一个地震剖面显示软件,可从标准SEGY地震数据体中抽取纵测线和横测线的二维剖面,并以波形.变面积和变密度等多种方式进行专业化显示,可进行一键式显示方式切换,并可进行定制开发叠加井 ...
- 浅谈Hex编码算法
一.什么是Hex 将每一个字节表示的十六进制表示的内容,用字符串来显示. 二.作用 将不可见的,复杂的字节数组数据,转换为可显示的字符串数据 类似于Base64编码算法 区别:Base64将三个字节转 ...
- 【读书笔记】iOS-UIWindow-密码框
一,工程结构,如下图所示: 二,代码 PasswordInputWindow.h #import <UIKit/UIKit.h> @interface PasswordInputWindo ...
- Swift面向对象基础(上)——Swift中的枚举
Swift中枚举 学习笔记来自<极客学院> import Foundation /**********1*Swift定义枚举的语法格式*************/ /* enum 枚举名 ...