前端CSS-网格布局案例01| “朝闻道”知识分享大赛

2201_75824342 2024-11-29 23:58:11

这是我参加朝闻道知识分享大赛的第36篇文章。


在实际网页布局中,网格布局可以帮助我们实现各种复杂且灵活的布局需求。

 

案例 1:响应式卡片布局

该案例展示了一个常见的卡片布局,在不同屏幕宽度下自动调整列数。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>响应式卡片布局</title>
    <style>
        .grid-container {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
            gap: 15px;
            padding: 20px;
            background-color: #f5f5f5;
        }
​
        .card {
            background-color: white;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            text-align: center;
            font-size: 18px;
            color: #333;
        }
​
        .card h3 {
            margin: 0;
            font-size: 22px;
            color: #4CAF50;
        }
    </style>
</head>
<body>
​
    <div class="grid-container">
        <div class="card">
            <h3>卡片 1</h3>
            <p>这是一个内容卡片。</p>
        </div>
        <div class="card">
            <h3>卡片 2</h3>
            <p>这是一个内容卡片。</p>
        </div>
        <div class="card">
            <h3>卡片 3</h3>
            <p>这是一个内容卡片。</p>
        </div>
        <div class="card">
            <h3>卡片 4</h3>
            <p>这是一个内容卡片。</p>
        </div>
        <div class="card">
            <h3>卡片 5</h3>
            <p>这是一个内容卡片。</p>
        </div>
    </div>
​
</body>
</html>


说明:

使用 auto-fill 和 minmax 函数,确保卡片宽度在不同设备上自动调整。

gap 设置卡片之间的间距,使布局更有层次感。

box-shadow 给卡片添加阴影效果,提升视觉效果。

    案例 2:博客页面布局

    该案例展示了一个常见的博客页面布局,包括头部、侧边栏、主内容区和页脚。

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>博客页面布局</title>
        <style>
            .grid-container {
                display: grid;
                grid-template-areas:
                    "header header header"
                    "sidebar main main"
                    "footer footer footer";
                grid-template-columns: 1fr 2fr;
                grid-template-rows: auto 1fr auto;
                gap: 20px;
                padding: 20px;
                height: 100vh;
                background-color: #f0f0f0;
            }
    ​
            .header {
                grid-area: header;
                background-color: #4CAF50;
                color: white;
                padding: 20px;
                text-align: center;
                font-size: 24px;
            }
    ​
            .sidebar {
                grid-area: sidebar;
                background-color: #333;
                color: white;
                padding: 20px;
                font-size: 18px;
            }
    ​
            .main {
                grid-area: main;
                background-color: #fff;
                padding: 20px;
                font-size: 18px;
                border: 1px solid #ddd;
            }
    ​
            .footer {
                grid-area: footer;
                background-color: #4CAF50;
                color: white;
                text-align: center;
                padding: 10px;
                font-size: 18px;
            }
        </style>
    </head>
    <body>
    ​
        <div class="grid-container">
            <div class="header">博客头部</div>
            <div class="sidebar">侧边栏</div>
            <div class="main">这是主内容区,可以放置博客文章内容。</div>
            <div class="footer">页脚</div>
        </div>
    ​
    </body>
    </html>

    说明

    • 使用 grid-template-areas 定义区域名称,以便更直观地控制布局。

    • 网格区域 headersidebarmainfooter 分别指定不同的区域内容。

    • 使用 gap 设置区域之间的间距,使布局更清晰。

     

    ...全文
    18 回复 打赏 收藏 转发到动态 举报
    写回复
    用AI写文章
    回复
    切换为时间正序
    请发表友善的回复…
    发表回复

    997

    社区成员

    发帖
    与我相关
    我的任务
    社区描述
    中南民族大学CSDN高校俱乐部聚焦校内IT技术爱好者,通过构建系统化的内容和运营体系,旨在将中南民族大学CSDN社区变成校内最大的技术交流沟通平台。
    经验分享 高校 湖北省·武汉市
    社区管理员
    • c_university_1575
    • WhiteGlint666
    • wzh_scuec
    加入社区
    • 近7日
    • 近30日
    • 至今
    社区公告

    欢迎各位加入中南民族大学&&CSDN高校俱乐部社区(官方QQ群:908527260),成为CSDN高校俱乐部的成员具体步骤(必填),填写如下表单,表单链接如下:
    人才储备数据库及线上礼品发放表单邀请人吴钟昊:https://ddz.red/CSDN
    CSDN高校俱乐部是给大家提供技术分享交流的平台,会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接,希望大家一起努力加油!共同建设中南民族大学良好的技术知识分享社区。

    注意:

    1.社区成员不得在社区发布违反社会主义核心价值观的言论。

    2.社区成员不得在社区内谈及政治敏感话题。

    3.该社区为知识分享的平台,可以相互探讨、交流学习经验,尽量不在社区谈论其他无关话题。

    试试用AI创作助手写篇文章吧