防止增加CSS网格列的大小

问题描述 投票:0回答:2

我目前有一个2行3列的网格。我希望所有3列大小均相等。但是,与前两列相比,第三列中的文本内容更多。这导致第三列的宽度扩大。我查看了发布到Stack Overflow的类似问题,并尝试通过将该网格项的最小宽度设置为0来解决此问题。我该如何解决此问题。下面,我提供了该页面的屏幕截图,它说明了问题。我还从相关CSS文件复制并粘贴了代码。

enter image description here

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;
}
css css-grid
2个回答
2
投票

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';

在这种情况下,您可以删除模板区域代码,因为您无需更改任何位置。


1
投票

在您的。criteria-grid中添加此样式

grid-template-columns: 1fr 1fr 1fr;
© www.soinside.com 2019 - 2024. All rights reserved.