【发布时间】:2017-05-23 18:30:10
【问题描述】:
在非视网膜显示器上,Unicode 表情符号字符似乎溢出了它的边界框,但它仍然在视网膜显示器上的字符边界内。那么如何在视网膜和非视网膜显示器上将 div 中的表情符号水平居中?
非视网膜:
视网膜:
这适用于视网膜屏幕,但在非视网膜显示器上会偏离几个像素:
<div style="text-align: center; width: 3rem; border: 1px solid red;">????</div>
这是一个 CodePen 来尝试https://codepen.io/anon/pen/GmzoNP。您将需要视网膜和非视网膜屏幕来观察问题。
以下是我尝试过的一些想法。我还没有成功,但我认为最后两个在正确的轨道上:
- 文本居中对齐(毕竟是文本)
- 宽度:0,左边距 50%,变换:translateX(-50%)...
- 更改字符宽度
- 使用等宽字体
关于其他人如何解决此问题的一些背景信息 - Slack 和 Google 都只使用表情符号的图像。这在我的情况下并不理想,因为它会增加包大小并且需要一些额外的逻辑来处理复制/粘贴。
【问题讨论】: