如何使用 CSS 的 content
属性来添加 HTML 实体?
像这样使用只会在屏幕上打印出
而不是非换行空格:
.breadcrumbs a:before {
content: ' ';
}
如何使用 CSS 的 content
属性来添加 HTML 实体?
像这样使用只会在屏幕上打印出
而不是非换行空格:
.breadcrumbs a:before {
content: ' ';
}
你必须使用转义的 Unicode:
例如:
.breadcrumbs a:before {
content: '\0000a0';
}
'>\a0 bc'
显示为 > bc
。请注意不改变原意,使语言通俗易懂。 - PointedEars
是一个命名的character reference,等同于十进制数字字符引用 
。160是Unicode(或UCS-2;请参见HTML 4.01 Specification)中NO-BREAK SPACE
字符的十进制码点。该码点的十六进制表示为U+00A0(160 = 10 × 16 1 + 0 × 16 0)。您可以在Unicode Code Charts和Character Database中找到它。.breadcrumbs a:before {
content: '\a0';
}
.breadcrumbs a:before {
content: '\0000a0foo';
}
b) 在转义序列后添加一个空格字符(例如,空格):
.breadcrumbs a:before {
content: '\a0 foo';
}
(由于f
是十六进制数字,\a0f
在此处本来表示GURMUKHI LETTER EE
,或ਏ(如果您有合适的字体)。)
定界空格将被忽略,并显示 foo
,其中此处显示的空格将是NO-BREAK SPACE
字符。
使用空格的方法('\a0 foo'
)相对于六位数的方法('\0000a0foo'
)具有以下优点:
因此,要在转义字符后显示一个空格,请在样式表中使用两个空格-
.breadcrumbs a:before {
content: '\a0 foo';
}
- 或者明确表示:
.breadcrumbs a:before {
content: '\a0\20 foo';
}
white-space
CSS 属性声明了其他情况。 - PointedEarswhite-space: normal
。 - TWiStErRobNO-BREAK SPACE
字符,所以我使用了它的转义序列。您可以选择任何其他转义序列;如果需要,您也可以声明white-space: nowrap
。 - PointedEars更新:PointedEars提到,在所有CSS情况下,正确的替代
的方式应该是'\a0 '
,这意味着空格是十六进制字符串的终止符,并被转义序列吸收。他进一步指出了这个权威描述,听起来是解决我所描述并修复的问题的好方法。
你需要做的是使用转义的Unicode。尽管你可能已经被告知\00a0
是
在CSS中的完美替代品;所以请尝试:
content:'>\a0 '; /* or */
content:'>\0000a0'; /* because you'll find: */
content:'No\a0 Break'; /* and */
content:'No\0000a0Break'; /* becomes No Break as opposed to below */
具体来说,使用\0000a0
作为
。
如果您尝试像mathieu和millikin建议的那样:
content:'No\00a0Break' /* becomes No਋reak */
它将B转换为十六进制转义字符。0-9a-fA-F也是如此。
'\a0 Break'
。 '\0000a0Break'
不可靠。 - PointedEarsCSS中需要使用Unicode转义序列来代替HTML实体,这基于字符的十六进制值。
我发现将符号转换为其十六进制等效项的最简单方法是使用Microsoft计算器=),例如从▾(▾
)到\25BE
。
是的。启用程序员模式,打开十进制系统,输入9662
,然后切换到十六进制,你将得到25BE
。然后只需在开头添加反斜杠\
即可。
\25B8
▸
▸
) 万岁。另外,更多信息请参见 http://en.wikipedia.org/wiki/Geometric_Shapes。 - Joel Purra使用十六进制代码表示不间断空格。例如:
.breadcrumbs a:before {
content: '>\00a0';
}
有一种方法可以粘贴一个 nbsp
- 打开字符映射表并复制 字符160。但是,在这种情况下,我可能会使用填充来留出空白,像这样:
有一种方法可以将 nbsp
粘贴进去 - 打开字符映射表并复制字符160。但是,在这种情况下,我可能会使用填充将它空开,例如:
.breadcrumbs a:before { content: '>'; padding-right: .5em; }
你可能需要将面包屑设置为display:inline-block
或其他样式。
例如:
http://character-code.com/arrows-html-codes.php
示例:如果您想选择您的字符,我选择了“↬”和“↬”(我们使用十六进制值)。
.breadcrumbs a:before {
content: '\0021ac';
}
结果: ↬
就是这样 :)
.breadcrumbs a::before {
content: '>';
margin-left: 8px;
margin-right: 8px;
}
我以前用过这种方法。在我的测试中,它与">"一起很好地换行到其他行。
以下是两种方法:
HTML 中:
<div class="ics">⛱</div>
这将会显示出 ⛱
CSS 中:
.ics::before {content: "\9969;"}
使用 HTML 代码 <div class="ics"></div>
同样能够显示出 ⛱
只是为了让这里的答案更完整。如果您正在使用像content: attr(aria-label);
这样的东西,则不需要使用Unicode转义,而是需要使用HTML实体。例如,使用
来生成换行符。
:after
在已排序的列上设置升序/降序排序指示符是完全可以接受(并且是好的做法)。 - Josh M.