HTML Code:
<ul id="flex"> <li>a</li> <li>b</li> <li>c</li> </ul>
CSS Code:
#flex{display:-webkit-flex;display:flex;width:400px;margin:0;padding:0;list-style:none;} #flex li{width:200px;} #flex li:nth-child(1){background:#888;} #flex li:nth-child(2){background:#ccc;} #flex li:nth-child(3){-webkit-flex-shrink:3;flex-shrink:3;background:#aaa;}
flex-shrink的默认值为1,如果没有显示定义该属性,将会自动按照默认值1在所有因子相加之后计算比率来进行空间收缩。
本例中c显式的定义了flex-shrink,a,b没有显式定义,但将根据默认值1来计算,可以看到总共将剩余空间分成了5份,其中a占1份,b占1份,c占3分,即1:1:3
我们可以看到父容器定义为400px,子项被定义为200px,相加之后即为600px,超出父容器200px。那么这么超出的200px需要被a,b,c消化
按照以上定义a,b,c将按照1:1:3来分配200px,计算后即可得40px,40px,120px,换句话说,a,b,c各需要消化40px,40px,120px,那么就需要用原定义的宽度相减这个值,最后得出a为160px,b为160px,c为80px
支持版本\类型 | IE | Firefox | Safari | Chrome | Opera |
---|---|---|---|---|---|
较早版本 | 6.0-10.0 | 4.0-19.0 | 5.1.7-6.0 | 21.0-28.0-webkit- | 9.-12.0 |
较新版本 | 11.0 | 20.0 | 7.0-webkit- | 29.0 | 12.1 |
CSS3 animation状态结束后可以通过animation-fill-mode 控制动画的最后状态,分别是不改变默认行为、保持最后一个属性和回到第一帧。 - 2018-09-08
除了html5的新特性,CSS3的新特性也是面试中经常被问到的。本文分享了一些CSS3选择器、Transition,Transform和Animation等 - 2017-07-09
vw : 1vw 等于视口宽度的1%,vh : 1vh 等于视口高度的1%。本文介绍纯CSS视口单位vw和vh来自行自适应,虽然现在的兼容性还没法完全能够接受,但不妨碍你认识这个vw和vh的强大。 - 2017-07-26
CSS3 的 calc() 函数允许我们在属性值中执行数学计算操作。例如,我们可以使用 calc() 指定一个元素宽的固定像素值为多个数值的和。本文分析了calc()的计算使用方法及兼容性 - 2017-05-10
本文主要分享了一些与css3相关的文档手册,给需要的朋友参考,CSS3参考手册不断更新,值得期待 - 2017-07-08
一个使用伪元素来实现边框逐渐发光的过渡效果,主要用到scale和opacity这两个属性。 - 2017-03-31
这个 CSS3 类似于幻灯片旋转的效果,是一个比较有意思并且比较受欢迎的特效。之前没有去研究过,无意在博客上看到 Wenzi 写了这个东西,来看看他的代码是怎么实现的。 - 2017-03-21
作者从CSS3动画的基础入手,分别介绍了移动、缩放、旋转、扭曲到矩阵的变形。在最后给我们讲了关于CSS3矩阵的深度问题研究,值得看看。 - 2017-02-12
在使用CSS3的一些属性时,为了兼顾低端浏览器对CSS3的不友好性,往往需要知道某些浏览器是否支持要使用的CSS3属性,以此来做向下适配。比如常见的CSS3动画就很有必要检测浏览器是否支持。下面分享几种方法: - 2016-09-24
任何CSS属性值为percent时,都需要根据某个参考值进行计算,搞明白这个参考值是什么,理解就容易多了。标准规定:background-position:perenct的参考值为: (容器宽度 - 背景图片宽度). - 2016-06-24