我确定我使用的是错误的,但这是我的代码:
.item1 {
grid-area: myArea;
}
.grid-container {
display: grid;
grid-template-areas: 'myArea myArea . . .';
grid-gap: 10px;
background-color: #2196F3;
padding: 10px;
}
.grid-container>div {
background-color: rgba(255, 255, 255, 0.8);
text-align: center;
padding: 20px 0;
font-size: 30px;
}
<h1>The grid-template-areas Property</h1>
<p>You can use the <em>grid-template-areas</em> property to set up a grid layout.</p>
<p>Item1, is called "myArea" and will take up the place of two columns (out of five):</p>
<div class="grid-container">
<div class="item1">
<div>div with some very long text in it</div>
</div>
<div class="item2">2</div>
<div class="item3">3</div>
<div class="item4">4</div>
<div class="item5">5</div>
<div class="item6">6</div>
<div class="item7">7</div>
<div class="item8">8</div>
<div class="item9">9</div>
</div>
https://jsfiddle.net/danielhoang/w4ydmf3k/1/
这意味着item1应该占据40%的空间,但是在代码中,它占据了一半以上的空间。
如果我将item1更改为包含少量文本,则可以正常工作。
有没有办法使item1甚至长文本也能达到40%?
答案 0 :(得分:1)
当您使用grid-template-areas
放置网格区域但未同时定义grid-template-columns
时,后者会为每列保留默认值auto
。这意味着将根据内容的长度来调整列的大小,这就是您所看到的。
将此添加到网格容器中:
grid-template-columns: repeat(5, 1fr)
现在所有空间将均匀地分布在行中。