CSS 的相对单位 em 与 ex

相对单位之所以得名,是因为它们是根据与其他事物的关系来度量的,共有3种相对长度单位:emexpx

前两个单位代表 em-heightx-height,这是常用的印刷度量单位。

而 px 代表“像素”,这个值被定义为相对单位,因为它取决于显示设备的分辨率。

em

在 CSS 中,em 定义为一种给定字体的 font-size 值。如果一个元素的 font-size: 14px,那么对于该元素,1em = 14px

例如一个 h1 的字体大小为 24px,一个 h2 字体大小为 18px,一个 h3 字体大小为12px,如果给这三个元素设置 margin-left: 1em;,那么它们的左边距就分别为 24px、18px、12px。

h1, h2, h3 {
    margin-left: 1em;
  }
  <h1>hello h1</h1>
  <h2>hello h2</h2>
  <h3>hello h3</h3>

注意下图三行的左边距

CSS 的相对单位 em 与 ex

ex

em 不同的是,ex 是指所用字体中小写 x 的高度,通常为字体高度的一半

  div {
    display: inline-block;
    font-size: 18px;
  }
  .x {
    width: 50px;
    height: 1ex;
    background: red;
  }
  <h4>定义一条与 x 一样高的线</h4>
  <div>yyypppxxx</div>
  <div class="x"></div>

效果如***意红色盒子高度只与 x 一致

CSS 的相对单位 em 与 ex