CSS媒体查询:仅排除print设备的min-width正确语法咨询
媒体查询的正确语法(仅排除print设备类型)
要实现仅排除print设备,同时满足宽度≥960px的需求,你需要让not关键字仅作用于print设备类型,而非整个媒体查询。以下是两种可行方案:
方案1:CSS Media Queries Level 4 标准写法(推荐)
利用括号限定not的作用范围,确保它只否定print设备类型:
@media (min-width: 960px) and (not print)
这个查询会匹配所有非print设备,且视口宽度≥960px的场景,完全符合你的需求。
方案2:兼容旧标准的枚举写法
如果需要兼容不支持Level 4的旧浏览器,可以枚举所有非print的设备类型(如screen、speech):
@media screen and (min-width: 960px), speech and (min-width: 960px)
这种写法需要明确列出所有需要包含的设备类型,缺点是如果新增了非print的设备类型,需要手动更新。
为什么原写法不符合需求?
你提到的@media not print and (min-width: 960px)中,not的作用范围是整个媒体查询,等价于“不是(print设备且宽度≥960px)”,会匹配以下两种场景:
- 非print设备的任意宽度
- print设备中宽度<960px的场景
这显然和你“仅排除print设备,同时要求宽度≥960px”的需求不符。
内容的提问来源于stack exchange,提问作者Takeshi Tokugawa YD
相关产品推荐
相关产品推荐

