
Vue进度条渲染:巧妙解决非3的倍数数据排序问题
在前端开发中,进度条组件非常常见。然而,当后端返回的数据项数量并非3的倍数时,如何保证进度条的正确渲染顺序,是一个值得探讨的问题。
假设进度条元素按照HTML的默认顺序从左到右排列,当数据项数量非3的倍数时,为了呈现正确的视觉效果(如题图所示),偶数行需要从右到左渲染。
解决这个问题的关键在于CSS选择器。我们可以利用nth-child选择器来控制元素的浮动方向,从而实现交错排列的效果。
立即学习“前端免费学习笔记(深入)”;
以下CSS代码可以有效解决这个问题:
.progress-item:nth-child(3n+1) {
float: left;
}
.progress-item:nth-child(3n) {
float: right;
}
这段代码将进度条项目(假设其class为progress-item)分为三类:
-
3n+1:代表第一列元素,从左到右排列。 -
3n:代表第三列元素,从右到左排列。
通过巧妙地运用float: left;和float: right;属性,我们可以确保无论数据项数量是多少,进度条都能以正确的顺序呈现。
为了更清晰地理解,您可以参考以下演示链接:










