search
HomeWeb Front-endCSS TutorialHow to implement waterfall flow layout in css

How to implement waterfall flow layout in css

May 13, 2021 pm 03:54 PM
cssflex layoutmulti-column layoutwaterfall flow layout

How to implement waterfall flow layout with css: 1. Use multi-column multi-column layout. 2. Use flex layout to achieve this; just set the outer layer to row layout, and then set up a container and set it to column layout. It treats the column as a whole, then divides the column, and fixes the width in the column. Can.

How to implement waterfall flow layout in css

The operating environment of this tutorial: Windows 7 system, CSS3&&HTML5 version, Dell G3 computer.

I feel that the layout of waterfall flow is still very attractive. Recently I have seen the practice of implementing waterfall flow. I will record it here. In particular, I feel that the implementation of waterfall flow in flex layout is still a bit confusing, but now You can understand its principle

1.multi-column multi-column layout to implement waterfall flow

First briefly talk about some properties related to multi-column

  • column-count sets the number of columns
  • column-gap sets the spacing between columns
  • column-width sets the width of each column

Also combine setting break-inside in the sub-container to prevent unexpected interruptions in multi-column layouts, paginated media and multi-region contexts

break-inside属性值
  auto  指定既不强制也不禁止元素内的页/列中断。
  avoid  指定避免元素内的分页符。
  avoid-page  指定避免元素内的分页符。
  avoid-column 指定避免元素内的列中断。
  avoid-region  指定避免元素内的区域中断。
  • Intercepted parts can be filled in by yourself
/* html文件 */
<!-- 使用multi-columns实现瀑布流 -->
<div id="root">
    <div class="item">
        <img class="itemImg lazy"  src="/static/imghwm/default1.png"  data-src="../images/1.jpeg"    alt=""/>
        <div class="userInfo">
            <img class="avatar lazy"  src="/static/imghwm/default1.png"  data-src="../images/gift.png"    alt=""/>
            <span class="username">牵起你的左手护着你</span>
        </div>
    </div>
    <div class="item">
        <img class="itemImg lazy"  src="/static/imghwm/default1.png"  data-src="../images/2.jpg"    alt=""/>
        <div class="userInfo">
            <img class="avatar lazy"  src="/static/imghwm/default1.png"  data-src="../images/gift.png"    alt=""/>
            <span class="username">牵起你的左手护着你</span>
        </div>
    </div>
    <div class="item">
        <img class="itemImg lazy"  src="/static/imghwm/default1.png"  data-src="../images/3.jpg"    alt=""/>
        <div class="userInfo">
            <img class="avatar lazy"  src="/static/imghwm/default1.png"  data-src="../images/gift.png"    alt=""/>
            <span class="username">牵起你的左手护着你</span>
        </div>
    </div>
    <div class="item">
        <img class="itemImg lazy"  src="/static/imghwm/default1.png"  data-src="../images/4.jpg"    alt=""/>
        <div class="userInfo">
            <img class="avatar lazy"  src="/static/imghwm/default1.png"  data-src="../images/gift.png"    alt=""/>
            <span class="username">牵起你的左手护着你</span>
        </div>
    </div>
    <div class="item">
        <img class="itemImg lazy"  src="/static/imghwm/default1.png"  data-src="../images/5.jpeg"    alt=""/>
        <div class="userInfo">
            <img class="avatar lazy"  src="/static/imghwm/default1.png"  data-src="../images/gift.png"    alt=""/>
            <span class="username">牵起你的左手护着你</span>
        </div>
    </div>
</div>
/* css样式 */
body {
    background: #e5e5e5;
}
/* 瀑布流最外层 */
#root {
     margin: 0 auto;
     width: 1200px;
     column-count: 5;
     column-width: 240px;
     column-gap: 20px;
}
/* 每一列图片包含层 */
.item {
     margin-bottom: 10px;
     /* 防止多列布局,分页媒体和多区域上下文中的意外中断 */
     break-inside: avoid;
     background: #fff;
}
.item:hover {
     box-shadow: 2px 2px 2px rgba(0, 0, 0, .5);
}
/* 图片 */
.itemImg {
     width: 100%;
     vertical-align: middle;
}
/* 图片下的信息包含层 */
.userInfo {
     padding: 5px 10px;
}
.avatar {
     vertical-align: middle;
     width: 30px;
     height: 30px;
     border-radius: 50%;
}
.username {
     margin-left: 5px;
     text-shadow: 2px 2px 2px rgba(0, 0, 0, .3);
}

How to implement waterfall flow layout in css

How to implement waterfall flow layout in css

2.flex layout to implement waterfall flow

  • Set the outer layer For row layout, then set up a container and set it as column layout. It is achieved by treating the column as a whole, then dividing the column and fixing the width in the column.
/* html文件(只截取两列布局)*/
<div>
    <div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/1.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/2.jpg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/3.jpg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/4.jpg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/5.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/6.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/7.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
    </div>
    <div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/5.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/7.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/6.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/5.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/6.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
        <div>
            <img  class="itemImg lazy" src="/static/imghwm/default1.png" data-src="../images/6.jpeg" alt="How to implement waterfall flow layout in css" >
            <div>
                <img  class="avatar lazy" src="/static/imghwm/default1.png" data-src="../images/gift.png" alt="How to implement waterfall flow layout in css" >
                <span>牵起你的左手护着你</span>
            </div>
        </div>
    </div>
</div>
/* css文件 */
body{
   background: #e5e5e5;
}
#root{
    display: flex;
    flex-direction: row;
    margin: 0 auto;
    width: 1200px;
}
.itemContainer{
    margin-right: 10px;
    flex-direction: column;
    width: 240px;
}
.item{
   margin-bottom: 10px;
   background: #fff;
}
.itemImg{
   width: 100%;
}
.userInfo {
   padding: 5px 10px;
}
.avatar {
   vertical-align: middle;
   width: 30px;
   height: 30px;
   border-radius: 50%;
}
.username {
   margin-left: 5px;
   text-shadow: 2px 2px 2px rgba(0, 0, 0, .3);
}

How to implement waterfall flow layout in css

  • After practice, we found that the waterfall flow implemented by pure CSS can only be arranged column by column, so we still have to use js to implement the waterfall flow, which is more in line with our common waterfall flow

(Learning video sharing: css video tutorial)

The above is the detailed content of How to implement waterfall flow layout in css. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
So Many Color LinksSo Many Color LinksApr 13, 2025 am 11:36 AM

There's been a run of tools, articles, and resources about color lately. Please allow me to close a few tabs by rounding them up here for your enjoyment.

How Auto Margins Work in FlexboxHow Auto Margins Work in FlexboxApr 13, 2025 am 11:35 AM

Robin has covered this before, but I've heard some confusion about it in the past few weeks and saw another person take a stab at explaining it, and I wanted

Moving Rainbow UnderlinesMoving Rainbow UnderlinesApr 13, 2025 am 11:27 AM

I absolutely love the design of the Sandwich site. Among many beautiful features are these headlines with rainbow underlines that move as you scroll. It's not

New Year, New Job? Let's Make a Grid-Powered Resume!New Year, New Job? Let's Make a Grid-Powered Resume!Apr 13, 2025 am 11:26 AM

Many popular resume designs are making the most of the available page space by laying sections out in a grid shape. Let’s use CSS Grid to create a layout that

One Way to Break Users Out of the Habit of Reloading Too MuchOne Way to Break Users Out of the Habit of Reloading Too MuchApr 13, 2025 am 11:25 AM

Page reloads are a thing. Sometimes we refresh a page when we think it’s unresponsive, or believe that new content is available. Sometimes we’re just mad at

Domain-Driven Design With ReactDomain-Driven Design With ReactApr 13, 2025 am 11:22 AM

There is very little guidance on how to organize front-end applications in the world of React. (Just move files around until it “feels right,” lol). The truth

Detecting Inactive UsersDetecting Inactive UsersApr 13, 2025 am 11:08 AM

Most of the time you don’t really care about whether a user is actively engaged or temporarily inactive on your application. Inactive, meaning, perhaps they

Wufoo   ZapierWufoo ZapierApr 13, 2025 am 11:02 AM

Wufoo has always been great with integrations. They have integrations with specific apps, like Campaign Monitor, Mailchimp, and Typekit, but they also

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function