CSS 媒体查询(@media)
-
CSS媒体查询
CSS2引入了媒体类型@media,CSS2中引入的规则使得为不同媒体类型定义不同的样式规则成为可能。 比如:您可以为计算机屏幕设置一组样式规则,一组用于打印机,一组用于手持设备,一组用于电视类型设备,等等。不幸的是,除了打印介质类型之外,这些介质类型从未得到设备的大量支持。CSS3引入了媒体查询,CSS3中的媒体查询扩展了CSS2媒体类型的想法:它们不是寻找一种类型的设备,而是查看设备的功能。媒体查询可用于检查许多内容,例如:- 视口的宽度和高度
- 设备的宽度和高度
- 方向(横向或纵向模式下的平板电脑/手机?)
- 分辨率
-
浏览器支持
属性 Internet Explorer Chrome FireFox Safari Opera 属性格式 @media 9.0(含)以上 21.0(含)以上 3.5(含)以上 4.0(含)以上 9.0(含)以上 -
媒体查询语法
媒体查询由媒体类型组成,可以包含一个或多个表达式,这些表达式可以解析为true或false。@media not|only mediatype and (expressions) { CSS-Code; }如果指定的媒体类型与正在显示文档的设备类型匹配且媒体查询中的所有表达式都为真,则查询结果为true。当媒体查询为true时,将按照正常的级联规则应用相应的样式表或样式规则。除非您使用not或only运算符,否则媒体类型是可选的,默认为all。您还可以为不同的媒体使用不同的样式表:<link rel="stylesheet" media="mediatype and|not|only (expressions)" href="print.css"> -
CSS3媒体类型
值 描述 all 用于所有媒体类型的设备 print 用于打印机 screen 适用于电脑屏幕、平板电脑、智能手机等。 speech 用于屏幕阅读器大声读出页面 -
-
CSS @media参考
有关所有媒体类型和功能/表达的完整概述,请查看CSS参考中的@media规则。 -
更多示例
让我们看一下使用媒体查询的更多示例。媒体查询是一种流行的技术,用于向不同的设备提供定制的样式表。为了演示一个简单的示例,我们可以更改不同设备的背景颜色你想知道为什么我们使用992px和600px吗?它们就是我们所说的设备的“典型断点”(一般硬件设计商已经把各种设备(手机,平板,PC等)的屏幕做了很好的尺寸规划)。您可以在我们的响应式Web设计教程中阅读有关典型断点的更多信息。 -
媒体查询菜单
在此示例中,我们使用媒体查询来创建响应式导航菜单,该菜单在不同屏幕尺寸的设计上有所不同。 -
列的媒体查询
媒体查询的常见用途是创建灵活的布局。在此示例中,我们创建的布局在四个,两个和全宽列之间变化,具体取决于不同的屏幕大小:提示:创建列布局的更现代的方法是使用CSS Flexbox(请参阅下面的示例)。但是,Internet Explorer 10和早期版本不支持它。如果您需要IE6-10支持,请使用浮动(如上所示)。要了解有关Flexible Box布局模块的更多信息,请阅读我们的CSS Flexbox章节。要了解有关响应式Web设计的更多信息,请阅读我们的响应式Web设计教程。
-
使用媒体查询隐藏元素
媒体查询的另一个常见用途是隐藏不同屏幕尺寸的元素: -
使用媒体查询更改字体大小
您还可以使用媒体查询来更改不同屏幕大小的元素的字体大小: -
flex布局图库
-
flex布局网站
-
方向:纵向/横向
媒体查询还可用于根据浏览器的方向更改页面的布局。您可以拥有一组仅在浏览器窗口宽度超过其高度时应用的CSS属性,即所谓的“横向”方向: -