【问题标题】:How to center text veritically and horizontally inside a css grid?如何在css网格内垂直和水平居中文本?
【发布时间】:2021-04-15 10:52:40
【问题描述】:

我正在尝试将一些文本置于网格容器中的中心,但我管理的最接近的是我在 sn-p 上创建的内容,但我的文本看起来几乎就像是嵌套的一样,我会喜欢它的全部居中,就像报纸/杂志的栏目一样?

我不知道我的解释是否正确。

提前致谢。

.container {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 12px;
  justify-content: center;
  justify-items: center;
  align-items: center;
  border: 1px solid black;
}

.item {
  padding: 0 12px;
  text-align: center;
}
<div class="container">
  <p class="item">Content 1 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum Content 1 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum Content 1 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum</p>
  <p class="item"> Content 2 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum Content 2 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum</p>
  <p class="item"> Content 3 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum</p>
</div>

【问题讨论】:

  • 这不起作用是什么原因?这个应该是什么样子的?

标签: css css-grid


【解决方案1】:

如果您希望多个文本行具有相同的长度,则可以使用text-align: justify;text-align: justify-all;

As mdn says abouttext-align: justify;:

justify:内联内容是合理的。文本应间隔到 将其左右边缘与 行框,最后一行除外。

text-align: justify-all;:

与 justify 相同,但也强制最后一行 有道理。

一个例子:

.container {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 12px;
  justify-content: center;
  justify-items: center;
  align-items: center;
  border: 1px solid black;
}

.item {
  padding: 0 12px;
  text-align: justify;
}
<div class="container">
    <p class="item">Content 1 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum Content 1 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum Content 1 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum</p>
    <p class="item"> Content 2 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum Content 2 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum</p>
    <p class="item"> Content 3 lorem ipsulum lorem ipsulum lorem ipsulum lorem ipsulum</p>
  </div>

【讨论】:

    【解决方案2】:

    最好的方法是使用 flexbox :

    .container {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      justify-content: center;
      align-items: center;
      
      width: 300px;
      height: 300px;
      border: solid 3px red;
    }
    <div class="container">
      <div class="item">Lorem ipsum</div>
    </div>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2011-08-07
      • 2015-09-25
      • 1970-01-01
      相关资源
      最近更新 更多