关于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)
}
}
效果:
