首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

css图片瀑布流

CSS图片瀑布流是一种流行的网页布局方式,它通过不规则的列布局使图片在页面上自然流动,形成独特的视觉效果。这种布局特别适合图片展示类网站,如摄影作品展示、商品列表等,能够提供丰富的视觉体验。以下是使用纯CSS实现瀑布流布局的基本步骤和代码示例:

基本步骤

  1. HTML结构:创建一个瀑布流容器,每个图片项作为容器内的子元素。
  2. CSS样式
    • 使用column-count属性设置列数。
    • 使用column-gap属性设置列间距。
    • 使用break-inside: avoid;属性确保图片不会被分割到两列之间。

代码示例

代码语言:txt
复制
<div class="waterfall">
  <div class="item">
    <img src="image1.jpg" alt="Image 1">
  </div>
  <div class="item">
    <img src="image2.jpg" alt="Image 2">
  </div>
  <!-- 更多图片项 -->
</div>
代码语言:txt
复制
.waterfall {
  column-count: 4;
  column-gap: 10px;
}

.item {
  break-inside: avoid;
  height: auto;
}

.item img {
  width: 100%;
  height: auto;
}

通过上述步骤和代码示例,你可以实现一个基本的CSS瀑布流布局。这种布局方式不仅美观,而且能够有效提升用户体验,使网页内容更加吸引人。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

分享:纯 css 瀑布流 和 js 瀑布流

博客地址:https://ainyi.com/60 分享一次纯 css 瀑布流  和 js 瀑布流 纯 css 写瀑布流 1.multi-columns 方式: 通过 Multi-columns 相关的属性...看到这里,我们可以发现,使用纯 css 写瀑布流,每一块 item 都是从上往下排列,不能做到从左往右排列: ? 这样子若是动态加载图片的瀑布流,体验就会很不好 我们想要的是这样: ?...这样做只能通过 js 来写瀑布流 js 写瀑布流: html 结构与上面类似,这里我用图片来做示例: 1 2 <...: css 的绝对定位方式:根据每张图片的位置设置 top 和 left 值: 1 //瀑布流效果 2 //这里有一个坑(已经修复): 3 //因为是动态加载远程图片,在未加载完全无法获取图片宽高...就可以设置每张图片在瀑布流中每块item的top值(每一行中最小的item高度,数组查找) 9 //item的left值:第一行:按照每块item的宽度值*块数 10 // 其他行

8.9K40
  • 分享一次纯 css 瀑布流 和 js 瀑布流

    博客地址:https://ainyi.com/60 现在百度图片,360 图片搜索,都是以一种瀑布流的形式展示,那么接下来,分享一波纯 css 瀑布流 和 js 瀑布流 纯 css 写瀑布流 multi-columns...写瀑布流,每一块 item 都是从上往下排列,不能做到从左往右排列: [kc4aje4u6f.jpeg] 这样子若是动态加载图片的瀑布流,体验就会很不好 我们想要的是这样: [no351tx20r.jpeg...] 要实现如上,只能通过 js 来写瀑布流 js 写瀑布流 html 结构与上面类似,但这里我用图片来做示例 ...css 的绝对定位方式:根据每张图片的位置设置 top 和 left 值 // 瀑布流效果 // 这里有一个坑(已经修复): // 因为是动态加载远程图片,在未加载完全无法获取图片宽高 // 未加载完全就无法设定每一个...就可以设置每张图片在瀑布流中每块 item 的 top 值(每一行中最小的 item 高度,数组查找) // item 的 left 值:第一行:按照每块 item 的宽度值*块数 //

    2.4K40

    react-masonry-css瀑布流的基本使用

    瀑布流介绍 瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。逐渐在国内流行开来。...一般使用的网站类型有: 图片画廊:展示不同尺寸的图片,自动调整布局。 博客文章:以瀑布流形式展示博客文章摘要,提高阅读体验。 电商产品列表:展示不同类别和尺寸的产品,增强用户浏览体验。...介绍 react-masonry-css 是一个用于创建快速、响应式瀑布流布局的 React 组件,充分利用 CSS 和 React 的虚拟 DOM 渲染。...基本使用 安装 npm install react-masonry-css pnpm install react-masonry-css yarn add react-masonry-css 基本使用...导入 import Masonry from "react-masonry-css"; 定义一个图片列表数组,其中里面每一项都是一个包含id和图片url 的对象 const images = [

    29110

    iOS 瀑布流封装

    [瀑布流.gif] 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout的基础上封装的带头脚视图的瀑布流控件。...目前支持竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽 不支持头脚视图)、竖向瀑布流( item等高不等宽、支持头脚视图)三种样式的瀑布流布局。...下面是WSLWaterFlowLayout.h中的属性方法和代理方法,含义注释的还算清晰: typedef enum { WSLVerticalWaterFlow = 0, /** 竖向瀑布流...item等宽不等高 */ WSLHorizontalWaterFlow = 1, /** 水平瀑布流 item等高不等宽 不支持头脚视图*/ WSLVHWaterFlow = 2, /...** 竖向瀑布流 item等高不等宽 */ WSLLineWaterFlow = 3 /** 线性布局 待完成,敬请期待 */ } WSLFlowLayoutStyle;//样式 @class

    1.6K80

    iOS 瀑布流封装

    瀑布流.gif 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout的基础上封装的带头脚视图的瀑布流控件。...目前支持竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽 不支持头脚视图)、竖向瀑布流( item等高不等宽、支持头脚视图)三种样式的瀑布流布局。...下面是WSLWaterFlowLayout.h中的属性方法和代理方法,含义注释的还算清晰: typedef enum { WSLVerticalWaterFlow = 0, /** 竖向瀑布流...item等宽不等高 */ WSLHorizontalWaterFlow = 1, /** 水平瀑布流 item等高不等宽 不支持头脚视图*/ WSLVHWaterFlow = 2, /...** 竖向瀑布流 item等高不等宽 */ WSLLineWaterFlow = 3 /** 线性布局 待完成,敬请期待 */ } WSLFlowLayoutStyle;//样式 @class

    2K80

    图片横向等高瀑布流,每行占满,限制行数 的实现

    图片的横向瀑布流,其实简单地按顺序排列就可以了 但要实现每行中各图片都等高(各行不一定等高,但每行里面等高),且每行都占满,就需要用到flex的特性了 控制每行图片高度都一致,可能会影响图片的比例,所以不能简单暴力地设置高度...,第一行仅可以放置四张图片,剩余100px的空间,那么各图片的flex-grow可以直接配置成图片的宽度width值,即可很方便精准地分配好这剩余的空间 第二行可以放五张图片,剩余N px的空间......容器宽度 == 图片宽度 所以  图片高度 == 图片宽度 * paddingTop % width值的计算可能比较绕 假设这里 width直接取 图片宽度w值,就会出现一行中图片高度不一致的情况 因为最终的图片高度即为容器的高度...图片宽度的不同,就直接导致了最终高度的不同 所以,为了确保图片高度一致,假设有三张图片 50*50  100*100  50*150  放在了同一行中,flex布局会将三张图片所在容器的高度自适应为最高的那个...那么最终三张图片的高度都应该为150,按照各自的图片比例来调整,则最终第一张图片宽度的计算  50 / 50 === width / 150 , 则 width = 50 / 50 * 150 可能有些行最高的图片还是不够高

    2K60

    vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多

    一、思路分析和效果图   用vue来实现一个瀑布流效果,加载网络图片,同时有下拉刷新和上拉加载更多功能效果。...然后针对这几个效果的实现,捋下思路: 根据加载数据的顺序,依次追加标签展示效果; 选择哪种方式实现瀑布流,这里选择绝对定位方式; 关键问题:由于每张图片的宽高不一样,而瀑布流中要求所有图片的宽度一致,高度随宽度等比缩放...而且由于图片的加载是异步延迟。在不知道图片高度的情况下,每个图片所在的item盒子不好绝对定位。因此在渲染页面前先获取所有图片的高度,是解决问题的关键点!...这里选择用JS中的Image类,通过预加载图片的方式提前获取图片宽高,另外通过一个临时变量来计算是否所有图片的高度已经得到。当所有的图片高度获取后,开始渲染页面。...另外就是在页面渲染时,会出现页面闪烁的现象,后面使用了一个css动画处理了这个现象,效果好了很多。但是在第一次加载的时候,还是有轻微的闪烁现象。等后面找到更好的方法,再更新。

    3.4K10
    领券