【CSS_01】前端开发中使用到尺寸单位

本文主要介绍前端的尺寸问题:

  • em 和 rem
  • vw 和 vh

em 和 rem

首先看如下代码和对应代码的运行结果:

示例1:第一个em使用例子。

html 复制代码
<style>
p{
    border: 1px solid;
    height: 12em;
}
</style>
<body>
<p></p>
</body>

此时F12打开控制台可以看到如下:16 * 12 = 192。

修改html代码如下:

html 复制代码
<style>
    body{
        text-align: center;
        padding-left: 30%;
    }
    p{
        border: 1px solid;
        height: 12em;
        width: 100px;
    }
    div{
        font-size: 10px;
        height: 12em;
        border: 1px solid;
        margin-top: 10px;
        width: 100px;
    }
</style>
<body>
    <p> 我是 p</p>
    <div>
        我是div
    </div>
</body>

此时的效果图如下所示:

此时div的结构图如下图:

对比此图和第一幅图可以发现都是12em但是两者的高度不是一样的!

此时在div中添加一个span标签,并添加如下的样式:

html 复制代码
    span{
        background-color: red;
        width: 8em;
        display: inline-block;
    }

此时的运行效果如下图:

可以发现span的宽度为8em = 8 * 10px = 80px; 从上面的内容就可以得到如下的结论:

  • em是一个相对长度单位,相对于当前对象内的字体尺寸。如第二个例子所示。
  • em会继承父元素的字体大小(如第三个例子所示)。
  • 如果当前元素没有设置其大小,则相对于浏览器的默认字体尺寸(16px)。如第一个例子所示。

rem 也是一个相对长度单位,不过是相对于root元素而言。这个root元素就是html标签元素!代码如下:

html 复制代码
    <style>
        html{
            font-size: 20px;
        }
        div{
            height: 10rem;
            width: 10rem;
            border: 1px solid;
        }
    </style>
    <body>
        <div>
            使用rem进行计算
        </div>
    </body>

此时看下图效果如下图:

vw 和 vh

vw(view width)和vh(view height)是前端开发中的一个动态单位,是一个相对于当前网页视口的单位。它会将一个网页的宽和高都分为100份,一个vh(网页高度的百分之一) or vw(网页宽度的百分之一) 就代表占据当前网页大小的1/100

html 复制代码
    <style>
        div{
            width: 50vw;
            height: 50vh;
            background-color: #c60023;
        }
    </style>
    ​
    <body>
        <div>
            vw和vh
        </div>
    </body>

此时运行结果如下图:

相关推荐
刘发财2 小时前
弃用html2pdf.js,这个html转pdf方案能力是它的几十倍
前端·javascript·github
牛奶5 小时前
2026年大模型怎么选?前端人实用对比
前端·人工智能·ai编程
牛奶5 小时前
前端人为什么要学AI?
前端·人工智能·ai编程
Kagol7 小时前
🎉OpenTiny NEXT-SDK 重磅发布:四步把你的前端应用变成智能应用!
前端·开源·agent
GIS之路8 小时前
ArcGIS Pro 中的 notebook 初识
前端
JavaGuide8 小时前
7 道 RAG 基础概念知识点/面试题总结
前端·后端
ssshooter9 小时前
看完就懂 useSyncExternalStore
前端·javascript·react.js
格砸9 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
Live0000010 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native
柳杉10 小时前
使用Ai从零开发智慧水利态势感知大屏(开源)
前端·javascript·数据可视化