搜索此功能时,我遇到了2001草案,其中指定column-span
定义为none | all | <integer> | inherit
。我没有得到none
(没有列?这意味着display:none
‽),但除此之外,它很好。它甚至带有这张有用的图片。
代码是......沿着这条线:
article { column-count: 3 }
h1 { column-span: all }
h2 { column-span: 2 }
有点历史:它在2005年被废除了。2007年,它被重新引入了1 | all
值,2011年成为none | all
(重新引入荒谬的none
)。
我的问题:为什么这个属性如此严重缩减?那背后有什么理由吗? (在none
)后面
答案 0 :(得分:3)
至少在current draft中,属性名称column-span
实际上意味着“跨越多个列”,值none
意味着“不”或“假”。在{{3事情更自然,因此可以将属性解释为“跨越的列数”,初始值为1
而不是none
。
一般情况下,CSS中的标识符通常会产生误导,可能会反映出规划的各个阶段 - 考虑white-space
,这会影响一般的换行,而不仅仅是文本或letter-spacing
,它会影响所有字符,而不仅仅是字母。
根据我在各种讨论中所读到的内容,将值限制为仅两个(没有跨越,跨越所有)的原因是实现其他值本质上是不同的且更复杂。此外,对这种功能的需求似乎比基本功能更加有限。
这听起来很现实,特别是因为即使是非常基本的多列布局也有如此糟糕的支持:我认为任何主流浏览器都不支持它在建议的标准名称下(但有些支持它在浏览器特定的属性名称下) ,甚至没有任何名称的column-span: all
支持。 (有传言称Safari支持它,但我在Win 7版本上的测试并没有证实这一点。)