CSS长度单位之em介绍

本文给大家带来css长度单位em介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

一、为什么使用em

em也是css中的一种单位,和px类似。很多人会疑惑为什么有了px之后还要使用em,而且em使用起来相对于px来讲比较麻烦。

em主要是应用于弹性布局,下面给出一个小栗子说明em的强大之处

                Document            * {            margin: 0;            padding: 0;        }                ul {            list-style: none;        }                .top {            height: 80px;            background-color: black;        }                .main {            width: 960px;            background-color: #ccc;            margin: 0 auto;            overflow: hidden;        }                .left {            width: 30%;            height: 100%;            background-color: aqua;            border: 1px solid red;            float: left;            font-size: 16px;            line-height: 18px;        }                .right {            width: 60%;            height: 100%;            font-size: 1em;            line-height: 1.125em;            background-color: deeppink;            border: 1px solid red;            float: right;        }        

  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况
  • em测试用例,没有em的情况

  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处
  • em测试用例有em的强大之处

这里模仿了一个网页的大致布局,给出使用em和px的区别。

立即学习“前端免费学习笔记(深入)”;

在正常情况下,em和px看起来没什么区别。如下图

CSS长度单位之em介绍

接下来,按住ctrl键并连续按 ‘-’(减号)键,对页面不断进行缩小。缩小到25%时会出现很明显的差别(这里使用的是chrome浏览器,其他浏览器如果没有这种状况,可以在浏览器中手动去改动字体大小,在增大字体的情况下可以看出类似的情况发生)具体如下图

CSS长度单位之em介绍

可以看到使用px的左边已经完全崩溃了,看不出来具体的文字了。而右边使用em的仍然可以清楚的看到文字。造成这种现象的主要原因是em是相对大小,使用em时对页面进放大或缩小不会造成太大的影响。

既然是相对大小,那么就会有参考大小,em的参考大小是当前元素的字体大小。这时又会引发一个问题,既然是当前元素的字体大小作为参考,那么当前字体以em为单位时又是以什么作为参考呢?这时是以其父级元素的字体大小作为参考。

因此当整个页面都是使用em作为字体大小的情况下,页面中的1em就是浏览器默认的字体大小为16px;

二、em的具体使用:

1、设置body{font-size:1em} 

在设置好body的字体大小的情况下,由于body字体是继承浏览器默认是16px,那么这时只要网页上全是用em,那么1em=16px;

2、开始计算元素具体需要的大小

(1)如果元素的字体大小是继承于上层即16px,那么在元素内部1em=16px;因此计算方法如下

需要的em值=当前元素的px值/父元素的字体大小值px(一般是16px)

例如:1px=1/16=0.0625em,18px=18/16=1.125em

(2)如果元素的字体大小是自己设置的

当前元素的字体大小的em值=当前元素字体大小px/父元素字体大小px

当前元素需要的其他em值=当前元素的px值/元素自身的字体大小px

下面通过一个例子进行具体的解释 

                Document            body {            font-size: 1em;        }                .son1 {            font-size: 2em;            height: 5em;            width: 5em;            border: 0.0625em solid red;            background-color: aqua;            margin: 0 auto;        }                .son2 {            font-size: 32px;            height: 160px;            width: 160px;            border: 2px solid red;            background-color: aqua;            margin: 100px auto;        }        

aaa son1

aaa son2

打开浏览器中显示的.son1盒子的盒子模型,以及网页结果图具体入下

  CSS长度单位之em介绍CSS长度单位之em介绍

可以发现.son1 和.son2 一模一样。

.son1 的字体大小为 2em 对应的px为 2*16=32px;(反过来可以验证公式 当前元素的字体大小的em值(2)=当前元素字体大小px(32)/父元素字体大小px(16)

高度宽度为5em 对应px为 5*32=160px;(反过来可以验证公式当前元素需要的其他em值(5)=当前元素的px值(160)/元素自身的字体大小px(32)

注意:在ie5/6中还需要添html { font-size:100%} 以保证弹性布局(但是目前ie5/6基本没有,而且这条是根据文章 《The Incredible Em & Elastic Layouts with CSS》 得知的,本人并没有试出来具体问题在哪。。先记下,以后遇到类似情况使用)

3、rem的使用

rem使用方法和em类似,不过rem是相对于根元素的大小(即html的字体大小),而不是自身的大小。2中的栗子中的.son1 的相关带em的属性全改为rem 代码如下

                Document            .son1 {            font-size: 2rem;            height: 5rem;            width: 5rem;            border: 0.0625rem solid red;            background-color: aqua;            margin: 0 auto;        }                .son2 {            font-size: 32px;            height: 160px;            width: 160px;            border: 2px solid red;            background-color: aqua;            margin: 100px auto;        }        

aaa son1

aaa son2

结果图为:

CSS长度单位之em介绍

因为.son1 中的单位全改为rem,参考对象为html字体的大小即为16px,所以.son1字体大小为2*16=32px  ,宽度和高度为5*16=80px,边框为1px

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问 CSS基础视频教程!

相关推荐:

CSS在线手册

div/css图文教程

以上就是CSS长度单位之em介绍的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1612415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 02:57:57
下一篇 2025年12月24日 02:58:13

相关推荐

  • css如何实现图片大于div时的居中显示(代码实例)

    本文给大家介绍css如何实现图片大于div时的居中显示(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 当图片大于p时,想要图片居中显示,如果图片等比例缩小可能会导致图片不能填充整个p,如果直接将图片不设置宽高,将其外层p设置overflow:hidden;这时即使外层…

    好文分享 2025年12月24日
    000
  • CSS什么是图标字体(IconFont)?有什么用?

    本篇主要介绍一种非常好用的图标大法——图标字体(iconfont)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 什么是图标字体?顾名思义,它是一种字体,只不过这个字体显示的并不是具体的文字之类的,而是各种图标。 网站上经常会用到各种图标,之前网页上使用图标主要采用精灵图(背景位…

    2025年12月24日 好文分享
    000
  • CSS如何实现滚动的图片栏(代码实例)

    本文给大家介绍css如何实现滚动的图片栏(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 在一些网站上可以经常看到有一些图片进行持续不断的滚动,这个效果可以通过css的动画效果来实现。具体效果如下 主要原理是通过动画向左移动。 首先给出两组一样的图片(同一行上),让整体…

    2025年12月24日
    000
  • CSS如何设置背景属性(详解)

    本文给大家详解css如何设置背景属性,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 背景相关属性主要有: background-color  背景颜色  background-image 背景图片 background-repeat 是否平铺 repeat (默认平铺) | re…

    好文分享 2025年12月24日
    000
  • css如何设置颜色值?rgb()设置颜色(代码实例)

    css如何设置颜色值?本篇文章就给介绍在css中如何用rgb()来设置颜色,让大家可以了解rgb()设置颜色的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 首先我们来了解一下rgb是什么意思? RGB:一种色彩模式 ,是工业界一种颜色标准;可以通过对红(R)、绿(G)、蓝(…

    2025年12月24日
    000
  • 如何使用纯CSS实现热气球的效果(附源码)

    本篇文章给大家带来的内容是关于如何使用纯css实现热气球的效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 dom,容器中…

    2025年12月24日
    000
  • css如何对文本进行修饰?css修饰文本样式的9种属性(总结)

    css如何对文本进行修饰?本篇文章就给大家总结了css修饰文本文字的一些方法,介绍一些css 修饰文本的属性,让大家了解css修饰文本文字的9种属性有哪些。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 1、css设置文本文字颜色的属性 color属性:设置文本文字颜色。用法如下:…

    好文分享 2025年12月24日
    000
  • 如何利用css的background绘制图形 (附代码)

    本篇文章给大家带来的内容是关于如何利用css的background绘制图形 (附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 相信大家在平时工作中少不了会被要求在某些元添加一些特殊的背景图片,这时候通常就拿起ps就是切切切。不说这种方式麻烦,有ui给你切好的情况已经不错,没…

    2025年12月24日 好文分享
    000
  • 详解CSS pointer-events属性的使用

    这篇文章主要介绍了css pointer-events属性的使用,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 在前端的开发中,我们都是直接与用户接触,应该尽量让用户感到操作畅快愉悦,获得类似native的感觉。其中动画是最常用的方法。 这里的需求是,弹层的设计,这个弹层希望可以…

    2025年12月24日
    000
  • css实现酷炫的右侧悬浮菜单栏效果(代码实例)

    本文给大家介绍css如何实现酷炫的右侧悬浮菜单栏效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 默认显示效果: 鼠标悬浮效果:   HTML、JS代码如下: 立即学习“前端免费学习笔记(深入)”; *{margin:0;padding:0;} body{ color:#333…

    2025年12月24日
    000
  • PC端移动端不同屏幕大小下响应式布局

    本文给大家介绍pc端移动端不同屏幕大小下响应式布局,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 先上效果图: PC端效果: 移动端效果: 代码如下: 响应式布局1234 pc.css  样式代码: *{margin:0;padding:0;}ul{width:calc(100%…

    2025年12月24日
    000
  • 带你进一步认识CSS的层叠概念

    本篇文章给大家带来的内容是关于带你进一步认识css的层叠概念,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 最近在项目的过程中遇到了一个问题,menu-bar希望始终显示在最上面,而在之后的元素都显示在它之下,当时设置了 z-index 也没有效果,不知道什么原因,因此找了一下cs…

    2025年12月24日
    000
  • 如何使用纯CSS制作特效导航条?

    本文给大家介绍如何使用纯css制作特效导航条,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 先上张图,看看效果: 在继续阅读下文之前,你可以先缓一缓。尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果。 OK,继续。这个效果是我在业务开发的过程中遇到的…

    2025年12月24日 好文分享
    000
  • css实现页面内容不够高footer始终位于页面的最底部效果

    本文给大家介绍css如何实现页面内容不够高footer始终位于页面的最底部效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 相信很多前端工程师在开发页面时会遇到这个情况:当整个页面高度不足以占满显示屏一屏,页脚不是在页面最底部,用户视觉上会有点不好看,想让页脚始终在页面最底部,…

    好文分享 2025年12月24日
    000
  • css如何设置字母的大小写?text-transform属性设置字母的大小写(介绍)

    有的时候我们需要让英文单词或拼音首个字母大写;或者需要让全文中英文单词全大写或小写。那么这样的效果?本篇文章就给大家介绍css设置字母大小写的方法,让大家了解text-transform属性是怎样设置字母的大小写的。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 首先我们来了解一下…

    2025年12月24日
    000
  • css如何实现首字下沉效果?伪元素+浮动实现效果(代码实例)

    在word文档中有一个首字下沉功能,可以在文章的排版时使用,有时能给文章增色不少。那么css可以实现这样的效果吗?本篇文章就给大家介绍css是如何实现首字下沉效果的,让大家可以了解如何用css的伪元素+浮动实现首字下沉效果。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 在css中…

    2025年12月24日 好文分享
    000
  • css的initial-letter属性实现首字下沉效果(代码实例)

    css如何实现首字下沉效果?本篇文章就给大家介绍css是如何实现首字下沉效果的,让大家了解用initial-letter属性是怎样实现首字下沉效果的。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 首先我们来了解一下initial-letter属性要怎样实现首字下沉效果吧! ini…

    2025年12月24日 好文分享
    000
  • 如何使用CSS实现眼冒金星的动画效果(附源码)

    本篇文章给大家带来的内容是关于如何使用css实现眼冒金星的动画效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 dom,容…

    2025年12月24日
    000
  • PC端无论页面有没有完全撑开把footer保持在最底部(不用定位)

    最近在写项目,有的页面没有占到一屏,然后footer也就是底部就靠上了,这样很影响美观,于是在网上找了找,下面是我的成果 解决该问题的最好方法是采用CSS3提供的一种先进布局模型 :flexbox,可以建立具有适应性的布局。 下面我们代码走起来 ……… html{ height: 100…

    好文分享 2025年12月24日
    000
  • css怎样给字体和元素加阴影?text-shadow和box-shadow实现

    本文给大家介绍css怎样给字体和元素加阴影?text-shadow和box-shadow实现。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 1、语法:  对象选择器 {text-shadow:X轴偏移量 Y轴偏移量 阴影模糊半径 阴影颜色}  注:text-shadow可以使用一…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信