CSS之EM属性

什么是EM?

在一个空白的HTML文档内,你没有任何关于字体大小的声明而只使用默认设置。在大多数浏览器上为html和body标签的默认字体大小为100%

这里写图片描述

使用EM为单位一定要知道父元素的设置,因为EM是一个相对值,是一个相对于父元素的值

这里写图片描述

如果选择器存在font-size属性,那么该选择器本身1em的值就是对应的font-size的值,而该选择器其余属性再使用的1em属性的值就是font-size属性确定的值

这里写图片描述

注1.:如果选择器本身font-size属性值是固定值(比如24px),那么其余属性再使用em为单位的值就是根据选择器本身的font-size来计算(比如margin:2em就是2*24px)

注2:而如果选择器本身font-size属性是使用em确定的(比如1em),那么就要根据选择器父元素的font-size值去确定选择器本身的em值(比如选择器父元素的font-size属性为24px,那么选择器本身便为24*1=24px),然后该选择器的其余属性再根据已经确定的em值(24px)去配置自己的属性值,父元素的字体大小可以影响 em 值,但这种情况的发生纯粹是因为继承

实例1:

这里写图片描述

选择器h1在font-size属性中使用的2em是要相对父元素去确定,2em也就是2倍的父元素,假设父元素<html>的font-size被设置为默认的100%,也就是16px。所以这里2em也就是2*16=32px

em单位可以被用来声明字体的大小。实际上,最佳做法是使用相对单位,如用em指定font-size

这里写图片描述

这里h1选择器的真正大小是多少呢?

我们要根据<h1>的父元素来计算font-size。它的父元素是<html>,并且它的font-size被设置为16px,通过这种方式,我们可以计算出h1的值为32px,或者说2 * 16px

这里写图片描述

当EM单位设置在html元素上的时候,html元素的默认字体大小值将被转换为EM值乘以浏览器字体大小的设置

例如:如果网站的 html 元素的字体大小属性设置为 1.25em,根元素字体大小将为 1.25 倍的浏览器的字体大小,即如果浏览器字体大小被设置为 16px,根字体大小会出来为 20px,即 1.25 x 16 = 20

来源:网络


智能推荐

CSS笔记之CSS字体属性

CSS笔记之CSS字体属性 font属性 font-family:字体类型 格式:font-family:字体名; 举例: 结果: CSS定义的字体是开发者推荐的字体,实际用户可能没有安装该字体,所以可以同时定义多个字体: { font-family:字体1, 字体2, 字体3,…;} 浏览器会优先选择前面的字体,如果没有安装,则选下一个; 我们常说的字体,如微软雅黑,Times N...

CSS学习笔记之position属性

CSS学习笔记之position属性 一、前言   1.HTML中的三种布局方式: 标准流:网页中默认的布局方式,即顺序布局 浮动:float 定位:position   2.position属性的作用方式: 给position属性设置相应的值,可使元素脱离正常的标准流,并且可以使用top、right、left、bottom属性对元素进行定位,还可以使用z-index属性对元素的层叠顺序进行更改 ...

CSS学习之display属性与浮动

1>display     display属性主要是用来 控制HTML元素的显示和隐藏 与 块级元素与行内元素的转换的。     display的值,如下     --> block(块级元素 )         block元素...

前端之CSS——属性和定位

一、字体属性  1、font-size(字体大小)  font-size 属性可设置字体的尺寸。   px:像素,稳定和精确   %:把 font-size 设置为基于父元素的一个百分比值,布局时用到。   em:移动端字体样式大小,相对于其父元素来设置字体大小   rem:可以换算为各种移动端,相对于根元素来设置字体大小 2、font-weight(字体粗细)  font-weight...

CSS3 之 transform属性详解

  https://www.cnblogs.com/zxnn/p/8261849.html transform字面上就是变形,改变的意思。 在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix。 2D Transform 方法 translate() 根据左(X轴)和顶部(Y轴)位置给定的参数,从当...

猜你喜欢

CSS3之animation 属性

与transition不同,animation动画可以自动触发,且可以定义每一帧的动画效果,在动画效果上优于transition。 animation 属性是一个简写属性,用于设置六个动画属性: 一、animation-name 规定需要绑定到选择器的 keyframe 名称。 二、animation-duration 规定完成动画所花费的时间,以秒或毫秒计。 三、animation-timing...

CSS学习笔记之position属性

CSS学习笔记之position属性 一、前言   1.HTML中的三种布局方式: 标准流:网页中默认的布局方式,即顺序布局 浮动:float 定位:position   2.position属性的作用方式: 给position属性设置相应的值,可使元素脱离正常的标准流,并且可以使用top、right、left、bottom属性对元素进行定位,还可以使用z-index属性对元素的层叠顺序进行更改 ...

CSS之window的视图属性

1. innerWidth 属性和innerHeight 属性 innerWidth获取浏览器窗口宽度,注意不带浏览器的边框宽度,但是包括下拉按钮的宽度 innerHeight获取浏览器窗口高度,从浏览器底部到工具栏的距离,注意不包括工具栏的高度 innerWidth和innerHeight属性只读,没有默认值 2. outerWidth属性和outerHeight属性 outerWidth是浏览...

CSS之background-position属性

1.作用:background-position是用来控制元素背景图片的位置。以图片的左上角顶点为原点,属性值为正就代表图片下移或右移,属性值为负就代表图片上移或左移。它接受三种值 - 关键词,比如top、right、bottom、left和center - 长度值,比如px、em、rem等 - 百分值% 在前面我们看到背景图片默认的被放置在放置区的左上角。这是由于background-posit...

数据结构-线段树

线段树 特点 线段树不是完全二叉树 线段树是平衡二叉树 对于给定区间, 支持更新和查询操作 : 更新 : 更新区间中的一个元素或者一个区间的值 查询 : 查询一个区间[i, j]的最大值, 最小值, 或者区间数字和 使用数组构建线段树 如下图所示数组A, 以求和为例, 根节点A[0-7]存放的就是A[0-3]节点和A[4-7]节点之和, 下面的每个节点存放的值都是该节点对应左右孩子节点的和, 这样...

问答精选

icon inside button does not trigger attached function on React

I am building app on React. I have a table of item list and have difficult invoking function on icon. What I want to achieve when user clicks the trash button (icon inside button tag), it calls a func...

Workarounds for strongly-typed ActionLink in ASP.NET MVC

Given that strongly typed ActionLink is not viable ( Strongly Typed ActionLink In Asp.Net MVC 2? ) and we cannot do something like: I am considering using either classes of static readonly string or r...

How to align the jlabel text to left inside the jpanel

I am trying to align the Jlabel to left but i'm failing to do it let me know how can i tackle this problem any suggestions regarding this would be greatly appreciated I have attempted with this slice ...

Making a LazilyEvaluatedConstantProperty class in Python

There's a little thing I want to do in Python, similar to the built-in property, that I'm not sure how to do. I call this class LazilyEvaluatedConstantProperty. It is intended for properties that shou...

How to create an tcp::iostream using an already existing tcp::socket?

I'm not even sure if this question makes sense but I'm trying to solve the following problem without having to rewrite large portions of code. I have a tcp server that reads and writes using a tcp::so...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答