如何概述“继承:继承0”?

Venemo

根据w3schoolsoutlineis的语法是:
outline: <color> <style> <width>;并且这三个中的任何一个都可以丢失。

该值inherit是三个的有效值,或者一个值outline: inherit意味着它应该继承所有三个值。

我之所以这样问,是因为我正在为CSS缩小程序开发属性优化器。根据上面的链接,
outline: inherit none 3px等效于outline: inherit 3px
outline: invert inherit 3px也等效于outline: inherit 3px
但是结果似乎不太明确。

所以问题是,浏览器如何解释outline: inherit 0px它们分配inherit给颜色还是样式?

朱卡·科佩拉(Jukka K.Korpela)

它被忽略。这是当前浏览器的惯例,也是CSS中的预期原理:对于诸如的简写形式outline,关键字inherit被允许作为值(使所有子属性都被继承),但不能与其他任何值结合使用。原因很明显:否则,该值将没有明确的解释。在值中inherit 0,该值0只能是的值outline-width,但inherit可以是outline-style的值outline-color

在CSS 2.1规范的附录C.3.1中提到了该原理从理论上讲,附录C是对变更的有益描述,而不是规范性的,在这里它并不反映实际的变更。就是说,这是愚蠢的:已经描述了这个意图,但是从规范上讲,CSS 2.1没有这个原理,因此被认为outline: inherit 0是有效的(但是W3C CSS Validator拒绝了它)。cf. 这是字体:速记属性的语法是否有效?(我对规范的阅读说是,但是我安装的浏览器中有一半不同意。)(涉及font速记的相同问题)。

如果要outline继承所有属性,但将width设置为零(这有点奇怪),则需要两个声明

outline: inherit;
outline-width: 0;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章