根据w3schools,outline
is的语法是:
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
给颜色还是样式?
它被忽略。这是当前浏览器的惯例,也是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] 删除。
我来说两句