前端设置宽⾼时height:100%和100vh的区别
在做⼿机端的时候经常会⽤到的做字体的尺⼨单位
说⽩了em就相当于“倍”,⽐如设置当前的div的字体⼤⼩为1.5em,则当前的div的字体⼤⼩为:当前div继承的字体⼤⼩*1.5
但是当div进⾏嵌套的时候,em始终是按照当前div继承的字体⼤⼩来缩放,参照后⾯的例⼦。
这⾥的r就是root的意思,意思是相对于根节点来进⾏缩放,当有嵌套关系的时候,嵌套关系的元素的字体⼤⼩始终按照根节点的字体⼤⼩
进⾏缩放。
参照后⾯给的demo
vh就是当前屏幕可见⾼度的1%,也就是说
height:100vh==height:100%;
但是有个好处是当元素没有内容时候,设置height:100%该元素不会被撑开,
但是设置height:100vh,该元素会被撑开屏幕⾼度⼀致。
vw就是当前屏幕宽度的1%
补充⼀句,当设置width:100%,被设置元素的宽度是按照⽗元素的宽度来设置,
但是100vw是相对于屏幕可见宽度来设置的,所以会出现50vw⽐50%⼤的情况
html{
font-size:14px;
}
.em,
.em>.em-son,
.em>.em-son>.em-grandson{
font-size:1.2em;
}
.rem,
.rem>.rem-son,
.rem>.rem-son>.rem-grandson{
font-size:1.2rem;
}
.rem-box{
background:#d60b3b;
width:10rem;
height:10rem;
color:#fff;
text-align:center;
line-height:5rem;
}
.vhvw-box{
background:#d60b3b;
width:50vw;
height:50vh;
color:#fff;
text-align:center;
line-height:25vh;
}
字体⼤⼩1.2*14(⽗元素body)=16px
字体⼤⼩1.2*16(⽗元素em)=20px
字体⼤⼩1.2*20(⽗元素em-son)=24px
字体⼤⼩1.2*14(根节点html)=16px
字体⼤⼩1.2*14(根节点html)=16px
字体⼤⼩1.2*14(根节点html)=16px
宽:14*10=140px
⾼:14*10=140px
宽:屏幕宽度的50%
⾼:屏幕⾼度的50%