css 如何实现大屏4个占位 中屏2个 小屏幕1个

1、 使用grid

javascript 复制代码
      .container {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;
        border: 1px solid red;
        width: 400px;
        height: 400px;
      }
       @media (max-width: 768px) {
        .container {
            grid-template-columns: 1fr;
        }
      }
      @media (min-width: 768px) and (max-width: 992px) {
        .container {
            grid-template-columns: repeat(2, 1fr);
        }
      }
      @media (min-width: 992px) and (max-width: 1200px) {
        .container {
          grid-template-columns: repeat(3, 1fr);
        }
      }
      @media (min-width: 1200px) and (max-width: 1920px) {
        .container {
          grid-template-columns: repeat(4, 1fr);
        }
      }
      @media (min-width: 1920px) {
        .container {
          grid-template-columns: repeat(6, 1fr);
        }
      }

2、flex布局

javascript 复制代码
      .container {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
      }
      .item {
        background-color: red;
        color: #fff;
        font-size: 26px;
        width: 400px;
        height: 400px;
        text-align: center;
        line-height: 400px;
      }
      @media (max-width: 768px) {
        .item {
          flex: 1;
        }
      }
      @media (min-width: 768px) and (max-width: 992px) {
        .item {
          flex: 1 0 calc(50% - 20px);
        }
      }
      @media (min-width: 992px) and (max-width: 1200px) {
        .item {
          flex: 1 0 calc(33.33% - 20px);
        }
      }
      @media (min-width: 1200px) and (max-width: 1920px) {
        .item {
          flex: 1 0 calc(25% - 20px);
          color: yellow !important;
        }
      }
      @media (min-width: 1920px){
        .item {
          flex: 1 0 calc(20% - 20px)
        }
      }

3、grid和变量的结合

javascript 复制代码
      .container {
        --columns: 4;
        display: grid;
        grid-template-columns: repeat(var(--columns), 1fr);
        gap: 20px;
        border: 1px solid red;
      }
      @media (max-width: 768px) {
        .container {
          --columns: 1;
        }
      }
      @media (min-width: 768px) and (max-width: 992px) {
        .container {
          --columns: 2;
        }
      }
      @media (min-width: 992px) and (max-width: 1200px) {
        .container {
          --columns: 3;
        }
      }
      @media (min-width: 1200px) and (max-width: 1920px) {
        .container {
          --columns: 4;
        }
      }
      @media (min-width: 1920px) {
        .container {
          --columns: 6;
        }
      }

4、多列布局

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /* 示例一 */
      .container {
        column-count: 3; /* 设置为3列 */
        column-gap: 20px; /* 每列之间的间距 */
        column-rule: 1px solid #ddd; /*列间距样式*/
      }

      .item {
        background-color: red;
        color: #fff;
        font-size: 26px;
        width:100%;
        height: 300px;
        text-align: center;
        line-height: 300px;
        margin: 10px;
      }
      @media (max-width: 768px) {
        .multi-column-article{
          column-count: 1;
          column-gap: 30px;
        }
        .container{
          column-count: 1;
        }
      }
      @media (min-width: 768px) and (max-width: 992px) {
        .multi-column-article{
          column-count: 2 !important;
        }
        .container{
          column-count: 2;
        }
      }
      @media (min-width: 992px) and (max-width: 1200px) {
        .multi-column-article{
          column-count: 3;
        }
        .container{
          column-count: 3;
        }
      }
      @media (min-width: 1200px) and (max-width: 1920px) {
        .multi-column-article{
          column-count: 4 !important;
        }
        .container{
          column-count: 4;
        }
      }
      @media (min-width: 1920px) {
        .multi-column-article{
          column-count: 6 !important;
        }
        .container{
          column-count: 6;
        }
      }
      body {
        font-family: "Noto Serif SC", serif;
        line-height: 1.6;
        padding: 20px;
        background-color: #f9f9f9;
        color: #333;
      }
      .multi-column-article {
        max-width: 100%;
        margin: 0 auto;
        padding: 20px;
        background-color: white;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        column-count: 3; /* 分成3列 */
        column-gap: 40px; /* 列间距 */
        column-rule: 1px solid #ddd; /* 列间分割线 */
        /* 可选优化属性 */
        column-fill: balance; /* 平衡各列内容高度 */
        break-inside: avoid; /* 避免内容在列间被切断 */
        orphans: 3; /* 避免段落最后一行单独在列底 */
        widows: 3; /* 避免段落第一行单独在列顶 */
      }
      /* 标题样式 - 跨所有列 */
      .multi-column-article h1 {
        column-span: all; /* 标题跨所有列 */
        text-align: center;
        margin-bottom: 30px;
        color: #2c3e50;
      }
      /* 段落样式 */
      .multi-column-article p {
        margin-bottom: 20px;
        text-align: justify;
        hyphens: none; /* 自动断字 */
      }
      /* 首段首字下沉效果 */
      .multi-column-article p:first-of-type::first-letter {
        font-size: 3em;
        float: left;
        line-height: 0.8;
        margin-right: 8px;
        color: #e74c3c;
      }
    </style>
  </head>
  <body>
    <article class="multi-column-article">
      <h1>人工智能发展简史</h1>
      <p>
        人工智能的发展可以追溯到20世纪50年fddfs时代my name is
        xiaosan大厦水电费防守打法地方代...
      </p>
      <p>
        Only those whoer who who capture the moment are real. My personal
        failure has only strengthened my resolve to make things right.
      </p>
      <div>大是大非反反复复凤飞飞发发发发发发发发发发发</div>
      <div>dsfddsfffffffffffffffff</div>
      <div>saddddddddddddddddd</div>
      <div>q</div>
      <div>qdd</div>
      <div>qd</div>
    </article>
    <div class="container">
      <div class="item">1</div>
      <div class="item">2</div>
      <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
    <div class="item">6</div>
    <div class="item">7</div>
    <div class="item">8</div>
    <div class="item">9</div>
    <div class="item">91</div>
    <div class="item">92</div>
    </div>
  </body>
</html>
相关推荐
Tina学编程2 分钟前
HTML基础P1 | HTML基本元素
服务器·前端·html
一只小风华~1 小时前
Web前端:JavaScript和CSS实现的基础登录验证功能
前端
90后的晨仔1 小时前
Vue Router 入门指南:从零开始实现前端路由管理
前端·vue.js
LotteChar1 小时前
WebStorm vs VSCode:前端圈的「豆腐脑甜咸之争」
前端·vscode·webstorm
90后的晨仔2 小时前
零基础快速搭建 Vue 3 开发环境(附官方推荐方法)
前端·vue.js
洛_尘2 小时前
Java EE进阶2:前端 HTML+CSS+JavaScript
java·前端·java-ee
孤独的根号_2 小时前
Vite背后的技术原理🚀:为什么选择Vite作为你的前端构建工具💥
前端·vue.js·vite
吹牛不交税2 小时前
Axure RP Extension for Chrome插件安装使用
前端·chrome·axure
薛定谔的算法3 小时前
# 前端路由进化史:从白屏到丝滑体验的技术突围
前端·react.js·前端框架
拾光拾趣录4 小时前
Element Plus表格表头动态刷新难题:零闪动更新方案
前端·vue.js·element