乐趣区

关于前端:面试必问的8个CSS响应式单位你知道几个

大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员. 如果喜爱我的文章,能够关注➕ 点赞 👍 加我微信:frontendpicker,一起学习交换前端,成为更优良的工程师~关注公众号:搞前端的半夏, 理解更多前端常识! 点我摸索新世界!

原文链接 ==>http://sylblog.xin/archives/51

前言

明天,咱们生存在手机的世界里。有如此多的手机,有如此多的屏幕,屏幕的尺寸从当年的 2.4 英寸到 3.5 英寸、4.0 英寸、5.0 英寸等等,到当初基本上 6.0 英寸起步了。

em

它是绝对于父字体大小的。

比方给元素设置 font-size: 2em,这里的默认字体大小实际上是继承自父亲的大小,font-size: 2em 示意以后元素字体大小是父亲的 2 倍。

求上面 em 的 px 值

body{font-size: 2em;}
p {
  font-size: 2em;
  width: 2em;
}
<body>
em
<div>
  <p>em</p>
</div>
</body>

第一个 em 的大小是 32px, 第二个 em 的大小的是 64px。

html 默认是 16px,body 是 2em,是默认的 2 倍 32px,
div 是 32px,p 是 div 的 2 倍 64px。

ch

它是绝对于 ’0’(零)的宽度。
1ch 就是一个 ’0′

div {
  width: 3ch;
  background: powderblue;
}

<div>000000</div>

rem

元素 (html 节点) 字体大小的倍数。

比方一个元素设置 width: 2rem 示意该元素宽度为 html 节点的 font-size 大小的 2 倍。

如果 html 未设置 font-size 的大小,默认是 16px。

留神!:Chrome 默认最小字体大小为 12px,小于 12px 的字体都显示 12px 大小。然而你能够 Chrome 浏览器的设置进行批改。

举例

 html{font-size: 10px;}
body {font-size: 18px;}
h1 {font-size: 1rem;}
      

这里的 h1 的字体大小是 10px;

视口单位

视口单位(Viewport units)

什么是视口?

MDN

视口 (viewport) 代表以后可见的计算机图形区域。在 Web 浏览器术语中,通常与浏览器窗口雷同,但不包含浏览器的 UI,菜单栏等——即指你正在浏览的文档的那一部分。

Web 浏览器蕴含两个 viewport,布局视口 (layout viewport) 和视觉视口 (visual viewport)。visual viewport 指以后浏览器中可见的局部,并且能够变动。当应用触屏双指缩放,当动静键盘在手机上弹出的时候,或者之前暗藏的地址栏变得可见的时候,visual viewport 放大了,然而 layout viewport 却放弃不变。

视口单位中的“视口”,是指布局视口,即 window.innerWidth/window.innerHeight 大小。

vw

它绝对于视口宽度的 1%。


假如视口宽度 1290px, 则 10vw 就是 129px.

通过上面的动图能够看到,当你拖拽浏览器的 宽度 的时候字体的大小是在变动的,拖拽 高度 的时候,字体大小是不变动的。

vh

1vw 等于视口宽度的 1%。

通过上面的动图能够看到,当你拖拽浏览器的 高度 的时候字体的大小是在变动的,拖拽 宽度 的时候,字体大小是不变动的。

vmin

vmin 示意视口的宽度和高度中的较小值,也就是 vw 和 vh 中的较小值。如果视口宽度大于其高度,则将依据高度计算该值。

通过上面的动图能够看到:

当你浏览器的 宽度 大于高度的时候,拖拽宽度, 字体大小不变; 拖拽高度,字体变动。

当你浏览器的 高度 大于宽度的时候,拖拽高度, 字体大小不变; 拖拽宽度度,字体变动

vmax

正好与 vmin 相同

%

它是绝对于父元素的。

% 对不同属性有不同的含意:

例如:
font-size: 200% 和 font-size: 2em 一样,示意字体大小是默认(继承自父亲)字体大小的 2 倍。

例如:line-height: 200% 示意行高是本人字体大小的 2 倍。

例如:width: 100% 示意本人 content 的宽度等于父亲 content 宽度的 1 倍。

退出移动版