--- title: '@media' slug: Web/CSS/@media tags: - '@media' - '@标签' - CSS - 引用 translation_of: Web/CSS/@media ---
@media CSS @规则 可用于基于一个或多个 媒体查询 的结果来应用样式表的一部分。 使用它,您可以指定一个媒体查询和一个CSS块,当且仅当该媒体查询与正在使用其内容的设备匹配时,该CSS块才能应用于该文档。@media 规则可置于您代码的顶层或位于其它任何@条件规则组内。
/* At the top level of your code */
@media screen and (min-width: 900px) {
article {
padding: 1rem 3rem;
}
}
/* Nested within another conditional at-rule */
@supports (display: flex) {
@media screen and (min-width: 900px) {
article {
display: flex;
}
}
}
有关媒体查询语法的讨论,请参阅使用媒体查询。
{{page("/zh-CN/docs/Web/Guide/CSS/Media_queries","媒体特性")}}
@media print {
body { font-size: 10pt; }
}
@media screen {
body { font-size: 13px; }
}
@media screen, print {
body { line-height: 1.2; }
}
@media only screen
and (min-width: 320px)
and (max-width: 480px)
and (resolution: 150dpi) {
body { line-height: 1.4; }
}
媒体查询第4级引入了一种新的范围语法,在测试接受范围的任何特性时允许更简洁的媒体查询,如下面的示例所示:
@media (height > 600px) {
body { line-height: 1.4; }
}
@media (400px <= width <= 700px) {
body { line-height: 1.4; }
}
更多示例,请查看使用媒体查询。
为了最好地调整网站文本大小,当您需要{{cssxref("<length>")}} 进行媒体查询时,请使用em。
em和px都是有效单位,但如果用户更改浏览器文本大小,em的效果会更好。
考虑使用4级媒体查询来改善用户体验。 例如,使用prefers-reduced-motion以检测用户是否已请求系统最小化其使用的动画或动作量。
由于媒体查询可以洞察用户正在使用的设备的功能(以及扩展的功能和设计),因此有可能滥用它们来构造“指纹”来识别设备,或者至少 将其分类为某些细节,这可能是用户不希望看到的。
由于存在这种潜力,浏览器可能会选择以某种方式捏造返回的值,以防止它们被用来精确地标识计算机。 浏览器可能还会在此区域提供其他措施。 例如,如果启用了Firefox的“抵抗指纹”设置,则许多媒体查询会报告默认值,而不是代表实际设备状态的值。
| Specification | Comment | Feedback |
|---|---|---|
| {{SpecName('CSS5 Media Queries', '#at-media5', '@media')}} | Reinstates light-level, inverted-colors and Custom Media Queries, which were removed from Level 4.Adds prefers-reduced-motion, prefers-reduced-transparency, prefers-contrast, and prefers-color-scheme media features. |
CSS Working Group drafts GitHub issues |
| {{SpecName('CSS3 Conditional', '#at-media', '@media')}} | Defines the basic syntax of the @media rule. |
CSS Working Group drafts GitHub issues |
| {{SpecName('CSS4 Media Queries', '#media', '@media')}} |
Adds |
CSS Working Group drafts GitHub issues |
| {{SpecName('CSS3 Media Queries', '#media0', '@media')}} | ||
| {{SpecName('CSS2.1', 'media.html#at-media-rule', '@media')}} | Initial definition. |
{{Compat("css.at-rules.media")}}
@media can be可以通过css对象模型接口被调用 .{{domxref("CSSMediaRule")}}.