我使用CSS media queries验证了一些W3C CSS Validation Service。
以下查询显示为有效:
@media (min-width: 1024px) and (orientation: landscape) and (min-resolution: 1dppx){}
以下否定查询显示为无效:
@media not (min-width: 1024px) and (orientation: landscape) and (min-resolution: 1dppx){}
此查询(其中媒体类型添加到先前的否定查询中)显示为有效:
@media not screen and (min-width: 1024px) and (orientation: landscape) and (min-resolution: 1dppx) {}
因此,显然验证服务要求在接受" not"之前存在媒体类型("屏幕"在此示例中)。关键词。我在https://www.w3.org/TR/css3-mediaqueries/的CSS3规范中找不到对此行为的任何引用这是验证器中的错误还是CSS规范的一部分?
答案 0 :(得分:2)
syntax defined in the CSS3 Media Queries specification表示它只接受" not" (和#34;仅")只能在媒体类型之前使用:
media_query
: [ONLY | NOT]? S* media_type S* [ AND S* expression ]*
| expression [ AND S* expression ]*
(虽然它适用于整个查询)
答案 1 :(得分:0)
我猜你在使用' not'时需要使用recognized screentype。关键字,否则您的浏览器会尝试将样式表应用于' not'屏