2011-07-13 18 views
6

Istnieje sposób ustawiania szerokości strony PRE w Firefoksie i Operze, ale nie jest to dobrze znany sposób w IE lub Chrome, a twardy kod w tagach PRE cierpi w wyniku tego.Ustawianie szerokości zakładki PRE w różnych przeglądarkach

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%; 
} 
+3

Dlaczego nie jest to blok i pionowe centrowanie trywialne w CSS3? Podstawowe układy są znacznie bardziej użyteczne niż zaokrąglone rogi. – mcandre

Odpowiedz

-1

CSS 3 Text tab-size cechą jest też nowy (a nie prawie tyle znormalizowane), że widział szerokie wdrożenie tej pory (plus klapki nie są bardzo popularne w ogóle).

W przypadku kodu z twardymi kartami, po prostu przeprowadź konwersję między kartami, zanim umieścisz go na stronie.

Podstawowe układy są znacznie bardziej użyteczne niż zaokrąglonymi narożnikami

Tabs nigdy nie były przeznaczone do wykonywania zadań układu ogólnego przeznaczenia (i byłoby zupełnie nie nadają się do tego). W CSS3 można znaleźć bardziej rozbudowane funkcje układu - patrz na przykład Grid i Flexbox w IE10.

+6

-1: Istnieje równie wiele (jeśli nie więcej) argumentów przeciwko kodowi "w twardym odstępie". –

+2

-1, ponieważ używanie zakładek do kodowania i ustawianie wielkości tabulatora w ulubionym edytorze jest bardziej atrakcyjne wizualnie i wygodne niż używanie spacji. – OneOfOne

3

Według MDN za tab-size stronie, właściwy format:

tab-size: 4; 
-moz-tab-size: 4; 
-o-tab-size: 4; 

JavaScript awaryjna:

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 
    }); 
}); 
+0

Bummer, że Opera nigdy nie zobaczy standardowego stylu szerokości karty. rozerwać. – ThorSummoner

+0

Nie używam Opery, jednak najnowsza Opera używa Blink, widelca Googlek Webkit, więc może go obsługiwać. – OneOfOne

+1

Aby wyjaśnić, mam na myśli operę oparta na Pesto, 12.x został wycofany, wspierając tylko deklarację szerokości o-tab. zasadniczo oznacza to, że nasi użytkownicy Opery (głównie na Linuksie) prawie nigdy nie zobaczą prawidłowych stylów tabulacji, chyba że programiści skopiują ten przykład i zdecydują się dołączyć specyfikację opery. – ThorSummoner

Powiązane problemy