2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
id: 587d78b0367417b2b2512b08
|
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--
|
|
|
|
|
2020-02-11 21:30:05 +08:00
|
|
|
媒体查询是 CSS3 中引入的一项新技术,它可以根据不同的可视窗口大小调整内容的布局。可视窗口是用户在网页上的可见区域,根据访问网站的设备不同而不同。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2020-02-11 21:30:05 +08:00
|
|
|
媒体查询由媒体类型组成,如果媒体类型与展示网页的设备类型匹配,则应用对应的样式。你可以在媒体查询中使用各种选择器和样式。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2020-02-11 21:30:05 +08:00
|
|
|
下面是一个媒体查询的例子,当设备宽度小于或等于 100px 时返回内容:
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
`@media (max-width: 100px) { /* CSS Rules */ }`
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
以下定义的媒体查询,是当设备高度大于或等于 350px 时返回内容:
|
2020-02-11 21:30:05 +08:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
`@media (min-height: 350px) { /* CSS Rules */ }`
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
只有当媒体类型与所使用的设备的类型匹配时,媒体查询中的 CSS 属性才生效。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --instructions--
|
2020-02-11 21:30:05 +08:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
增加一个媒体查询,当设备的高度小于或等于 800px 时,`p` 标签的 `font-size` 为 12px。
|
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
|
|
|
声明一个`@media`媒体查询,`height` 小于或等于 800px。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert(
|
|
|
|
$('style')
|
|
|
|
.text()
|
|
|
|
.replace(/\s/g, '')
|
|
|
|
.match(/@media\(max-height:800px\)/g)
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
当设备 `height` 小于或等于 800px 时,`p` 元素 `font-size` 应为 10px。
|
2020-02-11 21:30:05 +08:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
|
|
|
assert(
|
|
|
|
$('style')
|
|
|
|
.text()
|
|
|
|
.replace(/\s/g, '')
|
|
|
|
.match(/@media\(max-height:800px\){p{font-size:10px;?}}/g)
|
|
|
|
);
|
|
|
|
```
|
2020-02-11 21:30:05 +08:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
当设备的`height`大于 800px 时,`p`元素的`font-size`初始值为 20px。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
assert(
|
|
|
|
$('style')
|
|
|
|
.text()
|
|
|
|
.replace(/\s/g, '')
|
|
|
|
.replace(/@media.*}/g, '')
|
|
|
|
.match(/p{font-size:20px;?}/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--
|
|
|
|
|