如何将文本缩进一个字符宽度

时间:2012-02-24 09:42:34

标签: css fonts text-indent

前提条件是我使用等宽作为我的 font-family ,但它似乎无法正常工作,我已经尝试了一些解决方案工作,我的HTML结构如下:

<!DOCTYPE html>
<style>
  body {
    font-family: monospace;
    letter-spacing: 0;
    word-spacing: 0;
    font-size: 32px; /* large enough to see the effect */
  }
  div:last-of-type {
    padding-left: 1em; /* what's the value? */
  }
</style>
<div>123456</div>
<div>abcdef</div>
  1. 使用 em

    em 应该等于计算字体大小值,但 padding-left:1em; 不起作用:

    em

  2. 使用 px

    padding-left:32px; padding-left:1em; 输出相同的输出。

  3. 使用 ex

    ex 应该是字母'x'的计算高度,并且它也不起作用:

    ex

  4. 使用 ch

    好的,webkit 支持 ch 作为css单位。

  5. 那么如何编写css来精确缩进第二个div 一个字符宽度,也就是说,第一个'0'应该与字母'b'左对齐,没有任何偏差

2 个答案:

答案 0 :(得分:8)

一种可能的方法,虽然有点hacky,但是使用带有:before的{​​{1}}伪选择器在行前插入一个空格:

content

我不知道哪些浏览器支持此功能,但我认为所有现代浏览器都会支持。

http://jsfiddle.net/cavqM/

答案 1 :(得分:3)

根据Tatu的方法,你可以使用像&nbsp;这样的无破坏空间的unicode表示

div:last-of-type:before {
   content: "\00a0"; /* this is &nbsp; */
}

HTH,

- hennson