问题
写前端的过程中, 老是发现有div的高度和宽度达不到想要的效果,加上自己对高度宽度属性一知半解,所以着急的时候就一个个属性试,让人头大。现在得了空,干脆梳理一下,搞一个最佳实践出来。
高度和宽度
高度height,宽度weight,他们做用的对象是div,是盒子模型。然后高度和宽度都有哪些属性呢?按照web3school里,宽高的属性可分为5大类。
- auto - 默认。浏览器计算高度和宽度。
- length - 以 px、cm 、vm、vh。
- % - 以包含块的百分比定义高度/宽度。
- initial - 将高度/宽度设置为默认值。
- inherit - 从其父值继承高度/宽度。
这些属性里面,我简单解释下,这个是什么意思,
%:因为百分比永远是相对于一个固定值来说的,你现在这个div的100%,它的父亲必须是一个定值,如果它父亲不定的话,那么它爷爷也必须是定的,也就是说,要么你设置body的height为500px,或者html为500px,否则这个div的百分比就完全不起作用,因为它不知道该如何计算。你这里实际想表达的是这个div占满整个屏幕高度,那你就不要用100%,直接用height: 100vh就好了。
vm\vh:这个长宽是按照你屏幕的大小来展示的。上面的100%是按照div的大小。这个是按屏幕尺寸。很特别。这是css3里面的新东西。
通常这两个属性搭配使用,就能满足大部分场景。如果是由背景图片,也可以用上面这些属性来设置宽高。
参考链接
《認識CSS3的新單位vh、vw》:https://www.injerry.com/blog_view/152