gpt4 book ai didi

css - `outline: inherit 0` 是如何解释的?

转载 作者:太空宇宙 更新时间:2023-11-03 20:45:12 24 4
gpt4 key购买 nike

According to w3schools , outline 的语法是:
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-styleoutline-color 的值。

原理在 CSS 2.1 规范的附录中提到,位于 C.3.1 .理论上,附录C是对变化的信息性描述,不具有规范性,此处并不反射(reflect)实际变化。也就是说,这是搞砸了:描述了意图,但规范的 CSS 2.1 没有这个原则,并且会认为 outline: inherit 0 是有效的(但 W3C CSS Validator 拒绝它)。比照。至 Is this font: shorthand property syntax valid? (My reading of the spec says yes, but half of my installed browsers disagree.) (它处理关于 font 简写的相同问题)。

如果您希望继承所有 outline 属性但宽度设置为零(这有点奇怪),您需要两个声明

outline: inherit;
outline-width: 0;

关于css - `outline: inherit 0` 是如何解释的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21809814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com