有一种方法可以在Firefox和Opera中设置PRE标签宽度,但是在IE或Chrome中没有一种众所周知的方法可以做到这一点,因此PRE标签中的硬标签代码会受到影响。
pre {
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
word-wrap: break-word;
-moz-tab-size: 1.5em;
-o-tab-size: 1.5em;
margin: 1em 0 0 0;
padding: 1em 1em 1em 1em;
width: 65%;
}
答案 0 :(得分:6)
根据MDN的tab-size页面,正确的格式为:
tab-size: 4;
-moz-tab-size: 4;
-o-tab-size: 4;
JavaScript后备:
var fix_tab_size = function(pre, size) {
if(typeof fix_tab_size.supports === 'undefined') {
var bs = document.body.style;
fix_tab_size.supports = ('tab-size' in bs || '-o-tab-size' in bs || '-ms-tab-size' in bs || '-moz-tab-size' in bs);
}
if(!fix_tab_size.supports) {
if(typeof pre.each === 'function') { //jquery
$('pre').each(function() {
var t = $(this);
t.html(t.html().replace(/\t/g, new Array(size+1).join(' ')));
});
} else if(typeof pre.innerHTML === 'string') {
pre.innerHTML = pre.innerHTML.replace(/\t/g, new Array(size+1).join(' '));
}
}
}
$(function() {
fix_tab_size($('pre'),4);
//or
$.getJSON(src, function(data) {
fix_tab_size($data_pre.html(data.code)); //etc
});
});
答案 1 :(得分:-2)
CSS 3文本功能tab-size
太新了(并且不够标准化)到目前为止已经看到了广泛的部署(加上标签通常不是很受欢迎)。
对于硬标签代码的情况,只需在将其放入页面之前通过制表符到空格的转换运行。
基本布局比圆角更有用
标签从不打算用于执行通用布局任务(并且完全不适合)。有更强大的布局功能被吹捧为CSS3 - 参见IE10中的Grid和Flexbox。