2010-02-08 13 views

risposta

61

soluzione è quella di avvolgere il vostro imbottita div, con div esterno larghezza fissa

HTML

<div class="outer"> 
    <div class="inner"> 

     <!-- your content --> 

    </div><!-- end .inner --> 
</div><!-- end .outer --> 

CSS

.outer, .inner { 
    display: block; 
} 

.outer { 
    /* specify fixed width */ 
    width: 300px; 
    padding: 0; 
} 

.inner { 
    /* specify padding, can be changed while remaining fixed width of .outer */ 
    padding: 5px; 
} 
+0

Grazie! e grazie a tutti per le risposte – Ryan

+0

Non volevo chiarire, non ne sono sicuro, ma funzionerebbe solo per il riempimento orizzontale giusto? Come altezza: auto non riempie la larghezza genitore: auto fa. –

4

Per ottenere un risultato coerente tra browser, di solito si aggiunge un altro div all'interno dello div e si assegna che non c'è larghezza esplicita e un margin. Lo margin simulerà padding per il div esterno.

15

Suona come seicercando di simulare il modello di box IE6. È possibile utilizzare la proprietà CSS 3 box-sizing: border-box per raggiungere questo obiettivo. Questo è supportato da IE8, ma per Firefox è necessario utilizzare -moz-box-sizing e per Safari/Chrome, utilizzare -webkit-box-sizing.

IE6 calcola già l'altezza sbagliata, quindi sei bravo in quel browser, ma non sono sicuro di IE7, penso che calcolerà l'altezza allo stesso modo in modalità quirk.

+0

css3 è ancora molto nuovo come l'iPad :) – Ryan

129

Declare questo nel vostro CSS e si dovrebbe essere buono:

* { 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    box-sizing: border-box; 
} 

Questa soluzione può essere implementata senza l'utilizzo di involucri aggiuntivi

+0

funziona come un fascino sono novellino, cerco solo questa proprietà e funziona Great Man ..... – nida

+1

+1 - La migliore risposta! – Kareem

+1

Ci sono degli effetti collaterali che dovrei prestare attenzione quando lo uso? – Radi

4

provare questo trucco

div{ 
-webkit-box-sizing: border-box; 
-moz-box-sizing: border-box;  
box-sizing: border-box;  
} 

questo costringerà il browser per calcolare la larghezza secondo la larghezza "esterna" del div, significa che il riempimento sarà sottratto dalla larghezza.

+3

questa è la stessa risposta di @ adswebwork, giusto? Apprezzo la spiegazione di come funziona, ma probabilmente è meglio come commento – craq

+0

perché postare una risposta identica – Andrew

Problemi correlati