0
当您使用flexbox wrap创建网格并且最后一行的元素少于之前的行时,“孤立”元素的默认行为flex: 1
将水平拉伸以填充宽度 - 使元素大于先前的行。我想要相同的行为,除了我希望较大的项目出现在顶行而不是底行。使用CSS flexbox放置顶部/开始使用孤立元素的高效方法
我已经想出了一个解决方案(如下所示),但它不能很好地扩展,感觉像一个糟糕的黑客攻击。有没有更好的(更优雅)的方式来实现这种布局?该解决方案需要处理动态内容;即,我不会事先知道元素的数量,我需要维护源排序。
它应该是这样的:
ul#subcategory_list {
list-style-type: none;
display: flex;
flex-wrap: wrap-reverse;
flex-direction: row-reverse;
}
ul#subcategory_list li:nth-child(1) {order: 30}
ul#subcategory_list li:nth-child(2) {order: 29}
ul#subcategory_list li:nth-child(3) {order: 28}
ul#subcategory_list li:nth-child(4) {order: 27}
ul#subcategory_list li:nth-child(5) {order: 26}
ul#subcategory_list li:nth-child(6) {order: 25}
ul#subcategory_list li:nth-child(7) {order: 24}
ul#subcategory_list li:nth-child(8) {order: 23}
ul#subcategory_list li:nth-child(9) {order: 22}
ul#subcategory_list li:nth-child(10) {order: 21}
ul#subcategory_list li:nth-child(11) {order: 20}
ul#subcategory_list li:nth-child(12) {order: 19}
ul#subcategory_list li:nth-child(13) {order: 18}
ul#subcategory_list li:nth-child(14) {order: 17}
ul#subcategory_list li:nth-child(15) {order: 16}
ul#subcategory_list li:nth-child(16) {order: 15}
ul#subcategory_list li:nth-child(17) {order: 14}
ul#subcategory_list li:nth-child(18) {order: 13}
ul#subcategory_list li:nth-child(19) {order: 12}
ul#subcategory_list li:nth-child(20) {order: 11}
ul#subcategory_list li:nth-child(21) {order: 10}
ul#subcategory_list li:nth-child(22) {order: 9}
ul#subcategory_list li:nth-child(23) {order: 8}
ul#subcategory_list li:nth-child(24) {order: 7}
ul#subcategory_list li:nth-child(25) {order: 6}
ul#subcategory_list li:nth-child(26) {order: 5}
ul#subcategory_list li:nth-child(27) {order: 4}
ul#subcategory_list li:nth-child(28) {order: 3}
ul#subcategory_list li:nth-child(29) {order: 2}
ul#subcategory_list li:nth-child(30) {order: 1}
假设你想摆脱'第n-child' CSS规则上市,没有1内衬做到这一点。如果您动态生成项目,您可以在内部添加'order'属性,如果您事先不知道有多少项目,则可以从一个肯定不会超过的值开始,即1000,然后向下。如果这是一个可行的选择,我可以将其作为答案。 – LGSon
将其作为答案发布。我有权访问服务器端代,因此内联代码是我忽略的一个很好的选择(不过,较少/ sass不属于我的部署,因此它们不计数)。你的答案解决了很大的样式表混乱和可伸缩性问题。 – SpliFF