css 增加第一个字母的大小不再使文本正确居中

8qgya5xd  于 2023-04-01  发布在  其他
关注(0)|答案(1)|浏览(102)

如果我可以引导你到以下JSFiddle:
https://jsfiddle.net/93kepaL6/

body {
  background-color: black;
}

.MT {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: 1fr;
  row-gap: 0px;
  column-gap: 0px;
}

.MLC {
  grid-row-start: 1;
  grid-row-end: 1;
  grid-column-start: 2;
  grid-column-end: 2;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  row-gap: 0px;
  column-gap: 0px;
  color: white;
  font-size: 6rem;
  font-family: Arial, sans-serif;
  line-height: 1em;
}

.L1 {
  grid-row-start: 1;
  grid-row-end: 1;
  grid-column-start: 1;
  grid-column-end: 1;
}

.L2 {
  grid-row-start: 2;
  grid-row-end: 2;
  grid-column-start: 1;
  grid-column-end: 1;
}

.L3 {
  grid-row-start: 3;
  grid-row-end: 3;
  grid-column-start: 1;
  grid-column-end: 1;
}

/*
    .L3::first-letter {
      font-weight: 900;
      font-size: 15rem;
    }
    */
<div class="MT">
  <div class="MLC">
    <div class="L1">AAA</div>
    <div class="L2">BBB</div>
    <div class="L3">CCC</div>
  </div>
</div>

你会注意到文本如预期的那样居中。然而,取消css底部的.L3::first-letter选择器的注解将导致文本偏离中心。此外,增加该选择器中的字体大小将进一步将文本置于左手。
这是为什么呢?

i2loujxw

i2loujxw1#

网格布局使.MLC元素本身居中,但文本内容没有居中。
默认情况下,文本在其容器中总是左对齐的(至少对于LTR语言来说是这样)。它之前只是水平居中,因为三个<div>都接近相同的宽度。
您可以将以下规则添加到.MLC以使其居中:

.MLC {
  text-align: center;
}

调试提示:

如果将来遇到类似的情况,请尝试为受影响的元素添加一个大纲,以帮助可视化正在发生的事情。例如:

div {
  outline: solid 1px red;
}

相关问题