关于css3新增的vw、vh长度单位,它们分别代表什么意思呢?
我们知道css3的vw和vh从定义上分别是:
vw——相对于视窗的宽度:视窗宽度是100vw
vh——相对于视窗的高度:视窗高度是100vh
那么这里的视窗宽度究竟是指什么宽度呢?浏览器内部可视宽度?浏览器宽度?下面我们通过具体demo来看一下
<div class="box">浏览器的宽度为:<span id="outer-width"></span>px</div> <div class="box">浏览器窗口的内部宽度:<span id="inner-width"></span>px</div> <div id="vw-box">10vw的宽度:<span id="vw-width"></span>px</div>css:
#vw-box{ width: 10vw; height: 50px; background: #0CBA9F; margin:0 auto; }
js:
function showWidth(){ var outer=document.getElementById("outer-width"), inner=document.getElementById("inner-width"), vww=document.getElementById("vw-width"); outer.innerHTML=window.outerWidth; inner.innerHTML=window.innerWidth; var vw_div=document.getElementById("vw-box"); vww.innerHTML=parseFloat(window.getComputedStyle(vw_div).width); } showWidth(); window.onresize=function(){ showWidth() }效果:
缩小浏览器窗口可以更清楚看到效果,从上面demo可以知道,10vw差不多刚好为浏览器窗口的内部宽度的十分之一,从而可知。“相对于视窗宽度”所指为浏览器窗口的内部可视区域大小。
二、css3新增的角度单位deg、grad、rad、turn
1、deg——角度(Degress),这个就不用说大家都知道,一个圆共360度
2、grad——梯度(grads),一个圆共400梯度,100grad相当于90deg
3、rad——弧度(radians),这个想必大家也知道,一个圆共2π弧度,1.5707963rad相当于90deg。
4、turn——圈数(turns),这个就是圈的意思,一个圆共1圈。
下面我们来看一下demo
1、deg
.ui-demo{ width: 100px; height: 50px; background:#0CBA9F; margin-bottom: 30px; } .ui-deg{ -webkit-transform: rotate(90deg); transform: rotate(90deg); }效果:
2、grad
.ui-grad{ -webkit-transform: rotate(100grad); transform: rotate(100grad); }效果:
3、rad
.ui-rad{ -webkit-transform: rotate(1.5707963rad); transform: rotate(1.5707963rad); }效果:
4、下面重点来看下turn的例子:
原图:
我们给ui-turn加上animation动画看看,从0deg到1turn的rotate,效果如下所示
<div class=”ui-turn”></div>
css:
.ui-turn { width: 80px; height: 80px; background-image: url(turns.png); background-size: 80px 80px; -webkit-transform-origin: 50%; transform-origin: 50%; -webkit-animation: rounds 1s linear 0s infinite; animation: rounds 1s linear 0s infinite } @-webkit-keyframes rounds { 0% { -webkit-transform: rotate(0deg) } 100% { -webkit-transform: rotate(1turn) } } @keyframes rounds { 0% { transform: rotate(0deg) } 100% { transform: rotate(1turn) } }效果: