Autor Tema: Maquetar página web con CSS varias columnas FLOAT. Ejercicio resuelto CU01036D:  (Leído 3700 veces)

Pitu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Hola a todos. Dejo mi solución al ejercicio CU01036D:

Citar
Define un documento HTML donde a través del uso de la propiedad float y de las anteriores propiedades que hemos visto a lo largo del curso crees un diseño con este aspecto:...


Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>Ejercicio CU01036D</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="CU01036D.css">
</head>
<body>
<div class="div1">
<div id="caja1" class="div2">Bienvenidos a aprenderaprogramar.com</div>
<div id="caja2" class="div2">Menú
<ul>
<li>Cursos</li>
<li>Humor</li>
<li>Divulgación</li>
</ul>
</div>
<div id="caja3" class="div2">Conoce las últimas novedades del lenguaje JavaScript.</div>
<div id="caja4" class="div2">Espacio reservado para publicidad</div>
<div id="caja5" class="div2">Artículo sobre Gimp, un programa de software libre para el diseño gráfico.</div>
<div id="caja6" class="div2">Contacta con nosotros</div>
<div id="caja7" class="div2">Aviso legal</div>
</div>
</body>
</html>


Código: [Seleccionar]
/*CSS para ejercicio CU01036D*/
.div1{width:800px;text-align:center;}
.div2{border:solid black;}
#caja1{width:796px;height:45px;background-color:#DEB887;text-align:center;font-family:arial;font-size:25px;       font-weight:bold;border-width:2px 2px 1px 2px;}
#caja2{height:116px;float:left;width:196px;border-width:1px 1px 1px 2px;text-align:left;}
#caja3{background-color:#ADD8E6;width:399px;float:left;height:57px;border-width:1px;}
#caja4{width:197px;height:116px;float:right;border-width:1px 2px 1px 1px;}
#caja5{background-color:#90EE90;width:399px;float:left;height:57px;border-width:1px;}
#caja6{background-color:#DDA0DD;height:50px;float:left;width:438px;border-width:1px 1px 2px 2px;}
#caja7{height:50px;float:right;width:356px;border-width:1px 2px 2px 1px;}


Me surge una duda: En #caja2 que tenemos un menú, al haber centrado el texto arriba para todas las cajas, ¿como resuelvo el hecho de que el menú quede desordenado? Yo usé text-align para esa caja en particular, pero supongo que debe haber una manera de que quede mejor?

Y otra pregunta (no sé si lo veremos más adelante): Cómo centrar el texto u/o elementos a lo alto? O sea, verticalmente.

Gracias!
« Última modificación: 16 de Julio 2015, 12:48 por Alex Rodríguez »

Pitu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Re:Ejercico CU01036D: CSS columnas con FLOAT.
« Respuesta #1 en: 12 de Julio 2015, 02:31 »
Ya llegué a la propiedad "Vertical-align" ;D

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola pitu

He revisado el ejercicio y hay algunas cosas a comentar.

La alineación en vertical se explica más adelante en el curso (creo que ya has llegado).

En el enunciado se decía lo siguiente:

Citar
Nota: los anchos de los elementos serán del 100 % disponible si es todo el ancho (por ejemplo <<Bienvenidos>>), del 25 % si es una columna simple (por ejemplo <<Menú>>) y del 50 % si es una columna doble (por ejemplo <<Artículo sobre Gimp>>).

Sin embargo tú has fijado los anchos usando valores en pixeles, por ejemplo #caja1{width:796px; ...

Ten en cuenta que quizás en la pantalla donde tú has visto el ejercicio es de 800 pixeles de ancho y estos valores de pixeles son correctos, pero ¿qué ocurre si la pantalla donde lo mira otra persona tiene 2048 pixeles de ancho por ejemplo, o si tiene 496 pixeles de ancho? Lo que ocurrirá es que el ancho no será el de toda la pantalla (que era lo que pedía el ejercicio).

Esto se puede solucionar usando los valores en %, de ese modo siempre se toma el % respecto a la pantalla, de modo que en todas las pantallas el ancho será el mismo en proporción a la pantalla.

La explicación sobre el uso de porcentajes la puedes leer en www.aprenderaprogramar.com/foros/index.php?topic=1647

Con las alturas no se suele hacer esto, ya que normalmente se considera que a lo ancho no hay scroll pero a lo alto sí, de modo que los anchos sí suelen fijarse usando pixeles.

Citar
Me surge una duda: En #caja2 que tenemos un menú, al haber centrado el texto arriba para todas las cajas, ¿como resuelvo el hecho de que el menú quede desordenado? Yo usé text-align para esa caja en particular, pero supongo que debe haber una manera de que quede mejor?

La solución que has usado no es mala. De todas formas, cuando quieras aplicar una regla específica para un fragmento de código, crea una subdivisión específica y aplícales las reglas que desees. En la parte que preguntas podrías haber definido por ejemplo:

Código: [Seleccionar]
<div id="caja2" class="div2">Menú
<ul class="lista">
<li>Cursos</li>
<li>Humor</li>
<li>Divulgación</li>
</ul>
</div>

Y aplicar una regla como .lista {text-align:left;}



Por último indicarte una cosa que sería interesante hacer: evitar la repetición de código unificando en una regla múltiples repeticiones.

Por ejemplo la caja2, caja3, caja5 y caja 6 tienen float:left;

En lugar de repetir en todas las reglas puedes crear una regla como esta:

#caja2, #caja3, #caja5, #caja6 {float:left;}

Si haces esto con todas las repeticiones relevantes tendrás un código más breve, más legible y más fácil de mantener.

Te recomiendo que reescribas el ejercicio teniendo en cuenta todo lo indicado, te servirá para mejorar.

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".