CSS:如何在元素内容之前添加空格?

Hug*_*lpz 101 css unicode space css-content

以下代码均不起作用:

p:before { content: " "; }
p:before { content: " "; }
Run Code Online (Sandbox Code Playgroud)

如何在元素内容之前添加空格?

注意:我需要为border-left和margin-left上色以进行语义使用,并将空格用作无色边距.:)

Hug*_*lpz 217

您可以使用非中断空间的unicode:

p:before { content: "\00a0 "; }
Run Code Online (Sandbox Code Playgroud)

请参阅JSfiddle演示

[由@Jason Sperske改进的风格]

  • 为什么"\ 00a0"末尾的空格?这是必要的还是我们可以做"\ 00a0"`? (3认同)
  • 我做了一个小编辑,所以你可以看到它的效果:http://jsfiddle.net/uMFHH/3/(否则它看起来像一个边缘,这带来了一个很好的问题,为什么不只是添加一个保证金?) (2认同)
  • @jbyrd:不需要(参见 http://jsfiddle.net/nhyw6e9q/)。我把它留在那里是为了表明没有考虑正常空间。 (2认同)

cHa*_*Hao 35

插入空间不要放屁.首先,IE的旧版本不会知道你在说什么.除此之外,总的来说还有更简洁的方法.

对于无色缩进,请使用该text-indent属性.

p { text-indent: 1em; }
Run Code Online (Sandbox Code Playgroud)

JSFiddle演示

编辑:

如果要将空间着色,可以考虑在第一个字母处添加粗左边框.(我几乎 - 但不是说"反而",因为如果你同时使用这两种缩进可能是一个问题.但是我完全依靠边界来缩进它感觉很脏.)你可以指定多远,以及宽度,颜色使用第一个字母的左边距/填充/边框宽度.

p:first-letter { border-left: 1em solid red; }
Run Code Online (Sandbox Code Playgroud)

演示

  • 如果你坚持支持IE <8,这个方法将在伪元素之前/之后不起作用. (2认同)

小智 11

/* Most Accurate Setting if you only want
   to do this with CSS Pseudo Element */
p:before { 
   content: "\00a0";
   padding-right: 5px; /* If you need more space b/w contents */
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*att 7

由于您正在寻找在元素之间添加空间,因此您可能需要像边距左侧或填充左侧那样简单的内容.以下是http://jsfiddle.net/BGHqn/3/的示例

这将在段落元素的左侧添加10个像素

p {
    margin-left: 10px;
 }
Run Code Online (Sandbox Code Playgroud)

或者如果您只想在段落元素中填充一些内容

p {
    padding-left: 10px;
}
Run Code Online (Sandbox Code Playgroud)