【问题标题】:Tab width CSS property标签宽度 CSS 属性
【发布时间】:2011-07-19 22:09:25
【问题描述】:

WebKit 和 Microsoft 浏览器是否支持像 Firefox 和 Opera 那样使用 -moz-tab-size-o-tab-size 属性指定标签宽度的任何方法?

例如,我希望<textarea> 中的选项卡宽度为 4 个空格:

textarea {
    -moz-tab-size: 4;
    -o-tab-size: 4;
    /* How would I do this in Chrome, Safari, and IE? */
}


[更新:]

我创建了一个tab-size polyfill (Demo):

<script> // tab-size polyfill
var codeElements = document.getElementsByTagName('code'), // Applies to all code elements. Adjust to your needs.
codeElementCount = codeElements.length,
e = d.createElement('i');

if(e.style.tabSize !== '' && e.style.mozTabSize !== '' && e.style.oTabSize !== '') {
    for(var i = 0; i < codeElementCount; i++) {
        codeElements[i].innerHTML = codeElements[i].innerHTML.replace(/\t/g,'<span class="tab">&#9;</span>');
    }
}
</script>

<style>
.tab {
    width: 2.5em; /* adjust to your needs */
    display: inline-block;
    overflow: hidden;
}
</style>

注意:这不适用于&lt;textarea&gt;s,但仅适用于可以包含其他元素的元素。如果浏览器确实支持tab-size,它将使用它。

【问题讨论】:

标签: css tabs cross-browser


【解决方案1】:

tab-size 目前仅由 Firefox 和 Opera 使用您给定的供应商前缀实现。

对于 WebKit,there's a bug report 请求实现该属性。我相信这方面的工作已经开始,正如该报告中的 cmets 所示。

对于 IE,好吧,我找不到任何关于 IE9 或 IE10 中的 -ms-tab-sizetab-size 实现的信息。我想 IE 团队并没有那么聪明。

【讨论】:

  • Chrome 现在似乎支持tab-size 属性。
  • @BoltClock 那么twitter bootstrap是如何在他们的代码示例中做到这一点的呢?他们没有使用我见过的任何东西,他们没有使用 tab-size css 属性,他们没有用空格或任何宽度合适的跨度替换它。
【解决方案2】:

似乎有一个similar question on this subject,但它并没有完全正确地回答这个问题。它确实如此,但是提到显然是tab stops do exist in CSS,虽然我无法想象浏览器支持对它那么好。

Searching on google 因为它几乎没有提供有关该主题的信息,这进一步让我相信它没有很好地实现或使用。希望对您有所帮助。

编辑

W3C 链接确实提到了制表位,但它只是一个工作草案 - 一个提案,并未实施。

【讨论】:

  • CSS 中不存在制表位。那只是 14 多年前的工作草案。
  • 我的 糟糕,我刚刚发现它们在CSS3 working drafts 中以tab-size 重新出现(并且,正如 OP 所示,Firefox 和 Opera 有自己的实现)。他们没有进入 CSS1 或 CSS2,但他们可能有机会进入 CSS3。
  • 找到了,然后又忘记了……叹息。总有一天我们会有标签!
猜你喜欢
  • 1970-01-01
  • 2010-10-11
  • 2013-05-25
  • 2012-06-04
  • 1970-01-01
  • 2019-02-05
  • 2013-07-22
  • 2012-06-16
  • 1970-01-01
相关资源
最近更新 更多