css中的宽高以及百分比参照
百分比数参照物
-
属性值设置为百分比时,所参照的对象:
参照父元素宽度:padding,margin,width,text-indent
参照父元素高度:height
参照自身:transform中的translate()
DOM属性之 OffsetWidth / ClientWidth / ScrollWidth
-
OffsetWidth 对象所在元素的实际宽度
dom.offsetWidth = dom_content + padding + border(包含滚动条)+ margin -
ClientWidth 对象内容的可视区域的宽度
dom.clientWidth = dom_content + padding(不包含滚动条) -
ScrollWidth 对象的实际内容的宽度(包含滚动区域中未显示完全的部分)
dom.scrollWidth = real_content + padding
其他单位
vh:窗体高度 vw:窗体宽度 em:继承字体倍数 rem:根节点字体倍数
1.em
在做手机端的时候经常会用到的做字体的尺寸单位。
说白了 em就相当于“倍”,比如设置当前的div的字体大小为1.5em,则当前的div的字体大小为:当前div继承的字体大小*1.5
但是当div进行嵌套的时候,em始终是按照当前div继承的字体大小来缩放。
2.rem
r就是root的意思,意思是相对于根节点来进行缩放,当有嵌套关系的时候,嵌套关系的元素的字体大小始终按照根节点的字体大小进行缩放。
3.vh
vh就是当前屏幕可见高度的1%,也就是说 height:100vh == height:100%;
但是有个好处是当元素没有内容时候,设置height:100%该元素不会被撑开,
但是设置height:100vh,该元素会被撑开屏幕高度一致。
4.vw
vw就是当前屏幕宽度的1%
补充一句,当设置width:100%,被设置元素的宽度是按照父元素的宽度来设置,但是100vw是相对于屏幕可见宽度来设置的,所以会出现50vw 比50%大的情况