如何基于Papernorm DIN-A创建CSS-Grid系统

时间:2018-10-19 13:06:16

标签: html css web grid css-grid

我想制作一个DIN-A网格并用文本和图像填充它们。网格基于DIN-A Norm是很重要的。

我尝试了一下,效果还不错。问题是,当我减小浏览器的高度时,框的比例会发生变化。

我不确定是否可以实现这样的响应式布局。同样重要的是,盒子的内容不应迫使盒子变大。我将缩小内容。唯一的例外是底部的Grid-Cell“ A1”。这个应该/可以扩展到无穷大。

任何想法如何实现这一目标?

以下是代码:https://codepen.io/anon/pen/PyedKo

HTML

<div id="wrapper">
    <body>
        <main>
            <div class='grid1'>
                <div class="A1">
                    <h6> A1 </h6>
                </div>
                <div class="A2">
                    <h6> A2 </h6>
                </div>
                <div class='grid2'>
                    <div class="A3">
                        <h6> A3 </h6>
                    </div>
                    <div class="A4">
                        <h6> A4 </h6> <br><br>
                    </div>
                    <div class='grid3'>
                        <div class="A5">
                            <h6> A5 </h6> <br>
                        </div>
                        <div class="A6">
                            <h6> A6 </h6> <br>
                        </div>
                        <div class='grid4'>
                            <div class="A7">
                                <h6> A7 </h6> <br>
                            </div>
                            <div class="A8">
                                <h6> A8 </h6>
                            </div>
                            <div class="empty">
                                <p>
                                    <h6> A8 </h6>
                                 </p>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
</div>
</div>
</main>
</div id="wrapper">
</body>

CSS

:root {
--background-color: rgba(250,250,250,1);
}

* {
box-sizing: border-box;
padding: 0;
margin: 0;
outline: 0;
border: 0;
}

body {
background-color: rgba(0, 255, 0, 0.1)
}

#wrapper {
display: flex;
justify-content: center;
align-items: center;
height: auto;
width: 100vw;
}

h1, h2, h3, h4, h5, h6, p {
font-family: "Roboto", sans-serif;
}

h6 {
color: grey;
font-weight: 400;
margin-bottom: 20px;
padding-bottom: 5px;
float: left;
border-bottom: 1px solid grey;
width: 100%;
}

main {
width: 100vh;
height: 141vh;
}

.grid1, .grid2, .grid3, .grid4 {
height: 100%;
width: 100%;
display: grid;
grid-gap: 5px;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
grid-template-areas:
"tleft bleft"
"bottom bottom";
}


.A1 {
grid-area: bottom;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 15px;
}

.A2 {
grid-area: tleft;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 15px;
}

.A3 {
grid-area: bottom;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 15px;
}

.A4 {
grid-area: tleft;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 15px;
}

.A5 {
grid-area: bottom;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 10px;
}

.A6 {
grid-area: tleft;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 10px;
}

.A7 {
grid-area: bottom;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 5px;
}

.A8 {
grid-area: tleft;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 5px;
}

.empty {
grid-area: bleft;
background-color: var(--background-color);
border: 1px solid lightgrey;
padding: 5px;
}

0 个答案:

没有答案