Foros del Web » Creando para Internet » CSS »

Aumenta margen con tamaño letra.

Estas en el tema de Aumenta margen con tamaño letra. en el foro de CSS en Foros del Web. Hola a todos. En mi web tengo un div en cuyo interior hay un div con un h1. Cuando aumento el tamaño de letra del ...
  #1 (permalink)  
Antiguo 15/11/2011, 18:24
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Aumenta margen con tamaño letra.

Hola a todos.
En mi web tengo un div en cuyo interior hay un div con un h1.
Cuando aumento el tamaño de letra del h1, el div entero baja unos milimetros en proporcion con el tamaño aumentado.

Por que ocurre esto?

Gracias de antemano :)

EDIT: He descubierto que si le quito al h1 la propiedad display: block no ocurre esto.

Última edición por mariomon17; 15/11/2011 a las 18:29
  #2 (permalink)  
Antiguo 15/11/2011, 20:00
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Aumenta margen con tamaño letra.

porque el h1 es naturalmente un elemento de bloque, por lo que tiene un margin y un padding por defecto, aunque no me queda claro de quitarle el valor block a display, a menos que le hayas piesto, display: inline;

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 15/11/2011, 20:37
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

Hola. Con quitar block me referia a ponerle inline, si.
Ya conozco que tiene padding, margin etc. Pero no entiendo por que estos afectan al margin del div que lo contiene. No deberia afectar solo a el?

Un saludo :)
  #4 (permalink)  
Antiguo 15/11/2011, 23:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Aumenta margen con tamaño letra.

si el div que contiene el h1 tiene un alto y ancho específico y es lo sificientemente grande para contener el h1, no deberías observar cambios, de lo contrario, si, ya que el margin y padding del h1 y el padding del div respecto de este provocan el aumento.
Deberías revisar el modelo de caja en css
http://www.sidar.org/recur/desdi/traduc/es/css/box.html

todo esto se simplifica usando resets básicos

*{
padding: 0;
margin: 0;
border: none;
outline: 0;
}

realiza varios ejemplos y comprobalo
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 16/11/2011, 19:18
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

Esta fijado el ancho y el alto, el h1 cabe perfectamente y sobra espacio como para 5 h1's mas.

Si la causa hubiese sido algo de esto la hubiese descubierto, el problema llega cuando no lo explico mediante ningun modelo de cajas.

Tengo mi hoja de (reset ) normalizacion para los estilos.

Y marco la diferencia ya que lo que tu me has puesto es un reset, algo que no es recomendable ya que muchos elementos requieres un margin y/o un padding. Prefiero usar algo que normalice.

Un saludo y gracias :)
  #6 (permalink)  
Antiguo 16/11/2011, 19:24
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Aumenta margen con tamaño letra.

el mío es sólo un ejemplo genérico, no es una solución específica dado que tú código "brilla por su ausencia".

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 17/11/2011, 09:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

MI codigo es:
Código HTML:
Ver original
  1. <div>
  2. <div id="image">
  3. <h1>Titulo</h1>
  4. </div>
  5. <p> asdh sedry dffguu </p>
  6. </div>

Código CSS:
Ver original
  1. #image {
  2. width: 300px;
  3. height: 250px;
  4. }
  5.  
  6. /* para la comprobacion: h1 {display: inline} */

Es el primer div el que baja unos px cuando h1 es una unidad block.

Un saludo :)
  #8 (permalink)  
Antiguo 17/11/2011, 11:40
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Aumenta margen con tamaño letra.

Analizá el siguiente código

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <style type="text/css">
  8. /*<![CDATA[*/
  9.  
  10. .contenedor{
  11. border: solid 1px green;
  12. }
  13.  
  14. .image {
  15. width: 300px;
  16. height: 150px;
  17. border: solid red 1px;
  18. }
  19. /* para la comprobacion: h1 {display: inline} */
  20.  
  21. h1{
  22. border: solid 1px #000;
  23. font-size: 14pt;
  24. }
  25.  
  26. h1.linea{
  27. display: inline;
  28. }
  29.  
  30. .aumentar_fuente{
  31. font-size: 25pt;
  32. }
  33.  
  34. div.nopadding {
  35. padding: 0px;
  36. }
  37.  
  38. h1.sinmargin{
  39. margin: 0;
  40. }
  41. /*]]>*/
  42. </head>
  43. <div class="contenedor">
  44. <div class="image">
  45. <h1>Titulo</h1>
  46. </div>
  47. <p>Valores originales</p>
  48. </div>
  49.  
  50. <div class="contenedor">
  51. <div class="image">
  52. <h1 class="linea">Titulo</h1>
  53. X
  54. </div>
  55. <p>h1 con inline</p>
  56. </div>
  57.  
  58. <div class="contenedor">
  59. <div class="image">
  60. <h1 class="aumentar_fuente">Titulo</h1>
  61. </div>
  62. <p>original + fuente aumentada</p>
  63. </div>
  64.  
  65. <div class="contenedor">
  66. <div class="image nopadding">
  67. <h1 class="aumentar_fuente">Titulo</h1>
  68. </div>
  69. <p>como el anterior pero sin padding en el div contenedor del h1</p>
  70. </div>
  71.  
  72. <div class="contenedor">
  73. <div class="image nopadding">
  74. <h1 class="sinmargin">Titulo</h1>
  75. X. (aquí la letra X baja porque el h1 al ser block se expande hasta el 100% del div que lo contiene, <br />
  76. comparar con ejemplo 2)
  77. </div>
  78. <p>como el anterior pero sin margin en h1 el tamaño de la fuente como en el ejemplo 2</p>
  79. </div>
  80. </body>
  81. </html>
con respecto a tu pregunta original
Cita:
Cuando aumento el tamaño de letra del h1, el div entero baja unos milimetros en proporcion con el tamaño aumentado.
Como se puede apreciar, los divs, no varían en absoluto.
Le agregué los bordes para visualizar mejor y disminuí el alto del div image para que sea más fácil la comparación, pero esos cambios no afectan el comportamiento.
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 17/11/2011, 18:08
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

Ahora ando un poco liado, pero en cuanto pueda te paso el ejemplo del que te hablo y podras comprobar lo que te digo.

Un saludo :)
  #10 (permalink)  
Antiguo 25/11/2011, 13:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

Siento el retraso pero no tuve tiempo de volver por aqui.
He subido a http://acuarioarrecife.es/stl un ejemplo de lo que me ocurre.

El div rojo esta dentro de #main, le aplico un margin-top que deberia ocurrir dentro de #main pero le ocurre a todo #main.

Entra en las herramientas para desarrolladores o Firebug, quitale el margin y veras como asciende todo #main.

Un saludo y gracias :)
  #11 (permalink)  
Antiguo 25/11/2011, 19:10
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Aumenta margen con tamaño letra.

No me preguntes por que, ya que necesito hacer varias pruebas para determinarlo, ejecutá este código, revisalo y fijate cual es la diferencia

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <title>titulo</title>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  5. <style type="text/css">
  6. /*<![CDATA[*/
  7.  
  8. /* arriba */
  9. div.main{
  10. min-height: 100px; 
  11. margin-top: 10px;
  12. margin-bottom: 10px;
  13. border-radius: 5px;
  14. box-shadow: 0 0 8px 1px #000000;
  15. border: solid transparent 1px;
  16. }
  17.  
  18. div.margin {
  19. border: solid red 1px;
  20. margin-top: 30px;
  21. height: 200px;
  22. }
  23. /* medio */
  24.  
  25. #main {
  26. min-height: 100px;
  27. margin-top: 10px;
  28. margin-bottom: 10px;
  29. border-radius: 5px;
  30. box-shadow: 0 0 8px 1px #000000;
  31. }
  32. div#margin {
  33. border: solid 1px #000;
  34. background: red;
  35. margin-top: 30px;
  36. height: 200px;
  37. }
  38.  
  39. /* abajo */
  40. .principal {
  41. min-height: 100px;
  42. margin-top: 10px;
  43. margin-bottom: 10px;
  44. border: solid red 1px;
  45. border-radius: 5px;
  46. box-shadow: 0 0 8px 1px #000000;
  47. }
  48.  
  49. .contenedor{
  50. border: solid 1px #000;
  51. margin-top: 50px;
  52. height: 200px;
  53. }
  54.  
  55. /* separador */
  56. p{
  57. height: 50px;
  58. line-height: 50px;
  59. padding: 0;
  60. background-color: maroon;
  61. color: #FFF;
  62. vertical-align: middle;
  63. text-align: center;
  64. }
  65.  
  66. /*]]>*/
  67. </head>
  68.    
  69. <div class="main">
  70. <div class="margin">Emprear</div>
  71. </div>
  72.  
  73. <p>Separador</p>
  74. <div id="main">
  75. <div id="margin">mariomon17</div>
  76. </div>
  77. <p>Separador</p>
  78.  
  79. <div class="principal">
  80. <div class="contenedor">Titulo</div>
  81. </div>
  82.  
  83. </body>
  84. </html>

concentrate porque es muy sutil el detalle, ya lo probé en tu web y funciona (todas las pruebas fueron con Firefox 8)

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #12 (permalink)  
Antiguo 25/11/2011, 20:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

He revisado el codigo pero no veo la diferencia.
Bueno, aprecio que en el segundo caso utilizas id en vez de class pero eso no tiene por que influir, no?

No veo el detalle :S

Gracias :)
  #13 (permalink)  
Antiguo 25/11/2011, 20:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

mmm.... el borde?
D: Si, es el borde pero no entiendo que tiene que ver xD

Bueno, en mi proyecto lo solucione con un div encima del cual al que aplico el margin de 1px de height y funciona bien, a si que supongo que el border funcionara de manera similar.

Alguien sabra la razon?

Un saludo :)
  #14 (permalink)  
Antiguo 25/11/2011, 21:33
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Aumenta margen con tamaño letra.

Eso es lo que estoy invetigando, pero si no le pones un borde no te hace el margin contra el contenedor sino que te mueve todo haciendo el margin contra el elemento superior.

con esto solo
border: solid transparent 1px;
todo el problema se soluciona, yo en mis primeros ejemplos no detectaba el problema porque le habia agregado un borde de casualidad, solo para hacer más visible las distancias

Ya mismo estoy poniendo un post a ver si alguien con más conocimientos sabe el porque.
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #15 (permalink)  
Antiguo 26/11/2011, 06:20
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

Si, poner border-top 1px transparent es igual que el div de un height. Ambas soluciones funcuonan.

Estare atento a ese tema

Gracias por la ayuda, a ver si conseguimos saber que pasa.

Un saludo grande :)
  #16 (permalink)  
Antiguo 26/11/2011, 06:28
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 17 años, 5 meses
Puntos: 539
Respuesta: Aumenta margen con tamaño letra.

Primero la solucción:
uso de la propiedad overflow para evitar esos comportamientos.

El porqué tiene que ver con la forma en que el agente de usuario resuelve varios márgenes adyacentes de forma conjunta. En inglés "margin collapsing".

No he leído detenidamente todo el tema, pero creo que en el caso planteado concurren, además de los márgenes de varios elementos, el hecho de que al modificar el tamaño de la letra también se modifica la altura de línea.

Y como decía al principio, se evitan sorpresas y aplicando overflow.
  #17 (permalink)  
Antiguo 26/11/2011, 09:23
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Aumenta margen con tamaño letra.

Cita:
Iniciado por mariomon17 Ver Mensaje
Si, poner border-top 1px transparent es igual que el div de un height. Ambas soluciones funcuonan.

Estare atento a ese tema

Gracias por la ayuda, a ver si conseguimos saber que pasa.

Un saludo grande :)
Si @mariomon 17, me olvidé de comentarte, ayer postee esto cuando terminamos de resolver el problema
http://www.forosdelweb.com/f53/hay-a...6/#post4052805
y efectivamente como dice @pitufoweb y ya a delanto @Kseso, es el tema de "margin collapsing" lo que afectaba. y es un comportamiento normal de css.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #18 (permalink)  
Antiguo 26/11/2011, 13:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Aumenta margen con tamaño letra.

Busque tu tema y lo leí.
Gracias :)

Etiquetas: margen, tamaño
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 07:53.