Autor Tema: HTML y CSS cómo centrar texto verticalmente en un div Vertical-align CU01043D  (Leído 2309 veces)

EnigmaticNerd

  • Principiante
  • **
  • Mensajes: 65
    • Ver Perfil
Buenas noches. Este es el enunciado del ejercicio CU01043D del tutorial de programación web desde cero con CSS:

Citar
Analiza el siguiente código, visualiza su resultado y responde a las preguntas:

Código: [Seleccionar]
<html>

<head>

<title>Portal web - aprenderaprogramar.com</title> <meta charset="utf-8">

<style type="text/css">

*{font-family: arial; }

div { width: 360px; height: 210px; margin: 10px; padding:5px 20px;

border-style: solid; border-color: red; border-width: thin;

background-color: yellow; text-align: center; float: left;}

#vcent { display: table;  }

#vcent span { display: table-cell; vertical-align:middle;}

</style>

</head>

<body>

<div><span>Línea de texto contenedor 1</span></div>

<div id="vcent"><span>Línea de texto contenedor 2</span></div>

</body>
</html>

Citar
a) ¿Cuántas cajas contenedoras hay? ¿Están identificadas por id o por class o por ninguno de ellos?

b) Visualiza el resultado en al menos dos navegadores distintos. ¿Qué diferencias observas entre ambos? ¿A qué crees que se deben?

c) ¿Por qué el texto <<Línea de texto contenedor 2>> se muestra centrado verticalmente?

d) Modifica el código para que el texto <<Línea de texto contenedor 1>> se muestre centrado verticalmente.



Acá las respuestas:

R.a) Hay dos cajas contenedoras y la segunda está identificada por id.

R.b) Las pruebas se realizaron en chromium y firefox; no presentó diferencias.

R.c) Utilizando la propiedad vertical-align con el valor middle, el elemento se centra como si de la celda de una tabla se tratara. El atributo span se visualiza como si fuese la celda de una tabla, gracias a los valores table y table-cell de la propiedad display.

R.d)

Código: [Seleccionar]
<html>

<head>

<title>Portal web - aprenderaprogramar.com</title> <meta charset="utf-8">

<style type="text/css">

*{font-family: arial; }

div { width: 360px; height: 210px; margin: 10px; padding:5px 20px;

border-style: solid; border-color: red; border-width: thin;

background-color: yellow; text-align: center; float: left;}

#vcent { display: table;  }

#vcent span { display: table-cell; vertical-align:middle;}

div:first-child{
    display:table;
}

div:first-child span{
    display:table-cell; vertical-align:middle;
}
</style>

</head>

<body>

<div><span>Línea de texto contenedor 1</span></div>

<div id="vcent"><span>Línea de texto contenedor 2</span></div>

</body>
</html>

Si tienen correcciones o sugerencias, se las agradeceré enormemente. Gracias.
« Última modificación: 19 de Octubre 2017, 18:50 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola EnigmaticNerd, respuestas correctas y el código cumple lo que se pedía, aunque se presenta una duplicidad de código css en este fragmento:

Código: [Seleccionar]
#vcent { display: table;  }

#vcent span { display: table-cell; vertical-align:middle;}

div:first-child{
    display:table;
}

div:first-child span{
    display:table-cell; vertical-align:middle;
}

Para evitar esa duplicidad puede plantearse una solución aplicando clases css como en este hilo: https://www.aprenderaprogramar.com/foros/index.php?topic=3778.0

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".