7

这是我的 HTML 结构:

div{
  direction: rtl;
}

span{
  direction: ltr;
}
<div>
  <span>امروز -2</span>
  </div>

这是预期的结果:

在此处输入图像描述

如您所见,-符号应该出现在数字的开头。我怎样才能做到这一点?

注意:的方向div应该是rtl


ٍ编辑:我生成这样的数字:

$sums_value = sprintf("%+d",$sums_value);

/* 
sums_value = -2 //=> -2
sums_value = 2  //=> +2

所以这个数字有正确的格式,但我不知道为什么它会在输出中被破坏:

在此处输入图像描述

4

3 回答 3

10

由于您的屏幕截图在不同的元素中有“-2”,span因此您可以unicode-bidi选择该特定跨度:

div{
  direction: rtl;
}

span{
  direction: ltr;
  unicode-bidi: bidi-override;
}
<div>
  امروز 
  <span>-2</span>
</div>

的一般想法unicode-bidi是能够在同一页面上有多种语言的情况下更改文本方向性的默认行为。

由于您使用的是一种RTL语言,并且您希望-2出现在 中LTR,因此unicode-bidi: bidi-override非常方便。

于 2016-08-12T16:37:27.110 回答
3

以下对我有用:

span {
  unicode-bidi: plaintext;
}

更多信息:https ://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi

顺便说一下,'bidi' 是双向的缩写。

于 2018-09-25T18:23:22.173 回答
3

您可以使用before 伪元素添加连字符。

q::before { 
  content: "-";
  color: blue;
}


<q>Some quotes</q>, he said.

将呈现为

-Some quotes, he said.
于 2016-08-12T16:08:10.707 回答