2010-02-08 4 views

Répondre

61

Solution est d'envelopper votre rembourré div, avec largeur extérieure div

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

Merci! et je vous remercie tous pour les réponses – Ryan

+0

Je ne veux pas clearify, je ne suis pas sûr, mais cela ne fonctionnerait que pour le rembourrage horizontal non? Comme height: auto ne remplit pas la largeur du parent: auto le fait. –

4

Pour obtenir un résultat cohérent dans plusieurs navigateurs, vous devez généralement ajouter un autre div à l'intérieur du div et ne donner aucune largeur explicite, ainsi qu'un margin. Le margin simulera padding pour la division externe.

15

On dirait que vous êtes cherche à simuler le modèle de boîte IE6. Vous pouvez utiliser la propriété CSS 3 box-sizing: border-box pour cela. Ceci est pris en charge par IE8, mais pour Firefox, vous devez utiliser -moz-box-sizing et pour Safari/Chrome, utilisez -webkit-box-sizing.

IE6 calcule déjà la hauteur incorrecte, donc vous êtes bon dans ce navigateur, mais je ne suis pas sûr de IE7, je pense qu'il va calculer la même hauteur en mode quirks.

+0

css3 est encore très nouveau comme l'iPad :) – Ryan

129

Declare dans votre CSS et vous devriez être bon:

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

Cette solution peut être mis en œuvre sans utiliser des enveloppes supplémentaires

+0

cela fonctionne comme un charme je suis débutant juste chercher cette propriété et cela fonctionne Great Man ..... – nida

+1

+1 - Meilleure réponse! – Kareem

+1

Y at-il des effets secondaires que je devrais être conscient lors de l'utilisation de cela? – Radi

4

essayer cette astuce

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

cela forcera le navigateur pour calculer la largeur en fonction de la largeur "externe" de la div, cela signifie que le remplissage sera soustrait de la largeur.

+3

c'est la même chose que la réponse de @ adswebwork, non? J'apprécie l'explication de la façon dont cela fonctionne, mais c'est probablement mieux comme un commentaire – craq

+0

pourquoi publier une réponse identique – Andrew

Questions connexes