CSS3 -- column 实现瀑布流布局



使用 CSS column 实现瀑布流布局

关键点,column-count: 元素内容将被划分的最佳列数

关键点,break-inside: 避免在元素内部插入分页符


news-list.axml

                

news-box组件的axml文件


                            {{renderData.title}}                                                                                        {{renderData.authorName}}                                                                        {{renderData.collectCount}}

news-box组件写得是什么不重要,重要的是淘宝小程序是将组件内容渲染完成之后拼接到父级页面news-list.axml然后显示在用户视野中的。

     列表页瀑布流布局_java

页面pages中news-list.axml渲染结果如下:


                                                    小橘灯精轻松GET灯泡肌小橘灯精轻松GET灯泡肌小橘灯精轻松GET灯泡肌                                                                                                            Julie                                                        9321

这样就简单了,我们直接在news-list.acss中写就好了,这里用的scss预编译,理解就好了。

news-list.scss文件:


.news-list{    width: 100%;    padding: 106rpx 24rpx 24rpx;    box-sizing: border-box;    column-count:2; // CSS3 -- column 实现瀑布流布局    column-width:46%;    column-gap: 0;    .news-box{        break-inside: avoid;        display: block;        width: 100%;        margin: 0 9rpx 24rpx 9rpx;    }}


详解:

父级元素:.news-list

width: 100%;宽度100%;

column-count:2;元素内容将被划分的最佳列数为2列;

column-width:46%;列的宽度为父元素宽度的46%;

column-gap: 0;元素内容分为两列,并列间 0 像素的间隔。后面自己去规定。

子级元素:.news-box

break-inside: avoid;避免在元素内部插入分页符。