2011-12-03 41 views
5

Quiero ser capaz de llenar el div de un padre exactamente al 100% con un lapso de hijos. El problema es que el tramo con el que deseo rellenarlo está basado en el tema y tiene diferentes rellenos y márgenes. Así que no puedo codificar ningún tamaño para la altura del tramo.CSS Fill parent div 100% cleanly

Si trato de establecer la altura del tramo en 100%, en realidad rebasa y llena más de 100% + 6 píxeles para este tema (pero el exceso varía según el tema). ¿Cómo se hace así que sin importar el tamaño de los rellenos/márgenes para el tramo, solo llenará el 100% del div principal?

Muchas gracias por la ayuda.

+0

Deberías mirar 'box-sizing: border-box;' – jessegavin

+0

Sí, acabo de notar que mientras estaba construyendo mi violín, jessegavin dio la "versión corta" aquí en su comentario. – ScottS

Respuesta

6
-webkit-box-sizing: border-box; 
-moz-box-sizing: border-box;  
box-sizing: border-box; 

Ver http://jsfiddle.net/mbB8t/2/

Se clarificó: Obras para todos los navegadores modernos (IE8 +).

+0

Esto no parece funcionar si el padre tiene 'relleno 'en su lugar. [Este] (https://jsfiddle.net/mbB8t/137/) es tu violín exacto simplemente cambió el 'div margin' por' padding', ¿sabes cómo lograr los mismos resultados con el relleno? Gracias. – Jake

+1

@Jake: Dada la restricción adicional de cómo se configura el div principal, si no puede (o no quiere) eliminar el relleno, probablemente su única opción sea [usar posicionamiento para lograrlo] (http: //jsfiddle.net/mbB8t/145/). Que puede o no ser deseable también, dependiendo de la situación. – ScottS

+0

Ok, gracias. Eso parece que funcionó. – Jake