--- 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; } } }
有关媒体查询语法的讨论,请参阅使用媒体查询。
{{csssyntax}}
{{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")}}.