在CSS中更改选项卡空间长度

时间:2012-01-08 23:30:33

标签: javascript css character

  1. 我需要通过CSS将8个空格的标签(\t键)的默认行为更改为4个空格。有可能吗?

  2. 如果没有,我可以使用javascript进行模拟吗?有一些库或方法可以做到吗?

  3. 示例

    自:

    [tabtab][tabtab][tabtab]Hello World
    [tabtab]  Hey!
    

    更改为:

    [tb][tb][tb]Hello World
    [tb]  Hey!
    

    修改

    请注意:如果我在标签字符之前有1到3个字符,则该标签将只显示1个空格,而不是4个。

    H[tabtb]ello World! --will be--
    H[t]ello World!
    

    另一个例子,没有[tab] 伪键

    TAB GRID
    ---4---8---4---8-...
    
    H       ello World (1 tab key after H = 7 spaces, instead of 8) --will be--
    H   ello World (1 tab key sized 4 will be 3 spaces because of H)
    
    He      llo World
    He  llo World
    
    Hel     lo World
    Hel lo World
    
    Hell    o World
    Hell    o World*
    

    *此示例不会删除它,只是发送到下一个

    修改2

    我向Chrome发布了一个问题:read here

2 个答案:

答案 0 :(得分:4)

div,p,span,textarea {
   -tab-size     : 3;
   -o-tab-size   : 3;
   -moz-tab-size : 3;
}

答案 1 :(得分:2)

可以通过将制表符转换为空格来在JavaScript中完成,您可以控制每个制表符的空格数。与white-space样式结合使用可以使其正常工作。

JavaScript看起来像这样:

function tabs2spaces(str, spaces) {
  return str.toString().replace(/\t/g, (new Array(spaces+1)).join(' '));
}
alert(tabs2spaces("\thello world\there\twe\tgo", 4));