如果我可以引导你到以下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
选择器的注解将导致文本偏离中心。此外,增加该选择器中的字体大小将进一步将文本置于左手。
这是为什么呢?
1条答案
按热度按时间i2loujxw1#
网格布局使
.MLC
元素本身居中,但文本内容没有居中。默认情况下,文本在其容器中总是左对齐的(至少对于LTR语言来说是这样)。它之前只是水平居中,因为三个
<div>
都接近相同的宽度。您可以将以下规则添加到
.MLC
以使其居中:调试提示:
如果将来遇到类似的情况,请尝试为受影响的元素添加一个大纲,以帮助可视化正在发生的事情。例如: