CSS 网格等大小列

问题描述 投票:0回答:3
css css-grid
3个回答
6
投票

你的网格很好 - 内容是这里的问题。

您可以尝试

word-break
overflow
作为解决方法:

word-break
解决方案:

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 2px dotted green;
}

.content {
  margin: 2em;
  border: 2px solid red;
}

.content p {
  word-break: break-word;
}
<div class="grid-container">
  <div class="content">
    <p>TESTTESTTESTTESTTESTTESTTESTTESTTES</p>
  </div>
  <div class="content">
    <p>TESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTES</p>
  </div>
  <div class="content">
    <p>TESTESTTESTTESTTESTTESTTESTTESTTESTTESTTES</p>
  </div>
</div>

overflow
解决方案:

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 2px dotted green;
}

.content {
  margin: 2em;
  border: 2px solid red;
  overflow: auto;
}
<div class="grid-container">
  <div class="content">
    <p>TESTTESTTESTTESTTESTTESTTESTTESTTES</p>
  </div>
  <div class="content">
    <p>TESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTES</p>
  </div>
  <div class="content">
    <p>TESTESTTESTTESTTESTTESTTESTTESTTESTTESTTES</p>
  </div>
</div>

编辑:显然,

word-break: break-word;
在 Firefox 中不起作用 - 谢谢,@Yaakov Ainspan。再次提醒您应该在多个浏览器中测试您的代码。可以用
word-break: break-all;
代替。


1
投票

@fen1x 的答案很接近,但不完全是。我对此进行了一些实验,发现

word-break: break-all
有效,而
break-word
则无效。 (溢出解决方案有点有效,但不是OP所要求的)。

.grid-container {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    max-width: 100%;
}

.content {
    margin: 2em;
    word-break: break-all;
}
<div class="grid-container">
        <div class="content">
            <p>TESTTESTTESTTESTTESTTESTTESTTESTTES</p>
        </div>
        <div class="content">
            <p>TESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTESTTES</p>
        </div>
        <div class="content">
            <p>TESTESTTESTTESTTESTTESTTESTTESTTESTTESTTES</p>
        </div>
    </div>

此外,该解决方案不需要应用于网格项内的各个元素,而是可以直接应用于该项。


1
投票

尝试:

grid-template-columns: repeat(3, minmax(0, 1fr));
© www.soinside.com 2019 - 2024. All rights reserved.