gpt4 book ai didi

css - 为什么浏览器的用户代理样式表使用 -prefixed CSS 属性?

转载 作者:技术小花猫 更新时间:2023-10-29 11:02:51 26 4
gpt4 key购买 nike

前几天,我在研究浏览器(我使用 chrome,但我猜它适用于所有浏览器)如何使用 用户代理样式表 格式化 HTML 元素。

当使用 blockquote 时,我发现了这个:

blockquote {
-webkit-margin-before: 1em;
-webkit-margin-after: 1em;
-webkit-margin-start: 40px;
-webkit-margin-end: 40px;
}

看起来很好。但为什么他们不能使用更像这样的东西呢?:

blockquote {
margin-left:/*whatever*/;
margin-top:/*whatever*/;
margin-right:/*whatever*/;
margin-bottom:/*whatever*/;
}

这件事刚好发生在我身上,我觉得很奇怪。

最佳答案

某些浏览器使用这样的 CSS 规则是因为它们的规范尚未由 W3C 最终确定,因此如果它们不使用前缀,它们将面临最终的 W3C 标准格式略有不同的风险,并且创建浏览器之间或同一浏览器的不同版本之间的不兼容性,因为它们将格式更改为标准的处理方式。

对于具有多个参数的规则,这是一个特殊问题 - 可能出错的主要问题是标准最终以不同的顺序排列参数:

border-radius: 3px 3px 6px 6px;
box-shadow: 3px 3px 6px #fff;

...等...

添加前缀是他们的保证,如果最终标准与他们的实现不同,则不会有任何问题。

至于关于 margin-before 而不是 margin-left 的部分,这似乎是因为 -webkit-margin-before rule 不是 margin-left 的等价物,而是 margin:before 的等价物,这是最近的一项提议,旨在使事情在 RTL 和垂直书写模式下工作。查看此页面:http://lists.w3.org/Archives/Public/www-style/2010Sep/0625.html虽然它似乎相当晦涩。

关于css - 为什么浏览器的用户代理样式表使用 -prefixed CSS 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9519975/

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