我想将 flexbox 用于应用程序,并希望所有元素都设置为显示:flex。那可能吗?如果是,如何?我已经设置了 body { display: flex },但它仍然不适用于所有 body 元素。
问问题
2857 次
1 回答
10
(我把我的评论变成了答案)
通用选择器可以解决问题:
body * { display: flex; }
(请注意,我已将其范围限定为仅包含 中的元素body
)
通用选择器可能会导致(可忽略的、微小的、几乎无法衡量的)性能问题,但它是迄今为止执行您所要求的最简单的方法(假设该display
属性不是继承的)。另一个选项(包含所有 HTML 的大量列表的选择器)元素也需要相当长的时间来下载和解析!至于最佳实践,我认为它们中的任何一个都不是一个特别棒的想法,但我不知道您的实施细节。
该display
财产不会被继承,因为它会造成严重破坏!例如,该<a>
元素是一个内联元素。如果它继承display: block;
自其父元素,则所有链接都将是全宽并导致换行符(如 a或p
)。(相当复杂的)CSS2 规范的继承位在这里:http ://w3.org/TR/CSS2/cascade.html#inheritanceh1
div
于 2013-10-31T11:04:35.813 回答