6

我想将 flexbox 用于应用程序,并希望所有元素都设置为显示:flex。那可能吗?如果是,如何?我已经设置了 body { display: flex },但它仍然不适用于所有 body 元素。

4

1 回答 1

10

(我把我的评论变成了答案)

通用选择器可以解决问题:

body * { display: flex; } 

(请注意,我已将其范围限定为仅包含 中的元素body

通用选择器可能会导致(可忽略的、微小的、几乎无法衡量的)性能问题,但它是迄今为止执行您所要求的最简单的方法(假设该display属性不是继承的)。另一个选项(包含所有 HTML 的大量列表的选择器)元素也需要相当长的时间来下载和解析!至于最佳实践,我认为它们中的任何一个都不是一个特别棒的想法,但我不知道您的实施细节。

display财产不会被继承,因为它会造成严重破坏!例如,该<a>元素是一个内联元素。如果它继承display: block;自其父元素,则所有链接都将是全宽并导致换行符(如 a或p)。(相当复杂的)CSS2 规范的继承位在这里:http ://w3.org/TR/CSS2/cascade.html#inheritanceh1div

于 2013-10-31T11:04:35.813 回答