这几天做demo,看了网上教程有用到尺寸单位vh,vw, 这些单位不是很熟悉,所以上网上找了些资料来认识了这些不认识的单位
1.em
在做手机端的时候经常会用到的做字体的尺寸单位
说白了 em就相当于“倍”,比如设置当前的div的字体大小为1.5em,则当前的div的字体大小为:当前div继承的字体大小*1.5
但是当div进行嵌套的时候,em始终是按照当前div继承的字体大小来缩放,参照后面的例子。
2.rem
这里的r就是root的意思,意思是相对于根节点来进行缩放,当有嵌套关系的时候,嵌套关系的元素的字体大小始终按照根节点的字体大小进行缩放。
参照后面给的demo
3.vh
vh就是当前屏幕可见高度的1%,也就是说
height:100vh == height:100%;
但是有个好处是当元素没有内容时候,设置height:100%该元素不会被撑开,
但是设置height:100vh,该元素会被撑开屏幕高度一致。
4.vw
vw就是当前屏幕宽度的1%
补充一句,当设置width:100%,被设置元素的宽度是按照父元素的宽度来设置,
但是100vw是相对于屏幕可见宽度来设置的,所以会出现50vw 比50%大的情况
最后说一句,以上这些尺寸都是css3中的尺寸单位
低版本的ie就不支持了
没看懂的同学可以参考这里的一个demo
复制粘贴保存成index.html即可在浏览器查看。
祝大家春节快乐!
- <!DOCTYPE html>
- <html lang="Zh-cn">
- <head>
- <meta charset="UTF-8">
- <title>恭贺新春</title>
- </head>
- <style type="text/css" media="screen">
- 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;
- }
- </style>
- <body>
- <h1>em 继承父元素的字体大小,来变大或变小,多层嵌套字体变化</h1>
- <div class="em">
- 字体大小 1.2 * 14(父元素body) = 16px
- <div class="em-son">
- 字体大小 1.2 * 16(父元素em) = 20px
- <div class="em-grandson">
- 字体大小 1.2 * 20(父元素em-son) = 24px
- </div>
- </div>
- </div>
- <br>
- <h1>rem 继承根节点元素的字体大小,来变大或变小,多层嵌套字体不变化</h1>
- <div class="rem">
- 字体大小 1.2 * 14(根节点html) = 16px
- <div class="rem-son">
- 字体大小 1.2 * 14(根节点html) = 16px
- <div class="rem-grandson">
- 字体大小 1.2 * 14(根节点html) = 16px
- </div>
- </div>
- </div>
- <br>
- <h1>rem 也可作为固定长度单位设置宽高等</h1>
- <div class="rem-box">
- 宽:14 * 10 = 140px<br>
- 高:14 * 10 = 140px
- </div>
- <br>
- <h1>vh,vw 屏幕可见区域的高度,宽度的1%</h1>
- <div class="vhvw-box">
- 宽:屏幕宽度的50%<br>
- 高:屏幕高度的50%
- </div>
- </body>
- </html>