2010-02-08 20 views

Respuesta

61

solución es envolver su div acolchada, con div externa ancho fijo

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

Gracias! y gracias a todos por las respuestas – Ryan

+0

Solo quiero aclarar, no estoy seguro, pero esto solo funcionaría para relleno horizontal ¿verdad? Como altura: auto no llena el ancho parental: auto hace. –

4

para lograr un resultado consistente con navegadores, que se suele añadir otro div dentro del div y darle que ningún anchura explícita, y una margin. El margin simulará padding para el div externo.

15

Suena como si estuvieras buscando simular el modelo de caja IE6. Puede usar la propiedad CSS 3 box-sizing: border-box para lograr esto. Esto es compatible con IE8, pero para Firefox debe usar -moz-box-sizing y para Safari/Chrome, use -webkit-box-sizing.

IE6 ya calcula la altura incorrecta, por lo que está bien en ese navegador, pero no estoy seguro acerca de IE7, creo que calculará la altura de la misma manera en modo peculiar.

+0

css3 sigue siendo muy nuevo, como el iPad :) – Ryan

129

nuevas de esto en tu CSS y usted debe ser bueno:

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

Esta solución se puede implementar sin necesidad de utilizar envolturas adicionales

+0

funciona como un encanto, soy novato, simplemente busca esta propiedad y funciona Great Man ..... – nida

+1

+1 - ¡La mejor respuesta! – Kareem

+1

¿Hay algún efecto secundario que deba tener en cuenta al usarlo? – Radi

4

intentar este truco

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

Esto forzará al navegador para calcular el ancho de acuerdo con el ancho "externo" de div, significa que el relleno se restará del ancho.

+3

esto es lo mismo que la respuesta de @ adswebwork, ¿verdad? Agradezco la explicación de cómo funciona, pero eso es probablemente mejor como un comentario – craq

+0

por qué publicar una respuesta idéntica – Andrew

Cuestiones relacionadas