height:100vh与width:100vw以及calc


先介绍一下vh:相对于视窗的高度,那么vw:则是相对于视窗的宽度

“视区”所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。

vh

vh就是当前屏幕可见高度的1%,也就是说

height:100vh == height:100%;

但是有个好处是当元素没有内容时候,设置height:100%该元素不会被撑开,

但是设置height:100vh,该元素会被撑开屏幕高度一致。

vw

vw就是当前屏幕宽度的1%

补充一句,当设置width:100%,被设置元素的宽度是按照父元素的宽度来设置,

但是100vw是相对于屏幕可见宽度来设置的,所以会出现50vw 比50%大的情况

calc

但是在写单位的时候在前面还有一个calc,这个又拿来做什么呢?

calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。

calc同时还可以进行运算的方式:

需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);

任何长度值都可以使用calc()函数进行计算;

calc()函数支持 “+”, “-“, “*”, “/” 运算;

calc()函数使用标准的数学运算优先级规则;

calc(100vh - 10px) 表示整个浏览器窗口高度减去10px的大小

calc(100vw - 10px) 表示整个浏览器窗口宽度减去10px的大小

这样我们在写移动端,不好确定固定值的时候,就比较方便,一些特殊的布局就比较好编写。使用下来也比较方便,相对宽度的最大和最小的设置,height:calc(100vh)的写法确实很方便,在弄移动端的侧栏时候,我需要一个背景,在设置这个背景的时候height:100%总是存在一些问题,如果是js 去获取手机的视图高度,感觉代码太多,用来下height:calc(100vh)就能解决这个问题。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM