【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>

此时运行结果如下图:

相关推荐
answerball6 分钟前
🔥 Vue3响应式源码深度解剖:从Proxy魔法到依赖收集,手把手教你造轮子!🚀
前端·响应式设计·响应式编程
Slow菜鸟1 小时前
ES5 vs ES6:JavaScript 演进之路
前端·javascript·es6
小冯的编程学习之路1 小时前
【前端基础】:HTML
前端·css·前端框架·html·postman
Jiaberrr2 小时前
Vue 3 中搭建菜单权限配置界面的详细指南
前端·javascript·vue.js·elementui
懒大王95272 小时前
uniapp+Vue3 组件之间的传值方法
前端·javascript·uni-app
烛阴3 小时前
秒懂 JSON:JavaScript JSON 方法详解,让你轻松驾驭数据交互!
前端·javascript
拉不动的猪3 小时前
刷刷题31(vue实际项目问题)
前端·javascript·面试
zeijiershuai3 小时前
Ajax-入门、axios请求方式、async、await、Vue生命周期
前端·javascript·ajax
恋猫de小郭3 小时前
Flutter 小技巧之通过 MediaQuery 优化 App 性能
android·前端·flutter
只会写Bug的程序员4 小时前
面试之《webpack从输入到输出经历了什么》
前端·面试·webpack