2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: 587d78b1367417b2b2512b0c
|
2020-12-16 00:37:30 -07:00
|
|
|
|
title: 使排版根据设备尺寸自如响应
|
2018-10-10 18:03:03 -04:00
|
|
|
|
challengeType: 0
|
2020-02-11 21:30:05 +08:00
|
|
|
|
videoUrl: 'https://scrimba.com/c/cPp7VfD'
|
|
|
|
|
forumTopicId: 1
|
2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --description--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
除了使用 `em` 或 `px` 设置文本大小,你还可以用视窗单位来做响应式排版。视窗单位和百分比都是相对单位,但它们是基于不同的参照物。视窗单位是相对于设备的视窗尺寸(宽度或高度),百分比是相对于父级元素的大小。
|
2020-02-11 21:30:05 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
四个不同的视窗单位分别是:
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
<ul><li><code>vw</code>:如 <code>10vw</code> 的意思是视窗宽度的 10%。</li><li><code>vh:</code> 如 <code>3vh</code> 的意思是视窗高度的 3%。</li><li><code>vmin:</code> 如 <code>70vmin</code> 的意思是视窗的高度和宽度中较小一个的 70%。</li><li><code>vmax:</code> 如 <code>100vmax</code> 的意思是视窗的高度和宽度中较大一个的 100%。</li></ul>
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
下面这个例子是设置 body 标签的宽度为视窗宽度的 30%。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`body { width: 30vw; }`
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --instructions--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
设置 `h2` 标签的 `width` 为视窗宽度的 80%,`p` 标签的 `width` 为视窗高度和宽度中较小值的 75%。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`h2` 标签 `width` 应为 80vw。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert(code.match(/h2\s*?{\s*?width:\s*?80vw;\s*?}/g));
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`p` 标签 `width` 应为 75vmin。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert(code.match(/p\s*?{\s*?width:\s*?75vmin;\s*?}/g));
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
2020-02-11 21:30:05 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --solutions--
|
|
|
|
|
|