我目前有一个2行3列的网格。我希望所有3列大小均相等。但是,与前两列相比,第三列中的文本内容更多。这导致第三列的宽度扩大。我查看了发布到Stack Overflow的类似问题,并尝试通过将该网格项的最小宽度设置为0来解决此问题。我该如何解决此问题。下面,我提供了该页面的屏幕截图,它说明了问题。我还从相关CSS文件复制并粘贴了代码。
CSS文件:
.App {
text-align: center;
box-sizing: border-box;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.criteria-grid {
width: 100%;
display: grid;
grid-template-areas:
'header header header'
'col1 col2 col3'
;
justify-content: stretch;
justify-items: stretch;
min-height: 0;
min-width: 0;
}
.criteria-header {
grid-area: header;
}
.criteria-1 {
list-style: none;
padding: 10%;
grid-area: col1;
}
.criteria-2 {
list-style: none;
padding: 10%;
grid-area: col2;
}
.criteria-3 {
list-style: none;
padding: 10%;
grid-area: col3;
min-width: 0;
}
Shubh Sheth的回答是正确的,但可能是另一种写作方式:
grid-template-columns: repeat(3, 1fr);
当您有许多要布局的列时派上用场。
话虽如此,您的错误是您未指定列而是仅指定区域。
grid-template-areas:
'header header header'
'col1 col2 col3'
;
网格区域与with网格模板列结合使用,而不是替代”。
因此您的布局代码应如下所示:
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-areas:
'header header header'
'col1 col2 col3';
在这种情况下,您可以删除模板区域代码,因为您无需更改任何位置。
在您的。criteria-grid中添加此样式
grid-template-columns: 1fr 1fr 1fr;