网格布局

Posted djosimon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网格布局相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html>
<style type="text/css">
    body {
    box-sizing: border-box;
    }
    .包装{
        display: grid;
        grid-template-columns: repeat(3,1fr);
        width: 800px;
        grid-auto-rows: 125px;
        border: 1px solid blue;
        border-radius: 10px;
        background-color: lightgray;
        grid-gap: 0.5em;
    }
    .box{
        border: 1px solid blue;
        border-radius: 10px;
        color: white;
        background-color: gray;
    }
    .box1{
        grid-template-columns: repeat(3, 70px);
        grid-template-rows: repeat(3,70px);
        display: grid;
        border: 1px solid blue;
        border-radius: 10px;
        grid-column-start: 1;
        grid-column-end: 4;
        grid-row-start: 1;
        grid-row-end: 3;
        grid-gap: 0.5em;
        background-color: gray;
        grid-template-areas: 
        "a a b"
        "a a b"
        "c d d";
    }
    .item1{
        grid-area: a;
        background: gold;
        border: 1px solid white;
        border-radius: 10px;
    }
    .item2{
        grid-area: b;
        background: gold;
        border: 1px solid white;
        border-radius: 10px;
    }
    .item3{
        grid-area: c;
        background: gold;
        border: 1px solid white;
        border-radius: 10px;
    }
    .item4{
        grid-area: d;
        background: gold;
        border: 1px solid white;
        border-radius: 10px;
    }
    .box2{
        border: 1px solid blue;
        border-radius: 10px;
        grid-column-start: 1;
        grid-row-start: 3;
        grid-row-end: 5;
        background-color: gray;
        color: white;
    }

    * {box-sizing: border-box;}
    .包装2{
        width: 800px;
        grid-auto-rows: 110px;
        grid-template-columns: repeat(3,1fr);
        border: 2px solid black;
    }
    .包装2 ul{
        overflow: scroll;
        margin: 0 -10px;
        padding: 0;
        list-style: none;
    }
    .包装2 li{
        float: left;
        display: inline-block;
        vertical-align: top;
        width: calc(33.333333% - 20px);
        margin: 0px 10px 20px 10px;
        background: red;
        color: white;
    }
    .卡片3{
        grid-column: 1;
        grid-row: 2;
    }
    @supports (display: grid) {
    .包装2 ul {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 20px;
        margin: 0;
    }
    .包装2 li {
        width: auto;
        min-height: auto;
        margin: 0;
        }
    }

    .包装3{
        width: 800px;
        border: 2px solid black;
    }
    .默认{
        border: 1px solid black;
    }
    .垂直{
        border: 1px solid black;
    }


</style>
<head>
    <meta charset="utf-8">
    <title>网格布局1</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <div class="包装">
        <div class="box1">
            <div class="item1">a</div>
            <div class="item2">b</div>
            <div class="item3">c</div>
            <div class="item4">d</div>
        </div>
        <div class="box2"></div>
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
    </div><br><br>

    <div class="包装2">
        <ul>
            <li class="卡片1"><h2>A</h2>
                <p>我们可以使用CSS网格覆盖旧的方法</p>
                <p>我们可以使用CSS网格覆盖旧的方法</p>
            </li>
            <li class="卡片2"><h2>B</h2>
                <p>我们可以使用CSS网格覆盖旧的方法</p>
            </li>
            <li class="卡片3"><h2>C</h2>
                <p>我们可以使用CSS网格覆盖旧的方法</p>
                <p>与卡片D位置调换</p>
            </li>
            <li class="卡片4"><h2>D</h2>
                <p>我们可以使用CSS网格覆盖旧的方法</p>
                <p>与卡片C位置调换</p>
            </li>
            <li class="卡片5"><h2>E</h2>
                <p>我们可以使用CSS网格覆盖旧的方法</p>
                <p>我们可以使用CSS网格覆盖旧的方法</p>
            </li>
            <li class="卡片6"><h2>F</h2>
                <p>我们可以使用CSS网格覆盖旧的方法</p>
            </li>
        </ul>
    </div><br><br>

    <div class="包装3">
        <p style="writing-mode: horizontal-tb" class="默认">我将写入模式设置为默认<code>horizontal-tb</code></p>
        <p style="writing-mode: vertical-rl" class="垂直">我的写作模式设置为<code>vertical-rl</code></p>
    </div><br><br>

</body>
</html>

 

网页效果图:

page1:

技术分享图片

page2:

技术分享图片

page3:

技术分享图片

 


以上是关于网格布局的主要内容,如果未能解决你的问题,请参考以下文章

Python - 使用网格布局格式化窗口

Kotlin 中的网格布局?

Android Studio XML 布局文件存在但我找不到

在片段中在运行时更改方向时更改布局而不重新创建视图

安卓网格布局如何用java代码实现跨多行跨多列

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用