Foros del Web » Creando para Internet » CSS »

width: 100% + padding

Estas en el tema de width: 100% + padding en el foro de CSS en Foros del Web. Hola... desde ayer trato de aprender CSS y me he encontrado con un problema al darle a un div un ancho (width) de 100% con ...
  #1 (permalink)  
Antiguo 08/01/2012, 08:30
 
Fecha de Ingreso: octubre-2008
Mensajes: 42
Antigüedad: 16 años
Puntos: 0
Pregunta width: 100% + padding

Hola... desde ayer trato de aprender CSS y me he encontrado con un problema al darle a un div un ancho (width) de 100% con un padding de 10px, por ejemplo.

Código HTML:
Ver original
  1.     <style type="text/css">
  2.         #contenedor {
  3.             background: red;
  4.             top: 0px;
  5.             left: 0px;
  6.             width: 100%;
  7.             height: 100%;
  8.         }
  9.         #cabecera {
  10.             background: orange;
  11.             width: 100%;
  12.             padding: 10px;
  13.             height: 80px;
  14.             float: left;
  15.            
  16.         }
  17.     </style>
  18. </head>
  19.     <div id="contenedor">
  20.         <div id="cabecera">
  21.             Cabecera
  22.         </div>
  23.     </div>
  24. </body>
  25. </html>

Por ejemplo ahi la cabecera (barra naranja) sobresale del div contenedor debido al padding, ¿cómo puedo hacer para que el padding esté incluido con el 100% de ancho que le doy?
Graicas de antemano
  #2 (permalink)  
Antiguo 08/01/2012, 09:43
 
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 25
Antigüedad: 16 años
Puntos: 2
Respuesta: width: 100% + padding

a la cabecera le quitas la propiedad width y float y te debería funcionar

te dejo el ejemplo.
http://jsbin.com/aqalep
  #3 (permalink)  
Antiguo 08/01/2012, 12:40
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 16 años, 2 meses
Puntos: 187
Respuesta: width: 100% + padding

es que si el ancho es 100% (osea todo), si la agregas margenes interior se sobrepasa.
en todo caso
width:98%;
padding:1%;

Entonces 1%(padding izquierda) +98% (width) + 1%(padding derecha) = 100%.


Puedes ver bien el modelo de caja: http://www.w3.org/TR/CSS2/box.html

Para aprender más sobre el tema.
  #4 (permalink)  
Antiguo 08/01/2012, 13:36
 
Fecha de Ingreso: julio-2011
Ubicación: Zapopan, Jal. MX
Mensajes: 316
Antigüedad: 13 años, 4 meses
Puntos: 32
Respuesta: width: 100% + padding

Lo mejor esque no uses width 100% ya que por default tiene width: auto y este valor hace que ocupe todo el espacio sobrante sin salirse aunque le agregues padding o margin en el caso de width por que height solo se extiende conforme al contenido.
Tambien puedes colocar otro contenedor adentro de cabezera y a este le agregas el margin que le pones como padding a la cabezera y le quitas el padding.
O tambien puedes quitarle el width 100% y pones position:relative;left:0;right:0
  #5 (permalink)  
Antiguo 08/01/2012, 14:14
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 16 años, 2 meses
Puntos: 187
Respuesta: width: 100% + padding

Como cfoch utiliza elementos flotados (float:left) es necesario que especifique el ancho para el elemento. La tecnica del width:auto, solo funciona en elementos de bloques, sin float.
  #6 (permalink)  
Antiguo 08/01/2012, 17:53
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 9 meses
Puntos: 306
Respuesta: width: 100% + padding

Ahora si utiliza el 100% del ancho ¿es necesario el float?, mmm, en mi humilde opinión no, por lo que apoyo el no declarar explicitamente el width y dejarlo al auto que viene por defecto.
Es solo una opinión, luego cfoch decidirá.
saludos
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--

Etiquetas: html, padding, width, fondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:45.