¿Maquetar con float:left o con display:inline-block? Ejercicio css

2
(1)

Publicado

Aviso importante web en obras

Es posible que el contenido que estás visualizando tenga un formato un poco raro o que se haya perdido algún contenido. Esto se debe a que en 2023/09 decidí renovar la página y con más de 1000 escritos el trabajo de irlos revisando uno por uno es agotador. Poco a poco iré corrigiendo todos los contenidos. ¡Gracias por la comprensión!

portada ejercicio css columnas

En este ejercicio vamos a practicar 2 opciones muy populares para apilar cajas (una caja es en realidad cualquier etiqueta, típicamente un div) unas al lado de las otras.

Son útiles para resolver este ejercicio las siguientes entradas del tutorial css :

¿Tienes todo el temario controlado?

Entonces entremos en materia.

Enunciado

Maqueta una página web atendiendo a las siguientes especificaciones:

  • Hay 3 filas:
    • En la primera fila hay 3 contenedores de colores rojo, verde y azul de un ancho de 33.33% cada una.
    • En la segunda fila hay 1 contenedor negro de ancho 100%.
    • En la tercera fila  hay 2 contenedores de colores rosa y orange y anchos 50%.
  • Todas las cajas tienen una altura de 200px.
  • Todas las cajas están encerradas dentro de un wrapper de ancho 100% pero dimensiones máximas 1300px.

Resuelve el ejercicio aplicando 2 metodologías distintas.

La primera mediante el uso de la propiedad float:left;

La segunda mediante el uso de la propiedad display:inline-block;
¿Maquetar con float:left o con display:inline-block? Ejercicio css 1

Solución del ejercicio siguiendo la estrategia de position:float;

Soy un bloque de texto. Haz clic en el botón Editar para cambiar este texto. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

<!DOCTYPE html>
<html>
<head>
	<title>Ejemplo maquetación con float</title>
	<meta charset="utf-8"/>
	<meta name="author" content="francesc ricart"/>
	<style>
		*{
			margin:0;
			padding:0;
			box-sizing:border-box;
		}
		#contenedor{
			width:100%;
			max-width:1300px;
			margin:auto;
		}
		section[class*="caja-"]{
			border:1px solid #000;
			height:200px;
			float:left;
		}
		.caja-1{background-color:red;}
		.caja-2{background-color:green;}
		.caja-3{background-color:blue;}
		.caja-4{
			background-color:black;
			width:100%;	
		}
		.caja-5{background-color:pink;}
		.caja-6{background-color:orange;}

		.caja-1, .caja-2, .caja-3{width:33.33%;}
		.caja-5, .caja-6{width:50%;}

	</style>
</head>
<body>

	<div id="contenedor">	
		<section class="caja-1"></section>
		<section class="caja-2"></section>
		<section class="caja-3"></section>
		<section class="caja-4"></section>
		<section class="caja-5"></section>
		<section class="caja-6"></section>	
	</div>


</body>
</html>

Solución del ejercicio siguiendo la estrategia de display:inline-block;

En este caso se usa la propiedad display:inline-block; a todos los div contenidos dentro del div con id=»wrapper».

Fijaros que para eliminar el espacio en blanco que suele quedar entre etiquetas div se ha optado por resetar los estilos a font-size:0;

En caso de escribir esta instrucción última recordar de asignar un tamaño de fuente a todas las etiquetas que contengan texto.

<!DOCTYPE html>
<html>
<head>
	<title>Ejemplo maquetación con display:inline-block</title>
	<meta charset="utf-8"/>
	<meta name="author" content="francesc ricart"/>
	<style>
		*{
			margin:0;
			padding:0;
			box-sizing:border-box;
			font-size:0;
		}

		p,a{font-size:16px;}

		#contenedor{
			width:100%;
			max-width:1300px;
			margin:auto;
		}
		section[class*="caja-"]{
			border:1px solid #000;
			height:200px;
			/*float:left;*/
			display:inline-block;
		}
		.caja-1{background-color:red;}
		.caja-2{background-color:green;}
		.caja-3{background-color:blue;}
		.caja-4{
			background-color:black;
			width:100%;	
		}
		.caja-5{background-color:pink;}
		.caja-6{background-color:orange;}

		.caja-1, .caja-2, .caja-3{width:33.33%;}
		.caja-5, .caja-6{width:50%;}

	</style>
</head>
<body>

	<div id="contenedor">	
		<section class="caja-1"></section>
		<section class="caja-2"></section>
		<section class="caja-3"></section>
		<section class="caja-4"></section>
		<section class="caja-5"></section>
		<section class="caja-6"></section>	
	</div>


</body>
</html>

¡Hola!

Querido lector,

¡Si te ha gustado este contenido te animo a seguirme en mi perfil de empresa de Linkedin!

  1. Avatar de matias

    gracias muy claro me fue de mucha ayuda, saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *