【发布时间】:2020-04-20 19:36:06
【问题描述】:
在谷歌浏览器中将表情符号在视觉上水平居中是非常困难的,因为表情符号右侧似乎不应该有空格。一个例子:
.avatar {
width: 30px;
padding: 10px;
background-color: #eee;
border-radius: 50%;
display: grid;
justify-items: center;
align-items: center;
}
<div class="avatar">
<div>🐶</div>
</div>
https://codepen.io/tommedema/pen/xxbXBRe
在 MacOS Catalina 10.15.2 上的 Chrome 79.0.3945.79 中,这呈现为:
显然,它在视觉上不是水平居中的。然而在 Safari 和 Firefox 71 等其他浏览器中却是:
关于 Carol 的使用 font-size 和 box-sizing 的回答,结果还是一样的。我选择了表情符号/文本,以便您可以更清楚地看到表情符号右侧有空格的问题,但仅限于 Chrome 而不是其他浏览器:
【问题讨论】:
-
你试过
display: flex;justify-content: center;align-items: center;吗? -
@AkhiAkl 是的 (codepen.io/tommedema/pen/MWYExXz),效果一样。问题是表情符号似乎在视觉上占据了更大的宽度(就像表情符号后面有一个空间)
-
@Basil,一点也不。如果您阅读了我的问题,很明显这是特定于 Chrome 呈现表情符号的方式
-
表情符号是文字,所以我看不出表情符号和其他任何东西之间有任何区别!!
-
这似乎是特定于供应商的问题:有趣的是,Brave 和 Opera 等其他基于铬的浏览器没有这个问题。这似乎与 Chrome 如何调整 unicode 字符有关。