css 居中阿拉伯符号字母

ffscu2ro  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(155)

默认情况下,这些符号位于مُحَمَّد等字符的上方。我想知道是否可以将这些符号居中。

.wrapper {
  text-align: center;
  vertical-align: center;
}

span {
  font-size: 4rem;
  display: inline-block;
  padding: 2rem;
  margin: 0.2rem;
  background: pink;
}
<div class="border border-5 border-primary rounded text-white text-center p-2">
  <div class="wrapper mb-4 bg-primary text-white text-center">
    <span class="bg-dark"> َ</span>
    <span class="bg-dark"> ْ</span>
    <span class="bg-dark"> ُ</span>
  </div>
</div>

我试过:

.wrapper,
span {
    display: flex;
    align-items: center;
}

但没有成功。
此外,我尝试用position: absolute; top: 50%; transform: translateY(-50%);将符号分隔在一个跨度内,但也不起作用。

pkbketx9

pkbketx91#

这是一个有趣的挑战,阿拉伯字符的宽度似乎是0。
因此,要使它们水平居中(使用text-align属性),您需要添加一些东西来增加宽度,我使用了&nbsp;字符来实现这一点。
[与文本水平对齐]

<span class="bg-dark">
     َ&nbsp;
</span>
<span class="bg-dark">
     ْ&nbsp;
</span>
<span class="bg-dark">
     ُ&nbsp;
</span>

纵向上,这些字符占用的空间似乎比它们应该占用的空间大(我猜是因为它们在阿拉伯语中的使用)。为了解决这个问题,我在span标签周围添加了另一个div。这也解决了使用&nbsp;的需要。这个div和span标签的背景色必须相同(或者您可以将span标签的background-color设置为透明)。然后您将height属性设置为阿拉伯字符以降低其高度。然后您可以使用新的div垂直和水平定位元素(通过Flexbox)。
[水平和垂直,带Flexbox]
x一个一个一个一个x一个一个二个x

相关问题