我正在尝试编译 特性 前缀为 -apple--khtml- WebKit 支持哪些 自从 哪个版本 它们最终被放弃或引入。
他们受到什么限制?例如,您可以在以下位置找到它们吗? document.body.style?

我猜只有像记者这样知情的人 这个错误 可以为我们提供准确的清单。但我更喜欢先在这里问,这样每个人都会从中受益......

开始调查的好地方是 本次修订.

有帮助吗?

解决方案

介绍

问题并不像你想象的那么简单。比较受支持的 CSS 属性的“官方”列表的修订并确定它们被引入或停用的修订是很容易的;然而,支持 使用 遗留前缀的数量还取决于 CSS 解析器实现处理它们的方式。因此,您应该查阅时间线和下面的旧版前缀属性的完整列表,以确定如何在给定的 WebKit 修订版中处理支持。

与遗留属性支持相关的解析器更改的时间表

遗留属性和引入/淘汰的修订列表

下面的列表是从 支持的属性列表的提交历史记录. 。第一个数字是修订版,其中对此属性的支持已添加到列表中;第二个是删除它的修订版。重命名属性与彻底删除属性之间没有区别。

删除的属性 r13874 在以下情况下生活了一段时间 -webkit 前缀,因此旧前缀可能会继续工作,具体取决于解析器如何处理它们。(有关更多详细信息,请参阅上面的时间表。)

  • -苹果仪表板区域: r7588 至 r9101
  • -苹果线夹: r6391 至 r9101
  • -苹果文本大小调整: r6805 至 r9101
  • -khtml-外观: r9828 至 r13874
  • -khtml-绑定: r5967 至 r13874
  • -khtml-边框-水平间距: r5212 至 r13874
  • -khtml-边框-垂直间距: r5212 至 r13874
  • -khtml-box-align: r4704 至 r13874
  • -khtml-box-方向: r4704 至 r13874
  • -khtml-box-flex: r4704 至 r13874
  • -khtml-box-flex-group: r4704 至 r13874
  • -khtml-box-flex-group-transition: r6758 至 r6802
  • -khtml-box-lines: r4704 至 r13874
  • -khtml-box-ordinal-group: r4704 至 r13874
  • -khtml-box-orient: r4704 至 r13874
  • -khtml-box-pack: r4704 至 r13874
  • -khtml-仪表板区域: r9101 至 r13874
  • -khtml-流模式: r4704 至 r8041
  • -khtml-字体大小-增量: r8382 至 r13874
  • -khtml-水平边框间距: r5200 至 r5212
  • -khtml换行符: r7763 至 r13874
  • -khtml-线夹: r9101 至 r13874
  • -khtml-margin-bottom-collapse: r7362 至 r13874
  • -khtml-边距-折叠: r7362 至 r13874
  • -khtml-边距-开始: r7708 至 r13874
  • -khtml-margin-top-collapse: r7362 至 r13874
  • -khtml 选取框: r5301 至 r13874
  • -khtml-选取框方向: r5301 至 r13874
  • -khtml 选取框增量: r5301 至 r13874
  • -khtml-选取框-重复: r5301 至 r13874
  • -khtml-选取框速度: r5301 至 r13874
  • -khtml 选取框样式: r5301 至 r13874
  • -khtml-match-nearest-mail-blockquote-color: r8642 至 r13874
  • -khtml-nbsp-模式: r7763 至 r13874
  • -khtml-不透明度: r4704 至 r5340 *
  • -khtml-填充-开始: r7708 至 r13874
  • -khtml-rtl-排序: r12027 至 r13874
  • -khtml-text-decorations-in-effect: r8466 至 r13874
  • -khtml-文本大小调整: r9101 至 r13874
  • -khtml-用户拖动: r6728 至 r13874
  • -khtml-用户修改: r5970 至 r13874
  • -khtml-用户选择: r6728 至 r13874
  • -khtml-垂直边框间距: r5200 至 r5212

* 虽然已被弃用, -khtml-opacity-然后 -webkit-opacity—直到 CSSProperties.in 引入对别名的支持之前,解析器一直很荣幸 r85212, ,并且仍然可用 -webkit-opacity 到最新版本。

几个 -konq 很早的版本就支持前缀属性:

  • -konq-流模式: r4 至 r4704
  • -konq-js-clip: r798 至 r3695

今天的故事

自 r13874 起,WebKit CSS 解析器只是将任何旧版前缀标准化为 -webkit. 。本质上,所有 -webkit 前缀属性与 -apple 或者 -khtml 前缀:

// If the prefix is -apple- or -khtml-, change it to -webkit-.
// This makes the string one character longer.
if (hasPrefix(buffer, length, "-apple-") || hasPrefix(buffer, length, "-khtml-")) {
    memmove(buffer + 7, buffer + 6, length + 1 - 6);
    memcpy(buffer, "-webkit", 7);
    ++length;
}

(这也解释了为什么你不能在 document.body.style- 这些属性已被解析器替换为相应的 -webkit 财产。)

Peter Beverloo 建议对这些财产的支持应该是 删除或逐步淘汰 短暂的一段时间 所有旧属性均已禁用, ,除了 -apple-dashboard-region-apple-line-clamp, ,但这是 几天后就恢复了 由于无数的兼容性问题。在 较新的修订版, 遗产 -apple-khtml 前缀是 除非使用以下内容构建,否则禁用 ENABLE(LEGACY_CSS_VENDOR_PREFIXES). 。当启用此功能标志时,解析器允许上述旧行为。

其他提示

if("WebkitAppearance" in document.body.style) {}
if("KhtmlAppearance" in document.body.style) {}
if("MozAppearance" in document.body.style) {}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top