uniapp使用css实现瀑布流
在uniapp中实现瀑布流布局,可以使用flex布局结合CSS3的column-width
属性来实现。以下是一个简单的示例代码:
<template>
<view class="waterfall">
<view class="waterfall-item" v-for="(item, index) in items" :key="index">
<!-- 这里可以是图片或其他内容 -->
<image :src="item.src" class="waterfall-image"></image>
</view>
</view>
</template>
<script>
export default {
data() {
return {
items: [
// 这里填充你的数据,每个item应该包含一个src指向图片资源
{ src: 'path/to/image1.jpg' },
{ src: 'path/to/image2.jpg' },
// ...更多图片
]
};
}
};
</script>
<style>
.waterfall {
column-count: 3; /* 指定列数 */
column-gap: 10px; /* 列与列之间的间隔 */
}
.waterfall-item {
break-inside: avoid; /* 避免内容分布到多列 */
margin-bottom: 10px; /* 列之间的垂直间隔 */
}
.waterfall-image {
width: 100%; /* 图片宽度填满容器 */
height: auto; /* 图片高度自动 */
display: block; /* 图片作为块级元素处理 */
}
</style>
在这个例子中,.waterfall
类定义了列数(column-count
)和列间隔(column-gap
)。.waterfall-item
类使用 break-inside: avoid
来避免内容跨列显示,并通过外边距(margin-bottom
)来保证列之间有间隔。.waterfall-image
类确保图片填充整个容器并保持其宽高比。
这样就可以实现一个简单的瀑布流布局。当然,实际应用中可能需要结合JavaScript来处理图片加载后的动态布局调整,但基于简洁性考虑,这里没有包含这部分内容。
评论已关闭