CSS3中盒模型:
前面CSS中学到的盒子模型给padding、border会撑开盒子的大小,实际大小要通过计算才能得到,为了解决这个问题,CSS3推出了box-sizing属性来解决此问题,当box-sizing的属性值为border-box时,无论给多大padding、border都不会撑开盒子的大小,而是内减content的大小,当值为content-box时,此时是前面CSS2中的盒子模型。
<style>div {width: 200px;height: 200px;background-color: lightblue;padding: 50px;border: 20px solid lightgreen;box-sizing:border-box;}</style><body><div>今年</div></body>
transition过渡:
过渡是指从一个状态逐渐过渡到另一个状态,注意:过渡属性是加在需要过渡的元素上面的,关于过渡的相关属性总结如下:
<style>div {width: 200px;height: 200px;background-color: #999;transition: all 1s;}div:hover {background-color: #111;}</style><body><div></div></body>
transform转换:
CSS3中给我们提供了2d和3d两种转换。
transform2D转换:
指元素在二维空间进行旋转、缩放、移动、倾斜,转换前后不会影响其他元素的位置,对行内元素无用,其属性值:
其综合写法:transform:translate(x,y) rotate(45deg) scale(2);先旋转会改变坐标轴方向,一般位移在最后。
<style>.box1 {width: 200px;height: 200px;background-color: #666;transform-origin:left top;transform: rotate(45deg);}.box2 {width: 200px;height: 200px;background-color: #333;transform: translate(100px,50%);}.box3 {width: 200px;height: 200px;background-color: #888;transform: scale(0.5,2);}.box4 {width: 200px;height: 200px;background-color: #888;transform: skew(45deg,88deg);}</style><body><div class="box1"></div><div class="box2"></div><div class="box3"></div><div class="box4"></div></body>
transform3D转换:
3d有近大远小、物体后面遮挡不可见的特点,属性依旧是transform,和透视搭配才有效果,其属性值:
perspective透视:
透视(视距),在2D平面产生近大远小立体效果,透视写在被观察元素的父级盒子上,透视越大,成像越小,单位常用px。
transfrom-style 3D呈现:
控制子元素是否开启3d立体空间,默认值flat不开启,preserve-3d子元素开启3d立体空间,3d呈现写在被观察元素的父级盒子上
<style>.box {margin: 0 auto;width: 100px;position: relative;perspective: 500px;/*透视(视距)*/transform-style: preserve-3d;/*3D呈现为子元素开启3d立体空间*/}.box1,.box2 {width: 100px;height: 100px;background: yellow;position: absolute;}.box2 {background-color: rgb(69, 25, 214);transform: rotate3d(1, 0, 0, 90deg);/*1表示需要旋转,0表示不需要旋转*/}.box1 {transform: rotate3d(0, 1, 0, 80deg) translate3d(-60px, 20px, 20px);}</style><body><div class="box"><div class="box1"></div><div class="box2"></div></div></body>
backface-visibility定义不面向屏幕时隐藏:
由transform翻转后的图形默认是可以看到的,只是方向会改变,当给翻转的元素添加backface-visibility:hidden后,翻转后的元素就会被隐藏不显示:
<style>.box {position: relative;}.box img {position: absolute;top: 0;left: 0;transition: all 2s;}.box:hover img {transform: rotate3d(1, 1, 0, 180deg);}img:last-child {backface-visibility: hidden;/*此属性要添加在翻转的元素上面*/}</style><body><div class="box"><img src="images/1.jgp" width="200"><img src="images/2.jgp" width="220"></div> .</body>
提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者 删除。
笔者:苦海