为啥 `white-space-collapsing` CSS3 属性的引入推迟到 CSS-text-4(可能是 `text-space-collapse`)?

Posted

技术标签:

【中文标题】为啥 `white-space-collapsing` CSS3 属性的引入推迟到 CSS-text-4(可能是 `text-space-collapse`)?【英文标题】:Why was the introduction of the `white-space-collapsing` CSS3 property postponed to CSS-text-4 (possibly as `text-space-collapse`)?为什么 `white-space-collapsing` CSS3 属性的引入推迟到 CSS-text-4(可能是 `text-space-collapse`)? 【发布时间】:2016-02-28 06:58:04 【问题描述】:

During the development of the CSS3 specifiction, the introduction of white-space-collapsing was considered.

这样的属性将有助于解决a nowadays common html/CSS problem。

很遗憾,the current CSS3 spec 不再包含此属性。

然而,一个类似的属性也可以为上述问题提供解决方案,现在似乎是considered for CSS-text-4。这次该属性的工作名称是text-space-collapse

我的问题是:不使用 CSS3 引入 white-space-collapsing 而是将其推迟到 CSS-text-4 的原因是什么?


编辑:我正在寻找答案

是非推测性的,因此答案要么基于公开可用的资源(如邮件列表、规范编写者的博客条目、规范编写者会议记录),要么直接来自规范编写者。 (其中一些可能已经在这里注册,或者有一天在这里注册like it has already been the case in similar situations)。 给出明确的解释或理由说明为什么这个特定的white-space-collapsing 属性尚未包含在 CSS3 规范中。 (我真的不明白:是什么让规范编写者确定该属性如此不清楚以至于不得不推迟到以后的标准?)所以我不是在寻找过于宽泛的答案,例如:“嗯,有时,规范编写者根本不觉得他们的规范在某一方面是完整的。” 不应被视为实际上是关于此主题的讨论的一部分。 (或者换一种说法:我不是在问人们对房产被推迟的感觉。我只是在问一个做出这个决定的明确原因规范编写者。因此,如果从字面上理解,这个问题不应导致任何与内容相关的讨论。)

Meta 上围绕此类问题的讨论表明,可以通过提供更实用的观点来改进该问题。所以这里有另一种说法:“如果我要实现一个全新的浏览器或向现有浏览器添加新功能,为什么我不想实现 white-space-collapsing 属性,因为它在早期版本中建议CSS3 规范?”

但是,通过以这种方式解释我最初的问题,它肯定会成为征求意见的邀请。这不是我要找的。我正在寻找“过去的推理”的解释。所以一个可能更好的方式来表达这个问题:“假设我要实现一个全新的浏览器或向现有浏览器添加新功能。现在我不想遇到 CSS3 预见的问题/挑战在规范开发过程中删除了white-space-collapsing属性的规范编写者。为了避免在我的浏览器开发过程中预见到的问题/挑战:为什么规范编写者没有在CSS3规范中包含该属性?”

我知道这个问题可能很难回答,但绝对可以用明确的(希望是明确的)答案来回答。

这个问题的一个非常好的答案不仅包括其背后的推理和适当的来源,还包括一些例子。可以在此处找到一个很好的答案示例(对另一个类似问题):https://***.com/a/11854515/1560865

【问题讨论】:

我不同意这是基于意见的,因为规范作者绝对应该找到使他们不包括该属性的明确原因。我也不同意这会引起讨论,因为我不是在问人们 对此有何看法,而我只是在问规范编写者的原因推迟这个。此外,这个问题尽可能具体——所以我也不同意它过于宽泛。我希望遵循规范开发过程的人可以列出导致规范编写者推迟该属性的原因。 不管怎样,这不是一个“可解决的编程问题”,所以对于 SO... 我认为我的问题“软件开发独有”似乎已被 SO 涵盖。但万一我的评估是错误的:StackExchange 网络上还有什么地方可以回答这样的问题? @HaukeP。 np,但我也同意这个问题在这里是题外话。它没有描述 css3 或 css4 的实际问题,甚至没有描述标准定义的功能。这是一个问题,为什么草案的建议属性没有添加到最终版本中并且从未使用过。要获得确切的原因,您需要询问工作组的成员,或者只是假设他们不同意添加它。 另请注意,没有 CSS4 - 您说的是 CSS 文本模块级别 4 - CSS 已拆分为单独的模块,并且新级别独立于其他模块级别发布。 【参考方案1】:

您用作示例的常见问题并不是真正需要解决的问题,它只是当前规范中处理空白的方式。作为开发人员,我们有责任了解如何处理和使用它。

我们可以轻松地说“哦,嘿,为什么不在显示时删除空白:inline-block?”但显然它比规范的编写者要深刻得多,因为空白会影响全面的元素属性,尤其是字体。但就您而言,也许他们应该让我们完全控制空白?也许它最终改变得太剧烈了,他们决定在不久的将来不这样做。我将在这里停止猜测。

所以这就是你问题的重点,为什么他们不能这样做,什么是拖延?真正诚实的正确答案是:

...

...

...

...

...

谁在乎!使用 FLEXBOX!

【讨论】:

以上是关于为啥 `white-space-collapsing` CSS3 属性的引入推迟到 CSS-text-4(可能是 `text-space-collapse`)?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?

为啥需要softmax函数?为啥不简单归一化?

为啥 g++ 需要 libstdc++.a?为啥不是默认值?

为啥或为啥不在 C++ 中使用 memset? [关闭]

为啥临时变量需要更改数组元素以及为啥需要在最后取消设置?

为啥 CAP 定理中的 RDBMS 分区不能容忍,为啥它可用?