CSS - Problema con el margen respecto de <div>

 
Vista:
Imágen de perfil de Israel
Val: 66
Ha mantenido su posición en CSS (en relación al último mes)
Gráfica de CSS

Problema con el margen respecto de <div>

Publicado por Israel (51 intervenciones) el 11/04/2020 00:39:23
Tengo tres <div> anidados y en el más interno de ellos un párrafo.

Por qué al generar un margen de 20 px en los cuatro lados este se genera horizontalmente respecto del <div> de nivel superior pero no verticalmente?

Nota: La primera parte de la hoja de estilo interna corresponde con un CSS reset.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Hola Alumnos</title>
 
        <style>
            html, body, h1, h2, h3, h4, h5, h6, p, ol, ul, li, pre, code, address, variable, form, fieldset, blockquote {
                padding: 0;
                margin: 0;
                font-size: 100%;
                font-weight: normal;
            }
            table { border-collapse: collapse; border-spacing: 0; }
            td, th, caption { font-weight: normal; text-align: left; }
            img, fieldset { border: 0; }
            ol { padding-left: 1.4em; list-style: decimal; }
            ul { padding-left: 1.4em; list-style:square; }
            q:before, q:after { content:''; }
 
 
            body{
                background-color:rgba(66,66,66,1);
                font-family:"Times New Roman";
            }/*GRIS*/
 
            #divExterno{
                background-color:rgba(255,0,0,0.1);
            }/*ROJO*/
 
            #divMedio{
                background-color:rgba(1,223,1,1);
            }/*VERDE*/
 
            #divInterno{
                background-color:rgba(0,0,255,1);
                margin:20px 20px;
            }/*AZUL*/
 
            p{
                font-size:150px;
            }
        </style>
 
    </head>
 
    <body>
        <div id="divExterno">
            <div id="divMedio">
                <div id="divInterno">
                    <p>Hola Tijuana</p>
                </div>
            </div>
        </div>
    </body>
</html>

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 870
Oro
Ha mantenido su posición en CSS (en relación al último mes)
Gráfica de CSS

Problema con el margen respecto de <div>

Publicado por joel (252 intervenciones) el 11/04/2020 11:23:24
Hola Israel, no entiendo muy bien el problema que estas teniendo... puedes publicar una imagen?

He probado tu código, pero no tiene ninguna imagen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Israel
Val: 66
Ha mantenido su posición en CSS (en relación al último mes)
Gráfica de CSS

Problema con el margen respecto de <div>

Publicado por Israel (51 intervenciones) el 13/04/2020 14:24:02
Hola Joel,

Gracias por tu respuesta. Pretendo entender el funcionamiento de los <div> y tema márgenes con este ejercicio.

Me refiero a que al crear en el <divInterno> un margen de 20px, dicho margen se genera adecuadamente respecto de los otro dos <div> horizontalmente, pero no verticalmente como se puede apreciar al dar color a cada uno de los elementos HTML con la propiedad "background-color".

Verticalmente efectivamente genera un margen de 20 px pero lo hace respecto del <body> no respecto de los otros dos <div>.

Te adjunto una imagen intentando aclarar esto (en la imagen he renombrado los <div> del siguiente modo):

divExterno=div1

divMedio=div2

divInterno=div3

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 870
Oro
Ha mantenido su posición en CSS (en relación al último mes)
Gráfica de CSS

Problema con el margen respecto de <div>

Publicado por joel (252 intervenciones) el 15/04/2020 13:56:45
Si los genera Israel... fíjate que en las imágenes que tu muestras, si que hay los 20px en la parte superior!!!
Recuerda que el div por si solo, no tiene margenes ni espacios, pero si que tiene la anchura máxima que puede obtener.

NOTA:no hace falta que subas un pdf, puedes subir al imagen directamente!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Israel
Val: 66
Ha mantenido su posición en CSS (en relación al último mes)
Gráfica de CSS

Problema con el margen respecto de <div>

Publicado por Israel (51 intervenciones) el 15/04/2020 14:04:10
Sé que lo genera respecto de la parte superior, pero como comenté en el mensaje previo lo hace respecto del body. Se aprecia como el color del margen respecto de la parte superior es el del body, mientras que el margen izquierdo y derecho es del color del div.

La duda era y es pq genera un margen a izquierda y derecha respecto del div y en cambio un margen superior respecto del body.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 870
Oro
Ha mantenido su posición en CSS (en relación al último mes)
Gráfica de CSS

Problema con el margen respecto de <div>

Publicado por joel (252 intervenciones) el 15/04/2020 14:22:34
si, es correcto... como te comente en el mensaje superior, un div siempre ocupa toda la anchura posible... si un div dentro de este le pones un margen, lo realiza a la izquierda y derecha en relación siempre al elemento superior... nunca hacia arriba o abajo... a no ser que le añadas el estilo: overflow: hidden;

Mira la diferencia de estos dos códigos...
sin-overflow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<style>
body {background-color:Yellow;}
#id1 {background-color:Red;    margin:20px;}
#id2 {background-color:Green;  margin:20px;}
#id3 {background-color:Blue;   margin:20px;}
</style>
 
<div id="id1">
    <div id="id2">
        <div id="id3">
            casa
        </div>
    </div>
</div>


con-overflow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<style>
body {background-color:Yellow;}
#id1 {background-color:Red;    margin:20px; overflow:hidden;}
#id2 {background-color:Green;  margin:20px; overflow:hidden;}
#id3 {background-color:Blue;   margin:20px; overflow:hidden;}
</style>
 
<div id="id1">
    <div id="id2">
        <div id="id3">
            casa
        </div>
    </div>
</div>


Creo que no me se explicar muy bien... disculpame
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Israel
Val: 66
Ha mantenido su posición en CSS (en relación al último mes)
Gráfica de CSS

Problema con el margen respecto de <div>

Publicado por Israel (51 intervenciones) el 20/04/2020 17:52:27
Muchas gracias Joel.

Acabo de leer tu respuesta atentamente. Entendido!!

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar