zoukankan      html  css  js  c++  java
  • 关于height:100%和height:100vh的区别

    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%

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

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

    <!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;
    10rem;
    height: 10rem;
    color: #fff;
    text-align: center;
    line-height:5rem;
    }
    .vhvw-box {
    background: #d60b3b;
    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>

    <!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;
    10rem;
    height: 10rem;
    color: #fff;
    text-align: center;
    line-height:5rem;
    }
    .vhvw-box {
    background: #d60b3b;
    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>
    ————————————————
    版权声明:本文为CSDN博主「web_blog」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_43248623/article/details/107790477

  • 相关阅读:
    更博更博233 总结一点点vue
    码几篇过两天要用的jq拦截器和导航插件
    整理两篇不错的关于rgba兼容和线性渐变
    1-新一期的技术难点
    决定把工作bug写到这好了 省的记到本本上还要带着(QAQ我啥时候变这么懒呢)。。。
    小知识点,jQuery把一个已知的值赋值给input
    bootstrap3踩过的坑~具体来说这是在制作一个接地气的功能块时碰到的各种小坑坑!
    自己写的一个banner动画
    自己做了一个左边侧边栏展开的效果
    模仿qq音乐播放字母效果
  • 原文地址:https://www.cnblogs.com/javalinux/p/15602307.html
Copyright © 2011-2022 走看看