/* This doesn't work */
@media screen and (max-width: 995px OR max-height: 700px) {
...
}
/* This doesn't work */
@media screen and (max-width: 995px OR max-height: 700px) {
...
}
使用逗号来指定两个(或更多)不同的规则:
@media screen and (max-width: 995px),
screen and (max-height: 700px) {
...
}
来自https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries
逗号用于将多个媒体查询组合成一个规则。逗号分隔的每个查询都被视为独立的。因此,如果列表中的任何查询为真,则整个媒体语句返回true。换句话说,列表的行为类似于逻辑或运算符。
快速答案。
使用逗号分隔规则:
@media handheld,(min-width: 650px),(orientation: landscape) { ... }
详细回答。
这里有很多内容,但我尽力使其信息密集,而不仅仅是空洞的写作。这是一个很好的机会让我自己学习!花时间系统地阅读,希望对您有所帮助。
媒体查询在网页设计中用于创建特定设备或情境的浏览体验,使用CSS中的@media
声明实现。 这可以用于在许多情况下以不同方式显示网页:无论您使用具有不同宽高比的平板电视还是电视,无论您的设备具有彩色屏幕还是黑白屏幕,或者最常见的是当用户更改浏览器大小或在不同屏幕尺寸的浏览设备之间切换时(一般来说,这样设计被称为响应式网页设计)
在设计这些情况时,似乎有四个逻辑运算符可用于在针对各种设备或viewport大小时需要更复杂的要求组合。
(Note: 如果您不理解媒体规则、媒体查询和特性查询之间的区别,请先浏览本答案底部的部分,以更好地了解与媒体查询语法相关的术语) 1. AND (and关键字) 要求在样式规则生效之前必须满足所有指定条件。 @media screen and (min-width: 700px) and (orientation: landscape) { ... } 只有以下所有情况都为真时,指定的样式规则才会生效: - 媒体类型是“screen”,且 - 视口宽度至少为700像素,且 - 屏幕方向当前为横向。 注意:我认为这三个特性查询一起使用,组成一个单独的媒体查询。 2. OR (逗号分隔列表) 而不是使用or关键字,逗号分隔列表用于将多个媒体查询链接在一起,形成更复杂的媒体规则。@media handheld, (min-width: 650px), (orientation: landscape) { ... }
指定的样式规则将在以下条件之一成立时生效:
3. NOT (not关键字)
not关键字可以用于否定单个媒体查询(而不是完整的媒体规则——这意味着它仅否定逗号之间的条目,而不否定@ media声明后面的完整媒体规则)。
类似地,note,由于not关键字否定媒体查询,因此不能用于否定媒体查询中的单个特征查询。
@media not screen and (min-resolution: 300dpi), (min-width: 800px) { ... }
如果媒体类型和最小分辨率都不满足要求(分别为“screen”和“300dpi”),或者视口宽度至少为800像素,则将应用此处指定的样式。
换句话说,如果媒体类型是“screen”,最小分辨率为300 dpi,则除非视口的最小宽度至少为800像素,否则该规则将不会生效。
(“not”关键字可能有点奇怪。如果需要更好的解释,请告诉我。;)
4. ONLY(only关键字)
据我了解,“only”关键字用于防止旧浏览器错误地将较新的媒体查询解释为先前使用的较窄的媒体类型。当正确使用时,旧版/不兼容的浏览器应完全忽略样式。
<link rel="stylesheet" media="only screen and (color)" href="example.css" />
注:要理解本文,尤其是涉及到“not”关键字的地方,我需要了解以下术语,这里是我理解的:
媒体规则(MDN 也称其为媒体语句)包括术语@media
和其后续的所有媒体查询。
@media all and (min-width: 800px)
@media only screen and (max-resolution:800dpi), not print
@media screen and (min-width: 700px), (orientation: landscape)
@media handheld, (min-width: 650px), (min-aspect-ratio: 1/1)
媒体查询是一组功能查询。它们可以非常简单,只有一个功能查询,也可以使用“and”关键字组成更复杂的查询。媒体查询可以用逗号分隔以形成更复杂的媒体规则(请参见上面的“or”关键字)。
screen
(注意:这里只使用了一个功能查询。)
只有屏幕
只有屏幕并且(max-resolution:800dpi)
只有电视并且(device-aspect-ratio: 16/9) 并且(color)
不包括手持设备, (min-width: 650px)
。注意逗号: 这里有两个媒体查询条件。
特性查询是媒体规则的基本部分,仅涉及给定特性及其在给定浏览情况下的状态。
屏幕
(min-width: 650px)
(orientation: landscape)
(device-aspect-ratio: 16/9)
代码片段和信息来源于:
CSS媒体查询由Mozilla贡献者提供(根据CC-BY-SA 2.5许可)。一些代码示例经过轻微修改以增加解释的清晰度。
在CSS中,编写合适的媒体查询有两种方式。如果您首先为较大的设备编写媒体查询,则正确的编写方式为:
@media only screen
and (min-width : 415px){
/* Styles */
}
@media only screen
and (min-width : 769px){
/* Styles */
}
@media only screen
and (min-width : 992px){
/* Styles */
}
但是如果你首先为小型设备编写媒体查询,那么它可能如下所示:
@media only screen
and (max-width : 991px){
/* Styles */
}
@media only screen
and (max-width : 768px){
/* Styles */
}
@media only screen
and (max-width : 414px){
/* Styles */
}
yes, using and
, like:
@media screen and (max-width: 800px),
screen and (max-height: 600px) {
...
}
是的,但不能使用 OR
,需要使用and
。像这样:
@media screen and (max-width: 995px) and (max-height: 700px) {
...
}
而且,我们也可以这样做。逗号表示或的关系。
@media screen and (max-width: 995px),
screen and (max-height: 700px) {
...
}
更多信息 - 点击这里