我只是想知道为什么在 CSS 时使用 unicode 我无法在 unicode之后放置空间 :< / p>
这是我的测试: 所以你会看到使用非unicode的 所以问题是:为什么以及如何在uncicode之后添加真实空间字符(因为我们在键盘上按下空格键)(不使用边距填充)
&#13;
div {font-size:50px;}
div:before, div:after {color:green;}
.a:before {content: 'text-before \2022 ';}
.b:before {content: 'text-before • ';}
.c:after {content: ' \2022 text-after';}
.d:after {content: ' • text-after';}
&#13;
<div class="a">A-Hello</div>
<div class="b">B-Hello</div>
<div class="c">C-Hello</div>
<div class="d">D-Hello</div>
B
和D
允许在char之后添加空格。但是当使用unicode(A
和C
)时,空格就消失了。
&#13;
.x:before {content: '\2022 ';}
&#13;
<div class="x">Hello</div>
答案 0 :(得分:8)
空格作为转义序列的一部分使用,以防止其他十六进制字符被误解为转义序列的一部分。来自spec:
如果[0-9a-fA-F]范围内的字符跟随十六进制数字,则需要清除数字的结尾。有两种方法可以做到这一点:
- 带有空格(或其他空格字符):&#34; \ 26 B&#34; (&#34;&安培; B&#34)。在这种情况下,用户代理应该对待&#34; CR / LF&#34;对(U + 000D / U + 000A)作为单个空格字符。
- 提供正好6个十六进制数字:&#34; \ 000026B&#34; (&#34;&安培; B&#34)
醇>
例如,空格有助于将字符串'\2022 ff'
与字符串'\2022ff'
区分开来,这意味着完全不同(我甚至不确定它是否代表实际字符)。
要在特殊字符后添加空格,请添加另一个空格字符:
.x:before {content: '\2022 ';}
&#13;
<div class="x">Hello</div>
&#13;
答案 1 :(得分:2)
您可以在点之前或之后添加unicode空格'\00a0'
,如下所示:
div {font-size:50px;}
div:before, div:after {color:green;}
.a:before {content: 'tex-before \2022 \00a0';}
.b:before {content: 'text-before • ';}
.c:after {content: ' \2022 \00a0 text-after';}
.d:after {content: ' • text-after';}
&#13;
<div class="a">A-Hello</div>
<div class="b">B-Hello</div>
<div class="c">C-Hello</div>
<div class="d">D-Hello</div>
&#13;