- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找更多指向邮件列表讨论等的链接,而不是猜测。
谁能帮我找出 CSS Selectors Level 3 中引用的错误处理规则背后的基本原理规范
User agents must observe the rules for handling parsing errors:
- a simple selector containing an undeclared namespace prefix is invalid
- a selector containing an invalid simple selector, an invalid combinator or an invalid token is invalid.
- a group of selectors containing an invalid selector is invalid.
Specifications reusing Selectors must define how to handle parsing errors. (In the case of CSS, the entire rule in which the selector is used is dropped.)
#menu li.last, #menu li:last-child {
...
}
最佳答案
Why is this desirable? Why doesn't the spec suggest simply discarding the unrecognised selector, but keeping the rest of the rule?
CSS 2.1 gives a special meaning to the comma (,) in selectors. However, since it is not known if the comma may acquire other meanings in future updates of CSS, the whole statement should be ignored if there is an error anywhere in the selector, even though the rest of the selector may look reasonable in CSS 2.1.
:matches()
(它甚至更改了
:not()
所以它接受一个列表,使其类似于
:matches()
,而在级别 3 中它只接受一个简单的选择器)。
#sectors > div:not(.alpha, .beta, .gamma) {
color: #808080;
background-color: #e9e9e9;
opacity: 0.5;
}
#sectors > div:not(.alpha
.beta
.gamma)
beta
的任何元素?这显然不是作者打算做的,所以如果浏览器这样做,它会变成
do something unexpected to this layout 。通过丢弃带有无效选择器的规则
the layout looks just a little saner ,但这是一个过于简化的示例;如果应用错误,具有更改布局样式的规则可能会导致更大的问题。
:last-child
在您的示例中作为伪类,规范没有区分无法识别的选择器和只是格式错误的选择器。两者都会导致解析错误。从您链接到的同一部分:
Invalidity is caused by a parsing error, e.g. an unrecognized token or a token which is not allowed at the current parsing point.
:last-child
的声明,我假设浏览器首先能够解析单个冒号后跟任意标识作为伪类;实际上,您不能假设实现会知道将
:last-child
正确解析为伪类,或者像
:lang()
或
:not()
之类的带有功能符号的东西,因为功能伪类直到 CSS2 才出现。
:before
、
:after
、
:first-letter
这样做,我不会感到惊讶和
:first-line
作为
special case )。因此,对于一个实现来说看起来像是伪类的东西对于另一个实现来说很可能是gobbledygook。
@media
规则。
关于css - 无效的 CSS 选择器导致规则被删除 : What is the rationale?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13816764/
我对编程比较陌生,刚刚制作了一个相机应用程序,其预览窗口保存在表面 View 中,需要访问位置,显然还有相机。 但是,在显示一个权限的 requestPermissionRationale 并且用户同
我正在寻找更多指向邮件列表讨论等的链接,而不是猜测。 谁能帮我找出 CSS Selectors Level 3 中引用的错误处理规则背后的基本原理规范 User agents must observe
我只是想知道是否有人知道标准 Java 编码约定中此特定项目背后的基本原理。 Java coding conventions说在类型转换后面放一个空格,像这样: Object myObj = (Obj
我们有一个数据库表,我称之为 TIMES。它传统上看起来像这样: ID Blah1 Blah2 Blah3 Description 1 a b c Day 2
尽管我非常喜欢C和C++,但对于选择以空值结尾的字符串,我还是忍不住摸不着头脑:。其中有几件事比C更晚曝光,所以C不知道它们是有道理的。然而,有几个在C出现之前就已经很普通了。为什么选择以空值结尾的字
IDesign 编码标准声明“不提供公共(public)事件成员变量。改用事件访问器。” 我很欣赏事件访问器在某些情况下很有用(我认为 Control 使用字典来仅存储分配的事件以节省内存)。但强制此
来自 k&R C First, if either operand is long double, the other is converted to long double. Otherwise,
在 Python 中,一个变量或文字后跟一个逗号是一个单元组: 1, # (1,) ...以及一系列以逗号分隔的变量/文字(无论它们后面是否带有逗号)也是一个元组: 1,2, # (1,2) 1,2
CSS 2.1 specification, section 8.3.1关于崩溃的边距状态: Margins of elements that establish new block formatti
我是一名优秀的程序员,十分优秀!