正常情况下,每页大小15个,设置每行3列,刚好5行。
当外部容器宽度不足以放3列时,自动换行,但最后一行元素自动撑满 ,会造成元素块大小不一致,不是想要的效果
原始代码示例:
<ul class="resList" style="overflow: auto"><li v-for="(item, index) in listResData">{{item}}</li><el-button>{{ loading ? 'loading' : 'Load More' }}</el-button><p v-if="noMore" class="noMore">—— No more data ——</p>
</ul><style scoped lang="less">
ul {li { border: 1px solid #eee; background-color: #eee;marging: 0 .5%;flex-grow: 1;flex-shrink: 1;flex-basis: 32%;}}
</style>
解决办法:在原来的列表内手动添加一空行,并定义一个不可见的样式即可,这行的最大个数要等于原来每行设定的个数,
<li v-for="i in 3" class="blank"></li>
最终代码
<ul class="resList" style="overflow: auto"><li v-for="(item, index) in listResData">{{item}}</li><!-- 手动添加空白行 --><li v-for="i in 3" class="blank"></li><el-button>{{ loading ? 'loading' : 'Load More' }}</el-button><p v-if="noMore" class="noMore">—— No more data ——</p>
</ul><style scoped lang="less">
ul {li { border: 1px solid #eee; background-color: #eee;marging: 0 .5%;flex-grow: 1;flex-shrink: 1;flex-basis: 32%;}//空白元素 样式li.blank {border: 1px solid #fff0;background: #fff0;height: 0;}}
</style>
最终效果