2016-11-29 102 views
4

時,我只是想知道,爲什麼在CSS使用的unicode當內容後,我不能把空間的Unicode:爲什麼我不能後使用空間:前:使用Unicode

這是我的測試:

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';}
<div class="a">A-Hello</div> 
 
<div class="b">B-Hello</div> 
 
<div class="c">C-Hello</div> 
 
<div class="d">D-Hello</div>


所以,你會使用非Unicode允許字符後添加空間看BD。但是當使用unicode(AC)時,空格消失了。

.x:before {content: '\2022 ';}
<div class="x">Hello</div>

所以問題是:爲什麼以及如何增加實際空間焦炭uncicode後(我們按鍵盤上的空格鍵)?(不使用邊距填充)

+1

一個你已經使用逃生斜線應用unicode它**保持逃逸**,所以'正常'的鍵盤「空間」不再適用於該字符串。 –

回答

6

該空間作爲轉義序列的一部分使用,以防止其他十六進制字符被誤解爲轉義序列的一部分。從spec

如果在範圍[0-9A-FA-F]的字符如下十六進制數,需要進行明確的數量的端部。有兩種方法可以做到這一點:

  1. 用空格(或其它空白字符): 「\ 26 B」( 「& B」)。在這種情況下,用戶代理應將「CR/LF」對(U + 000D/U + 000A)視爲單個空白字符。
  2. 通過提供準確6個十六進制數字: 「\ 000026B」( 「& B」)

例如,空間有助於從字符串'\2022ff',這將意味着完全不同的東西區分字符串'\2022 ff'(我甚至不確定它代表了一個真實的角色)。

的特殊字符後添加一個空格,加一個空格字符:

.x:before {content: '\2022 ';}
<div class="x">Hello</div>

+0

那個招數!!!!感謝您的好幫手。 – l2aelba

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';}
<div class="a">A-Hello</div> 
 
<div class="b">B-Hello</div> 
 
<div class="c">C-Hello</div> 
 
<div class="d">D-Hello</div>

+0

Ohhhh謝謝,'\ 2022 \ A0' – l2aelba

相關問題