当前位置: 首页 > news >正文

columns实现瀑布流布局

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>瀑布流布局</title>
  <style>
    body {
      background-color: #333;
    }
    .container {
      width: 1200px;
      margin: 20px auto;
      columns: 4;
      column-gap: 40px;
    }
    .item {
      width: 100%;
      margin-bottom: 20px;
      break-inside: avoid;
      background-color: #fff;
      border: 2px solid #ccc;
      padding: 10px;
      overflow: hidden;
      border-radius: 6px;
    }
    .item img {
      width: 100%;
    }
    .item p {
      padding-bottom: 10px;
      font-size: 20px;
      margin: 0;
      word-break: break-all;
    }
    @media screen and (max-width: 1300px) and (min-width: 901px){
      .container {
        width: 900px;
        columns: 3;
      }
    }
    @media screen and (max-width: 900px){
      .container {
        width: 800px;
        columns: 2;
      }
    }
  </style>
</head>
<body>
  <div class="container">

  </div>
  <script>
    const data = [];

    for (let i = 0; i < 30; i++) {
      const width = Math.floor(Math.random() * 300) + 200;
      const height = Math.floor(Math.random() * 300) + 200;
      const img = `https://picsum.photos/${width}/${height}?random=${Math.floor(Math.random() * 1000)}`;
      const title = generateRandomString(Math.floor(Math.random() * 10) + 5);
      const description = generateRandomString(Math.floor(Math.random() * 50) + 50);

      data.push({
        img,
        title,
        description
      });
    }

    function generateRandomString(length) {
      const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
      let result = '';
      for (let i = 0; i < length; i++) {
        result += characters.charAt(Math.floor(Math.random() * characters.length));
      }
      return result;
    }

    const conatiner = document.querySelector('.container');

    data.forEach(item => {
      const div = document.createElement('div');
      div.className = 'item';
      div.innerHTML = `
        <img src="${item.img}" alt="${item.title}">
        <h2>${item.title}</h2>
        <p>${item.description}</p>
      `;
      conatiner.appendChild(div);
    });

  </script>
</body>
</html>

 @media调的不是很好 可以自己调合适的

相关文章:

  • ⑦(ACG-网络配置)
  • 06 单目标定-去畸变
  • React Native与原生Android数据传递
  • 【Unity】 鼠标拖动物体移动速度跟不上鼠标,会掉落
  • 学习《JS数据结构与算法》
  • 同步整流和异步整流区别及其各优点
  • vm虚拟机 Ubuntu ping失败情况解决方法
  • Python的迭代器(Iterator)介绍以及实现多次使用
  • SVTAV1热点函数-svt_ext_all_sad_calculation_8x8_16x16_avx2
  • pip 安装某个包之后,Jupyter Lab仍旧显示包冲突;例如:Numba needs NumPy 2.1 or less. Got NumPy 2.2.
  • 热血传奇2超高清重置UI素材
  • Java并发编程
  • SAP-ABAP:OData 协议深度解析:架构、实践与最佳应用
  • 重学Java基础篇—什么是快速失败(fail-fast)和安全失败(fail-safe)?
  • 【Pandas】pandas Series to_xarray
  • 类和对象—继承(1)
  • 什么是真理?以及人工智能对真理标准的挑战
  • c++ 日志框架G3log介绍及在嵌入式Linux上的移植(交叉编译)
  • 学习笔记—数据结构—二叉树(链式)
  • 网关及路由
  • 临沂网站建设价格/长沙seo培训
  • 室内设计工作室网站怎么做/推销产品的万能句子
  • 一人开公司做网站创业/西安网站建设比较好的公司
  • 北京网架公司/seo网站免费优化软件
  • 建站之星服务器/每天看七个广告赚40元的app
  • 西安网站seo价格/百度店面定位怎么申请