HTML
HTML
¿Te has preguntado alguna vez cómo funcionan las páginas web? Cada vez que visitas una página como YouTube o Google,
hay un lenguaje detrás que le dice al navegador cómo mostrarla. Ese lenguaje se llama HTML (HyperText Markup Language).
HTML es el lenguaje que organiza el contenido de las páginas web y permite que veamos textos, imágenes y videos, ¡todo en
un mismo lugar!
¿Qué es la Web?
La Web, también conocida como la World Wide Web, es un sistema que permite acceder a documentos y recursos
multimedia a través de Internet. Es lo que hace posible que entres a tu sitio favorito escribiendo una dirección en el
navegador. Es importante recordar que Internet es la red global que conecta computadoras, mientras que la Web es solo una
parte de todo ese gran sistema.
Navegadores Web
Cuando visitas una página web, tu navegador (como Chrome o Firefox) lee un archivo HTML y lo convierte en la página visual
que ves. El navegador es el que "traduce" el HTML para mostrártelo de forma agradable y fácil de entender. ¡Así que
podríamos decir que los navegadores son como traductores de la web!
Ahora que sabes qué es la Web y cómo los navegadores interpretan HTML, es hora de aprender cómo se construyen las
páginas web desde cero. Piensa en HTML como el esqueleto de una página web: le da la estructura y la organiza. Sin HTML,
las páginas web no tendrían forma.
Cada página web empieza con una estructura básica que siempre debes incluir. Es como si estuvieras armando la base de un
edificio antes de decorar las paredes. Esta es la estructura mínima que necesitas para que una página funcione
correctamente:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>¡Hola, mundo!</h1>
</body>
</html>
Vamos a desglosarlo:
• <!DOCTYPE html>: Esta línea le dice al navegador que el documento que sigue es un archivo HTML5, que es la
versión más reciente del lenguaje.
• <html>: Aquí comienza el contenido de la página. Es como decir: "Todo lo que está dentro de esta etiqueta es parte
de la página web".
• <head>: En esta sección colocas información importante sobre la página, como su título.
• <title>: Esta etiqueta le da un título a tu página. Es lo que ves en la pestaña del navegador.
• <body>: Aquí va todo el contenido visible de tu página, como textos, imágenes, videos, etc.
¡Felicidades! Con esta pequeña estructura ya tienes tu primera página web en HTML. Como ves, es sencillo y solo necesitas
algunas etiquetas clave para empezar a crear contenido.
Las etiquetas semánticas ayudan a los navegadores (y a las personas que leen el código) a entender cuál es el propósito de
cada parte de tu página. Por ejemplo:
• <header>: Define el encabezado de la página. Aquí puedes poner cosas como el título principal o un menú de
navegación.
• <nav>: Sirve para crear una sección de navegación, como un menú de enlaces.
• <section>: Utilizada para agrupar contenido que forma una sección independiente.
• <article>: Se usa para representar un contenido que puede leerse de forma independiente, como un artículo o una
noticia.
• <footer>: El pie de página. Aquí va la información final, como derechos de autor o enlaces secundarios.
Estas etiquetas hacen que tu código sea más organizado y fácil de leer, tanto para ti como para otros desarrolladores.
¡Incluso los motores de búsqueda como Google las prefieren, porque ayudan a entender mejor el contenido de una página!
¿Sabías que los enlaces son el alma de la web? Los enlaces, también conocidos como hipervínculos, conectan una página
con otra y permiten que naveguemos por todo Internet con un solo clic.
Para crear un enlace en HTML, usamos la etiqueta <a>, que significa anchor (ancla en inglés). Vamos a ver un ejemplo:
En este ejemplo:
• href="https://www.google.com" le dice a la página adónde debe llevar el usuario cuando haga clic. Este es el
"destino" del enlace.
• El texto dentro de la etiqueta (en este caso, "Visita Google") es lo que los usuarios ven y pueden hacer clic.
Puedes usar lo que se llama un enlace interno, que es un enlace que te lleva a una sección específica de la misma página
usando anclas.
¡Listo! Ahora, cuando hagas clic en "Ir a la Sección 1", el navegador te llevará automáticamente a esa parte de la página.
Para que tu página web sea más atractiva, puedes agregar imágenes. Las imágenes hacen que el contenido sea más visual y
divertido, pero debes saber cómo insertarlas correctamente en HTML.
• src (source) es la ubicación de la imagen. Puede ser una URL si está en Internet o una ruta a un archivo en tu
computadora.
• alt es una descripción alternativa que aparece si la imagen no se carga. También es muy importante para la
accesibilidad, ya que describe la imagen para personas con discapacidad visual.
Además de imágenes, HTML5 permite agregar videos y audios de manera sencilla usando las etiquetas <video> y <audio>.
Por ejemplo:
<video controls>
</video>
Este es el final del Bloque 1. ¿Cómo te sientes hasta ahora? ¡Ya has dado el primer paso para construir tu propia página
web! Si tienes todo claro, pasemos al siguiente bloque cuando estés listo.
¿Te has preguntado alguna vez cómo los sitios web recogen información de los usuarios? Por ejemplo, ¿cómo es que
puedes registrarte en redes sociales o enviar un mensaje desde la página de contacto de una empresa? La respuesta está en
los formularios.
Los formularios son una parte esencial de casi cualquier página web, y con HTML puedes crearlos de manera fácil y flexible.
Un formulario HTML básico empieza con la etiqueta <form> y se ve algo así:
</form>
• action: Este atributo define a dónde se enviarán los datos del formulario. Normalmente, es un archivo o una URL que
procesará la información.
• method: Hay dos métodos principales para enviar datos: GET y POST.
o GET envía los datos en la URL (visible en la barra de direcciones), ideal para búsquedas simples.
o POST envía los datos de forma segura en el cuerpo de la petición, y es lo que se suele usar para formularios
de inicio de sesión o registros.
Los campos de entrada son el corazón de cualquier formulario. Son esos lugares donde los usuarios escriben su nombre,
dirección de correo electrónico o cualquier otra información que quieran enviar.
Veamos algunos de los campos más comunes que puedes agregar a tu formulario:
1. Campo de texto:
<label for="nombre">Nombre:</label>
• <input type="text">: Crea un campo de entrada para texto corto, como un nombre.
2. Campo de contraseña:
<label for="password">Contraseña:</label>
• Este campo es similar al de texto, pero oculta los caracteres que el usuario escribe, ¡perfecto para contraseñas!
3. Área de texto grande:
<label for="mensaje">Mensaje:</label>
Además de campos de texto, también puedes ofrecer a los usuarios la posibilidad de seleccionar opciones o marcar casillas.
<label for="pais">País:</label>
<option value="mx">México</option>
<option value="es">España</option>
</select>
1.
2. Botones de radio:
<label>Género:</label>
<label for="hombre">Hombre</label>
<label for="mujer">Mujer</label>
Los botones de radio permiten que los usuarios elijan solo una opción entre varias.
3. Casillas de verificación:
A diferencia de los botones de radio, las casillas de verificación permiten seleccionar más de una opción.
Para que los usuarios puedan enviar la información, necesitarás un botón de envío. También puedes agregar un botón para
restablecer el formulario, lo que significa que los campos volverán a estar vacíos.
1. Botón de envío:
Este es el botón que envía los datos del formulario al servidor. El atributo value es el texto que aparece en el botón.
2. Botón de restablecimiento:
Este botón limpia todos los campos del formulario, volviendo a su estado inicial.
¿Te ha pasado que olvidas rellenar un campo obligatorio en un formulario? Con HTML5, puedes agregar validaciones
básicas directamente en el HTML, sin necesidad de JavaScript.
2. pattern: Permite definir una expresión regular para validar el formato del campo. Por ejemplo, podrías usarlo para
asegurarte de que un campo de correo electrónico tenga el formato correcto.
<input type="text" id="telefono" name="telefono" pattern="[0-9]{10}" placeholder="10 dígitos">
Y listo! Ahora ya sabes cómo crear un formulario básico, recoger datos y validar la información antes de que el usuario la
envíe. Los formularios son súper útiles y los verás en casi cualquier tipo de sitio web, desde páginas de contacto hasta
plataformas de redes sociales.
¿Alguna vez has querido cambiar los colores o hacer que tu página web se vea más atractiva? Si HTML es el esqueleto de
una página web, CSS (Cascading Style Sheets) es la piel, la ropa, y el maquillaje que le dan estilo y belleza. CSS es el lenguaje
que usamos para darle estilo a las páginas web, desde los colores y las fuentes hasta la disposición de los elementos.
1. CSS en línea: Puedes agregar estilos directamente a una etiqueta HTML usando el atributo style:
2. CSS interno: Puedes escribir el CSS dentro de la etiqueta <style> en la parte de <head> de tu HTML:
<head>
<style>
p{
color: blue;
</style>
</head>
3. CSS externo: La mejor forma de organizar tus estilos es con un archivo CSS externo. Puedes escribir todo tu código
CSS en un archivo separado y enlazarlo desde tu HTML con la etiqueta <link>:
<head>
</head>
Luego, en el archivo estilos.css puedes escribir todos los estilos para tu página:
p{
color: green;
}
Ventajas: Es más fácil de mantener, reutilizable, y puedes aplicar los mismos estilos a varias páginas.
Desventajas: Ninguna, esta es la forma preferida para proyectos más grandes.
Ahora que sabes cómo agregar CSS a tu página, es hora de aprender a seleccionar los elementos que quieres estilizar. Los
selectores son la forma en que le dices a CSS qué partes del HTML deben aplicar un estilo.
1. Selectores básicos:
o Selector de tipo: Aplica estilos a todas las etiquetas de un tipo específico. Por ejemplo, esto aplicará el color
rojo a todos los párrafos (<p>) de la página:
p{
color: red;
2. Selector de clase: Si solo quieres aplicar un estilo a ciertos elementos, puedes usar clases. Las clases se definen en el
HTML con el atributo class:
Y luego puedes usar el selector de clase en tu CSS, usando un punto . antes del nombre de la clase:
.importante {
color: red;
font-weight: bold;
3. Selector de ID: Los IDs son similares a las clases, pero se usan cuando quieres aplicar estilos a un único elemento. Los
IDs se definen con el atributo id en HTML:
<h1 id="titulo-principal">Bienvenido</h1>
#titulo-principal {
font-size: 24px;
color: blue;
Nota: Es recomendable usar IDs solo cuando necesitas identificar un elemento único, y usar clases para estilos más
generales.
En CSS, puede ocurrir que varios estilos se apliquen al mismo elemento. ¿Cómo decide el navegador qué estilo aplicar? Aquí
es donde entra en juego el concepto de especificidad.
La especificidad determina cuál estilo tiene más importancia. Piensa en esto como un "poder" que tienen los selectores:
mientras más específico sea un selector, más poder tiene. Aquí tienes algunos ejemplos:
Si tienes varios estilos que podrían aplicarse al mismo elemento, el que tenga mayor especificidad será el que el navegador
utilice.
3.4 Colores en CSS
¿Te gustaría cambiar el color de texto o fondo en tu página? Con CSS, puedes hacerlo fácilmente. Hay varias formas de
definir colores:
1. Nombres de colores: CSS tiene algunos nombres de colores predefinidos, como red, blue, green, etc.
h1 {
color: red;
2. Colores hexadecimales: Esta es una forma más precisa de definir colores usando el sistema hexadecimal. Un color
hexadecimal se ve así: #RRGGBB (donde RR es rojo, GG es verde, y BB es azul). Por ejemplo, el rojo es #FF0000 y el
azul es #0000FF.
h1 {
color: #FF0000;
3. Colores RGB: Los colores también pueden definirse usando el sistema RGB (Red, Green, Blue). Por ejemplo:
h1 {
4. Colores RGBA: Similar al RGB, pero con un cuarto valor que indica la opacidad (A de alpha). El valor de alpha va de 0
(completamente transparente) a 1 (completamente opaco):
h1 {
Con estas opciones puedes experimentar con diferentes combinaciones de colores para hacer tu página mucho más
visualmente atractiva.
La tipografía juega un papel importante en la apariencia de tu sitio web. Vamos a ver algunas de las propiedades más
comunes para estilizar el texto:
1. font-family: Cambia la fuente de tu texto. Puedes usar fuentes comunes como Arial o Times New Roman, o agregar
fuentes personalizadas como las de Google Fonts:
p{
2. font-size: Define el tamaño del texto. Puedes usar unidades como px (píxeles), em (relativo al tamaño de la fuente
del padre) o % (relativo al tamaño base del texto):
p{
font-size: 16px;
3. font-weight: Cambia el grosor del texto. Puedes usar valores como normal, bold o números como 400 (normal) y 700
(negrita):
p{
font-weight: bold;
}
4. text-align: Alinea el texto a la izquierda, derecha o centro:
p{
text-align: center;
Y eso es todo para el Bloque 3! Ahora ya tienes una comprensión sólida de cómo aplicar estilos básicos con CSS. ¿Listo para
seguir con el próximo bloque?
¿Te has dado cuenta de que el color puede cambiar completamente la sensación de una página web? Los colores juegan un
papel muy importante en el diseño de cualquier sitio, y con CSS puedes aplicarlos a casi cualquier parte de tu página.
1. Color de fondo: Para cambiar el color de fondo de un elemento o de toda la página, puedes usar la propiedad
background-color. Por ejemplo, para que el fondo de la página sea azul:
body {
background-color: lightblue;
2. Color de texto: La propiedad color cambia el color del texto de un elemento. Si quieres que todos los párrafos tengan
texto verde, puedes hacerlo así:
p{
color: green;
3. Transparencia con RGBA: ¿Sabías que puedes hacer que un color sea parcialmente transparente? Con rgba, puedes
agregar transparencia a cualquier color. El último valor en rgba (de 0 a 1) controla cuán transparente es el color:
p{
Las imágenes de fondo pueden hacer que tu página luzca más atractiva, y CSS te ofrece muchas maneras de personalizar los
fondos. Aquí te mostramos cómo:
1. Agregar una imagen de fondo: Puedes agregar una imagen de fondo a cualquier elemento con la propiedad
background-image. Recuerda que debes usar la ruta de la imagen entre url():
body {
background-image: url('fondo.jpg');
2. Repetición de fondo: Por defecto, las imágenes de fondo se repiten para llenar todo el espacio. Puedes controlar
esta repetición con background-repeat:
body {
3. Posición de fondo: Si no quieres que la imagen comience en la esquina superior izquierda, puedes cambiar su
posición con background-position:
body {
4. Tamaño de fondo: Para asegurarte de que la imagen de fondo cubra toda el área, puedes usar background-size:
body {
¿Te gustaría darle a tus elementos un marco o una sombra para que resalten más? CSS te permite hacer esto fácilmente
con bordes y sombras.
1. Agregar bordes a un elemento: Con la propiedad border, puedes agregar un borde a cualquier elemento. Puedes
definir el ancho, el estilo y el color:
p{
o Estilo: Puedes elegir entre estilos como solid (sólido), dashed (guiones), dotted (puntos), etc.
2. Esquinas redondeadas: Si quieres que los bordes de tu elemento tengan esquinas redondeadas, puedes usar la
propiedad border-radius:
p{
3. Sombras para texto: Si quieres que tu texto resalte, puedes agregar una sombra con text-shadow:
h1 {
La primera y segunda coordenadas (2px 2px) determinan el desplazamiento de la sombra, y el último valor (5px) es la
"difusión" de la sombra.
4. Sombras para cajas: Las sombras no solo son para el texto, también puedes agregarlas a cualquier elemento con box-
shadow:
div {
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5); /* Sombra negra con transparencia */
5. Gradientes: ¿Sabías que puedes crear un fondo con una transición suave de un color a otro? Esto se llama un
gradiente. Los gradientes lineales se crean así:
div {
En este ejemplo, el color rojo cambia gradualmente al amarillo de izquierda a derecha. Puedes hacer gradientes con más de
dos colores e incluso en direcciones diferentes.
Con este bloque finalizado, ya sabes cómo usar colores, fondos y bordes para darle vida a tu página web. Estos detalles
pueden hacer que un sitio web pase de ser simple a profesional.
¿Sabías que cada elemento en una página web es como una caja? Ya sea un párrafo, un encabezado o una imagen, todos
los elementos están encerrados en lo que llamamos el modelo de caja de CSS.
El modelo de caja es un concepto fundamental que describe cómo se calcula el tamaño de un elemento y cómo interactúan
las distintas propiedades para formar la "caja" que lo rodea. Cada elemento de HTML es como una caja que está compuesta
de cuatro partes:
1. Contenido: El área donde se muestra el texto, imagen, o cualquier contenido del elemento.
3. Borde: El contorno alrededor del padding, que puede ser visible o no, dependiendo de si lo defines.
Piensa en un regalo: el contenido es el objeto dentro, el padding es el papel de envolver, el borde es la caja del regalo y el
margen es el espacio que hay entre esa caja y otros regalos.
div {
Nota importante: El ancho total del elemento será la suma de width + padding + border + margin. En este ejemplo, el ancho
total de la caja sería:
200px (ancho del contenido) + 20px (padding izquierdo) + 20px (padding derecho)
Cuando trabajas con el diseño de una página web, controlar el tamaño y el espacio entre elementos es crucial. Aquí están
algunas propiedades clave para manejarlo:
1. width y height: Estas propiedades definen el ancho y alto del contenido de un elemento. Aquí tienes un ejemplo
básico:
div {
width: 300px;
height: 150px;
Esto define que el elemento tendrá un ancho de 300 píxeles y una altura de 150 píxeles. Recuerda que estas propiedades
solo controlan el contenido, no el padding, borde o margen.
2. padding: El padding es el espacio interno entre el contenido y el borde de un elemento. Puedes especificarlo para
todos los lados o individualmente:
div {
}
div {
div {
padding: 10px 15px 5px 20px; /* padding arriba, derecha, abajo, izquierda */
3. margin: El margen es el espacio entre el borde del elemento y otros elementos. Funciona de manera similar al
padding:
div {
div {
4. box-sizing: De manera predeterminada, width y height solo se aplican al contenido del elemento, pero a veces es útil
que incluyan también el padding y el borde. Aquí es donde entra la propiedad box-sizing. Cuando le damos valor
border-box, el padding y el borde se incluyen en el ancho y alto total del elemento:
div {
box-sizing: border-box; /* Ahora el padding y el borde están dentro del tamaño definido */
Esto significa que, si defines un ancho de 200px, ese será el tamaño total del elemento, independientemente del padding y el
borde.
¿Has notado alguna vez que los márgenes se comportan de manera extraña en algunos casos? Hay un fenómeno en CSS
llamado colapso de márgenes, que puede hacer que los márgenes se "fusionen" si están directamente adyacentes.
Esto sucede cuando tienes dos elementos seguidos con márgenes hacia arriba o abajo. En lugar de sumar ambos márgenes,
el navegador solo aplica el mayor de los dos. Aquí tienes un ejemplo:
En este caso, no se suman los márgenes (20px + 10px = 30px). En lugar de eso, el navegador usará solo el mayor (20px).
Para evitar problemas con los márgenes colapsados, puedes utilizar padding si necesitas un espaciado más predecible, o
jugar con las propiedades margin de manera consciente.
Con esto terminamos el Bloque 5 sobre el Modelo de Caja. Este concepto es uno de los más importantes en CSS porque te
permite controlar cómo se ven y se comportan los elementos en tu página
Bloque 6: Diseño de Páginas Web con CSS
¿Alguna vez has querido mover los elementos de tu página a lugares específicos? Ya sea para centrar un botón o alinear
imágenes, CSS te ofrece diferentes formas de posicionar y mostrar elementos. Vamos a empezar con dos conceptos clave:
posicionamiento y display.
Tipos de display
La propiedad display controla cómo se muestran los elementos en la página. Aquí tienes los tipos más comunes:
1. block: Los elementos de tipo bloque (como <div>, <p>, <h1>) ocupan todo el ancho disponible y se colocan uno
debajo del otro.
div {
display: block;
2. inline: Los elementos en línea (como <span>, <a>) solo ocupan el espacio necesario y pueden estar en la misma línea
que otros elementos.
span {
display: inline;
3. inline-block: Combina lo mejor de los dos mundos: se comporta como inline pero puedes establecer propiedades de
ancho y alto como si fuera un bloque.
img {
display: inline-block;
4. none: Si quieres ocultar un elemento, puedes usar display: none. Esto hará que el elemento desaparezca
completamente de la página.
div {
display: none;
Posicionamiento en CSS
CSS te ofrece diferentes formas de posicionar los elementos dentro de la página. Aquí tienes los tipos más comunes:
1. static (por defecto): Los elementos están posicionados de acuerdo con el flujo normal de la página. Si no defines un
tipo de posicionamiento, este es el comportamiento predeterminado.
div {
position: static;
2. relative: Los elementos con posición relativa se posicionan en relación a su posición normal. Esto significa que
puedes moverlos arriba, abajo, izquierda o derecha, pero siguen ocupando su espacio original en el flujo de la
página.
div {
position: relative;
}
3. absolute: Los elementos con posición absoluta se colocan en relación a su contenedor más cercano con position:
relative o absolute. De lo contrario, se posicionan en relación a la ventana del navegador.
div {
position: absolute;
top: 50px;
left: 100px;
4. fixed: Los elementos con posición fija se mantienen en la misma posición en la ventana del navegador, incluso
cuando haces scroll. Un buen ejemplo son los menús fijos en la parte superior de una página.
div {
position: fixed;
top: 0;
left: 0;
5. sticky: Un elemento con posición sticky actúa como relative hasta que alcanzas un cierto punto en la página,
momento en el que se "pega" como si fuera fixed.
div {
position: sticky;
top: 0;
¿Alguna vez te ha frustrado intentar alinear elementos en tu página? CSS Flexbox es una herramienta poderosa que te
permite controlar la disposición y alineación de elementos de manera mucho más sencilla.
1. Configurar el contenedor flexible: Para usar Flexbox, debes primero convertir un contenedor en un "flex container"
aplicándole la propiedad display: flex. Esto hará que todos los elementos hijos dentro de este contenedor se
comporten como "elementos flexibles".
.contenedor {
display: flex;
2. Dirección del eje principal: Flexbox organiza los elementos en una fila (por defecto) o en una columna usando la
propiedad flex-direction.
.contenedor {
display: flex;
.contenedor-column {
display: flex;
}
3. Alineación y justificación: Uno de los grandes beneficios de Flexbox es la facilidad para alinear elementos en el eje
principal (horizontal) y en el eje cruzado (vertical).
.contenedor {
.contenedor {
4. Espaciado entre elementos: Puedes usar space-between para distribuir los elementos uniformemente en el
contenedor, dejando espacio entre ellos, o space-around para agregar espacio antes y después de cada elemento.
.contenedor {
Flexbox es increíblemente flexible (de ahí su nombre) y es ideal para centrar elementos, crear layouts complejos y mantener
tu diseño organizado sin demasiado esfuerzo.
¿Sabías que CSS Grid te permite organizar los elementos de una página en una cuadrícula compleja con facilidad? Con CSS
Grid Layout, puedes crear diseños avanzados con filas y columnas definidas, ideal para layouts más estructurados.
1. Configurar el contenedor Grid: Similar a Flexbox, primero debes convertir un contenedor en un grid container con
display: grid. Luego defines las filas y columnas.
.contenedor-grid {
display: grid;
2. Colocar los elementos en la cuadrícula: Cada elemento dentro del grid se coloca automáticamente en una celda,
pero puedes controlar en qué posición exacta estará usando grid-column y grid-row.
.elemento {
3. Espaciado entre celdas: Puedes controlar el espacio entre las celdas usando grid-gap o las propiedades más
específicas row-gap y column-gap:
.contenedor-grid {
4. Alineación en el Grid: CSS Grid también te permite alinear el contenido dentro de las celdas:
.contenedor-grid {
CSS Grid es extremadamente poderoso para crear layouts complejos de forma ordenada y eficiente. Puedes combinar filas,
columnas y crear zonas para diferentes partes de tu página, como un encabezado, un menú de navegación y el contenido
principal.
¡Felicidades! Has completado el Bloque 6. Ahora sabes cómo organizar y diseñar páginas web con técnicas avanzadas de CSS
como Flexbox y Grid
¿Te has dado cuenta de que algunas páginas web se ven bien tanto en una computadora de escritorio como en un teléfono
móvil? Esto es gracias al diseño responsivo, una técnica que asegura que los sitios web se adapten a diferentes tamaños de
pantalla y dispositivos, proporcionando una experiencia de usuario agradable en cualquier entorno.
En el diseño web moderno, es esencial que tu sitio funcione bien en pantallas grandes y pequeñas. Para lograr esto, CSS nos
ofrece una poderosa herramienta llamada media queries.
Las media queries permiten aplicar estilos CSS según el tamaño de la pantalla, la resolución, la orientación (vertical u
horizontal) y otros factores. La sintaxis básica de una media query es la siguiente:
Esto significa que los estilos dentro de la media query solo se aplicarán cuando el ancho de la pantalla sea igual o menor a
768 píxeles, lo que es común en tablets o dispositivos móviles en orientación vertical.
1. Cambiar el diseño en pantallas pequeñas: Imagina que tienes un diseño de tres columnas en pantallas grandes,
pero.contenedor {
display: flex;
flex-direction: row;
.contenedor {
2. Ocultar elementos en dispositivos móviles: A veces, ciertos elementos solo tienen sentido en pantallas grandes,
como menús complejos o imágenes grandes. Puedes ocultar estos elementos en pantallas más pequeñas con
display: none:
3. Adaptar el tamaño del texto: Quizás en pantallas grandes quieras que los títulos sean más grandes, pero en pantallas
pequeñas sería mejor que sean más pequeños para mejorar la legibilidad:
h1 {
font-size: 36px;
h1 {
Las media queries te permiten crear un diseño que se ajuste a cualquier dispositivo, garantizando que la experiencia del
usuario sea excelente sin importar el tamaño de pantalla.
Cuando trabajamos con diseño responsivo, es importante no solo usar media queries, sino también emplear unidades que se
adapten a diferentes tamaños de pantalla. Aquí te mostramos las más útiles:
1. Porcentajes (%): Los porcentajes son relativos al tamaño del contenedor principal. Son muy útiles cuando quieres
que los elementos se ajusten automáticamente al espacio disponible.
.contenedor {
width: 80%; /* El contenedor ocupará el 80% del ancho del elemento padre */
p{
Estas unidades son muy útiles para crear elementos que se adapten dinámicamente al tamaño de la pantalla:
.hero {
}
Usar unidades relativas garantiza que tu diseño sea flexible y se vea bien en cualquier dispositivo, ya sea un teléfono móvil,
una tablet o una pantalla grande de escritorio.
¿Sabías que cada vez más personas navegan por Internet desde sus teléfonos móviles? Es por eso que muchos diseñadores
adoptan una estrategia llamada Mobile First (Primero Móvil).
El enfoque Mobile First sugiere que diseñes primero tu sitio para dispositivos móviles y luego lo adaptes para pantallas más
grandes. Así, en lugar de pensar en cómo "reducir" un diseño de escritorio para pantallas pequeñas, te concentras en crear
una experiencia excelente para móviles desde el principio.
1. Diseñar primero para móviles: En lugar de usar media queries para pantallas pequeñas, escribes tus estilos básicos
para dispositivos móviles. Luego, agregas media queries para pantallas más grandes:
.contenedor {
width: 100%;
.contenedor {
width: 50%;
De esta manera, los dispositivos móviles reciben el diseño por defecto, y solo los dispositivos más grandes obtienen estilos
adicionales.
¿Te has dado cuenta de que algunas imágenes se ven borrosas en pantallas Retina o de alta densidad de píxeles? Los
dispositivos modernos, como los iPhones y los MacBooks, tienen pantallas de alta resolución, lo que significa que muestran
muchos más píxeles por pulgada.
Para asegurarte de que tu sitio web se vea bien en estos dispositivos, aquí tienes algunas buenas prácticas:
1. Imágenes para pantallas Retina: Si estás utilizando imágenes, asegúrate de que sean lo suficientemente grandes
para verse bien en pantallas de alta resolución. Una buena práctica es proporcionar imágenes con el doble de la
resolución que normalmente usarías.
Por ejemplo, si necesitas una imagen que se muestre a 300px de ancho, usa una imagen de 600px de ancho y ajusta su
tamaño con CSS:
img {
2. Media queries para alta resolución: También puedes usar media queries para detectar dispositivos de alta densidad
de píxeles y aplicar estilos específicos:
}
¡Felicidades! Has terminado el Bloque 7 sobre Diseño Responsivo. Ahora ya tienes las herramientas para asegurarte de que
tus sitios web se vean y funcionen bien en cualquier dispositivo, desde pantallas grandes de escritorio hasta teléfonos
móviles.
¿Te has dado cuenta de que algunos sitios web tienen efectos suaves cuando mueves el cursor sobre un botón o un
enlace? Estos efectos suaves se logran usando transiciones en CSS. Las transiciones permiten que los cambios en las
propiedades CSS, como colores o tamaños, se realicen de manera suave en lugar de ser instantáneos.
button {
background-color: blue;
button:hover {
En este ejemplo:
• transition: Le dice al navegador que cuando la propiedad background-color cambie, debe hacerlo gradualmente en
0.3 segundos.
Resultado: Cuando el usuario pasa el ratón sobre el botón, el color de fondo cambia de azul a rojo de forma suave en 0.3
segundos.
Las transiciones no se limitan a los colores. Puedes aplicar transiciones a varias propiedades a la vez, como el tamaño, el
margen, o la opacidad. Aquí tienes un ejemplo:
div {
width: 200px;
height: 200px;
background-color: lightblue;
div:hover {
width: 300px;
height: 300px;
background-color: lightcoral;
Resultado: Cuando el usuario pasa el ratón sobre el div, este se agranda suavemente y cambia de color.
Las animaciones en CSS te permiten crear movimientos y efectos más complejos que las simples transiciones. Mientras que
las transiciones requieren un cambio en las propiedades (como pasar el ratón sobre un elemento), las animaciones pueden
ser completamente automáticas y cíclicas.
Vamos a ver un ejemplo sencillo de una animación que hace que un cuadrado se mueva de izquierda a derecha:
@keyframes mover {
from {
transform: translateX(0);
to {
transform: translateX(300px);
div {
width: 100px;
height: 100px;
background-color: lightgreen;
• @keyframes mover: Define la animación. En este caso, empezamos con translateX(0) (posición inicial) y terminamos
con translateX(300px) (300 píxeles hacia la derecha).
• animation: mover 2s infinite: Aplica la animación. Dura 2 segundos y se repite indefinidamente (infinite).
Puedes personalizar aún más las animaciones usando diferentes propiedades. Aquí te mostramos algunas de las más
importantes:
4. animation-iteration-count: Controla cuántas veces se repite la animación. Puedes establecer un número específico o
usar infinite para repetirla indefinidamente.
Vamos a combinar todo lo que hemos aprendido para crear un botón que cambie de tamaño, color y posición cuando el
usuario pase el ratón sobre él, y que también tenga una animación automática:
@keyframes crecer {
0% {
transform: scale(1);
background-color: blue;
50% {
transform: scale(1.5);
background-color: green;
100% {
transform: scale(1);
background-color: blue;
button {
font-size: 16px;
color: white;
background-color: blue;
border: none;
}
button:hover {
En este ejemplo:
• El botón tiene una animación llamada crecer, que cambia su tamaño y color en un ciclo de 4 segundos.
• Además, cuando el usuario pasa el ratón sobre el botón, este se mueve hacia arriba con una transición suave.
Resultado: El botón se agranda y cambia de color continuamente, y cuando el usuario lo toca, se mueve hacia arriba.
¿Alguna vez te has preguntado cómo hacen las personas con discapacidades para navegar por Internet? La accesibilidad
web busca garantizar que todas las personas, independientemente de sus capacidades, puedan usar y entender el contenido
de una página. Esto incluye a personas con discapacidades visuales, auditivas o motoras.
¿Por qué es importante la accesibilidad? Además de ser un aspecto ético, es importante porque mejora la usabilidad general
de tu sitio, facilita la navegación a un mayor número de personas y mejora tu posicionamiento en los motores de búsqueda
(SEO).
Aquí te dejamos algunas prácticas clave para mejorar la accesibilidad de tu página web:
1. Uso adecuado de las etiquetas HTML: Las etiquetas HTML semánticas (como <header>, <nav>, <main>, <article>,
<section>, <footer>) ayudan a los navegadores y lectores de pantalla a interpretar mejor la estructura de tu
contenido. Esto permite que las personas con discapacidad visual puedan entender el contenido de una página a
través de un lector de pantalla.
<header>
<h1>Título de la Página</h1>
</header>
<main>
<section>
<h2>Sección Principal</h2>
<p>Contenido de la página...</p>
</section>
</main>
<footer>
<p>Derechos reservados</p>
</footer>
2. Descripciones alternativas para imágenes (alt): Las imágenes deben tener una descripción alternativa (atributo alt),
que es un texto que describe la imagen en caso de que no se cargue o para que los lectores de pantalla puedan
describirla a las personas con discapacidad visual.
Ejemplo:
Consejo: El texto alt debe ser descriptivo y explicar lo que aparece en la imagen, pero si la imagen es decorativa, puedes
dejar el alt vacío: alt="".
3. Atributos aria para accesibilidad: ARIA (Accessible Rich Internet Applications) es un conjunto de atributos que
puedes usar para hacer tu página más accesible a personas con discapacidades. Algunos ejemplos:
o aria-label: Proporciona una etiqueta a un elemento interactivo.
o aria-hidden="true": Indica que un elemento no debe ser leído por un lector de pantalla.
Ejemplo:
4. Contraste adecuado entre texto y fondo: Asegúrate de que haya suficiente contraste entre el color del texto y el
color de fondo para que el contenido sea fácil de leer. Esto es especialmente importante para personas con
dificultades visuales.
Recomendación: Usa herramientas en línea que verifiquen si el contraste entre los colores de tu página cumple con los
estándares de accesibilidad.
¿Te gustaría que más personas encontraran tu página web en Google? El SEO (Search Engine Optimization) o optimización
para motores de búsqueda es un conjunto de prácticas que te ayudan a mejorar la visibilidad de tu sitio en los resultados de
búsqueda. Aunque el SEO incluye muchos factores, aquí nos enfocaremos en las prácticas más relevantes relacionadas con
HTML y CSS.
1. Uso adecuado de encabezados (<h1> a <h6>): Los encabezados ayudan a los motores de búsqueda a entender la
estructura y jerarquía de tu contenido. Usa un solo <h1> para el título principal de la página, y luego usa <h2>, <h3>,
etc., para los subtítulos de las secciones.
Ejemplo:
<h1>Título Principal</h1>
<h2>Subtítulo 1</h2>
2. Metaetiquetas (<meta>): Las metaetiquetas proporcionan información sobre tu página web a los motores de
búsqueda. Aquí te mostramos dos de las más importantes:
o <meta name="keywords"> (menos relevante en la actualidad): Proporciona palabras clave relacionadas con
el contenido de la página.
Ejemplo:
<meta name="description" content="Aprende HTML y CSS desde cero con este curso para principiantes.">
3. URLs amigables: Usa URLs claras y descriptivas que expliquen el contenido de la página. Esto no es solo bueno para
los motores de búsqueda, sino también para los usuarios.
https://mipagina.com/curso-html-css
4. Uso de enlaces internos y externos: Los enlaces ayudan a los motores de búsqueda a entender la relevancia de tu
contenido. Usa enlaces internos para conectar diferentes páginas de tu sitio web y enlaces externos para dirigir a los
usuarios a fuentes confiables y relacionadas.
<a href="/contacto">Contáctanos</a>
¿Sabías que el uso de etiquetas semánticas no solo mejora la accesibilidad, sino que también ayuda al SEO? Los motores
de búsqueda prefieren las páginas que tienen una estructura clara y organizada. Las etiquetas semánticas como <header>,
<nav>, <article>, <section>, y <footer> hacen que tu página sea más fácil de entender tanto para los usuarios como para los
motores de búsqueda.
Por ejemplo:
<header>
</header>
<nav>
<ul>
<li><a href="/inicio">Inicio</a></li>
<li><a href="/contacto">Contacto</a></li>
</ul>
</nav>
<main>
<article>
<h2>Últimas Noticias</h2>
</article>
</main>
<footer>
</footer>
Esta estructura no solo mejora la legibilidad y accesibilidad de la página, sino que también facilita que los motores de
búsqueda clasifiquen tu contenido correctamente.
La accesibilidad y el SEO están estrechamente relacionados. Una página web accesible suele tener mejor posicionamiento
en los motores de búsqueda, porque proporciona una mejor experiencia de usuario y facilita que los motores de búsqueda
interpreten y clasifiquen tu contenido.
• Las descripciones alternativas (alt) en las imágenes no solo ayudan a los usuarios con discapacidades, sino que
también permiten a Google comprender mejor el contenido visual de tu página.
• Encabezados bien estructurados no solo mejoran la accesibilidad, sino que también le indican a Google cuáles son
los temas más importantes de tu página.
• Las etiquetas semánticas mejoran tanto la navegación para personas con discapacidades como la interpretación del
contenido por parte de los motores de búsqueda.
¿Te has preguntado cómo algunos desarrolladores pueden depurar problemas en sus sitios web tan rápido? La respuesta
está en las herramientas para desarrolladores que ofrecen los navegadores. Estas herramientas te permiten inspeccionar,
modificar y depurar el código HTML, CSS y JavaScript directamente en el navegador.
1. DevTools (Herramientas de Desarrollo): La mayoría de los navegadores como Chrome, Firefox y Edge tienen
herramientas de desarrollo incorporadas. Puedes acceder a ellas haciendo clic derecho en cualquier parte de la
página y seleccionando "Inspeccionar" o presionando la tecla F12.
o Inspeccionar HTML y CSS: Ver y modificar el HTML y CSS en tiempo real. Esto es muy útil cuando quieres
probar cambios rápidos sin tener que modificar tu archivo original.
o Verificar diseño y disposición: Puedes ver cómo se distribuyen los elementos en tu página, revisar el modelo
de caja, y ajustar el tamaño o el espaciado.
o Depurar JavaScript: Si tu página incluye JavaScript, puedes ver los errores en la consola y depurar el código
paso a paso.
2. Validadores de código: Los validadores son herramientas que te ayudan a asegurarte de que tu código cumple con
los estándares web. Una página web sin errores es más accesible, tiene mejor SEO y es más compatible con
diferentes navegadores.
o W3C Validator: Valida tu HTML y CSS para asegurarte de que cumples con los estándares. Puedes usar el
validador oficial del W3C aquí: W3C Validator.
o CSS Lint: Una herramienta que analiza tu CSS en busca de errores o posibles mejoras. Puedes usarla aquí:
CSS Lint.
Con las DevTools, puedes modificar el diseño de tu página sobre la marcha y ver los resultados al instante sin tener que
recargar o guardar tu archivo. Esto te permite probar diferentes diseños o corregir errores rápidamente.
1. Inspección de elementos: Si quieres ver el estilo de un elemento específico, puedes hacer clic derecho sobre él y
seleccionar "Inspeccionar". Esto te llevará directamente al HTML y CSS correspondiente en las herramientas de
desarrollo, donde podrás ver todos los estilos aplicados y modificarlos.
2. Edición en tiempo real: Puedes cambiar cualquier propiedad CSS en las DevTools y ver cómo cambia la apariencia de
tu página inmediatamente. Por ejemplo, si quieres cambiar el color de un botón, puedes buscar su propiedad
background-color y modificarla directamente en el navegador.
Consejo: Los cambios que hagas en las DevTools no se guardan en tus archivos originales. Úsalas para experimentar, y luego
copia los cambios que te gusten a tu código fuente.
A medida que trabajas en proyectos más grandes, es importante mantener tu código organizado y fácil de mantener. Aquí
tienes algunas buenas prácticas que te ayudarán a mantener tu código limpio y ordenado:
1. Estructura de carpetas y archivos: A medida que tu proyecto crece, es útil tener una estructura de carpetas bien
organizada. Una estructura común para un proyecto web puede verse así:
/mi-proyecto
├── /css
│ └── estilos.css
├── /images
│ └── logo.png
├── /js
│ └── app.js
├── index.html
└── contacto.html
o Archivos HTML: Puedes mantenerlos en la raíz del proyecto o en una carpeta separada si tienes muchos.
2. Comentarios y legibilidad del código: Asegúrate de escribir comentarios en tu código para explicar partes
importantes, especialmente si son complejas. Los comentarios hacen que el código sea más fácil de entender, tanto
para ti como para cualquier otra persona que trabaje en el proyecto.
o En HTML:
o En CSS:
/* Este es un comentario */
3. Los comentarios también pueden ayudar a dividir tu código en secciones lógicas, lo que hace que sea más fácil de
navegar.
4. Nombres claros y consistentes: Usa nombres descriptivos y consistentes para las clases e IDs en tu HTML y CSS. Esto
no solo hará que tu código sea más fácil de leer, sino que también te ayudará a evitar confusiones cuando trabajes en
proyectos grandes.
<div class="navbar-menu">
<ul class="menu-list">
<li class="menu-item">Inicio</li>
</ul>
</div>
5. Reutilización de estilos: Usa clases para aplicar estilos que puedas reutilizar en diferentes partes de la página. Esto
hace que tu código sea más eficiente y fácil de mantener.
.btn {
background-color: #3498db;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
Luego puedes reutilizar la clase .btn para aplicar el mismo estilo a diferentes botones en tu página.
1. BEM (Block, Element, Modifier): BEM es una metodología para nombrar clases en CSS que facilita la creación de
componentes reutilizables. Funciona dividiendo los elementos en bloques, elementos y modificadores.
o Elemento: Una parte del bloque que tiene una función específica.
Ejemplo de BEM:
<div class="menu">
<ul class="menu__list">
<li class="menu__item">Servicios</li>
</ul>
</div>
En este caso:
o menu es el bloque.
2. SMACSS (Scalable and Modular Architecture for CSS): SMACSS es otra metodología que te ayuda a estructurar tu
CSS en diferentes categorías, como base, diseño, módulos, estado y tema. Su objetivo es hacer que el CSS sea
escalable y fácil de mantener a medida que el proyecto crece.
o base.css: Aquí defines los estilos generales como los tipos de fuente y los colores.
o layout.css: Define el diseño general de la página, como el encabezado, el pie de página y la disposición de las
columnas.
o module.css: Define los estilos para componentes reutilizables, como botones o menús.
o state.css: Define los estilos para diferentes estados de los componentes, como hover o active.
Con esto completamos el Bloque 10 sobre Herramientas y Buenas Prácticas. Ahora sabes cómo mantener tu código
organizado, usar las herramientas para desarrolladores y aplicar metodologías para crear proyectos escalables y fáciles de
mantener
En este bloque, vamos a crear un sitio web estático completamente funcional que pondrá a prueba tus habilidades en HTML,
CSS y diseño responsivo. El objetivo es que construyas una página web atractiva y bien organizada, utilizando las técnicas que
hemos cubierto hasta ahora.
Vamos a crear un sitio web sencillo de una página que podría servir como página personal o de un pequeño negocio. Este
sitio tendrá las siguientes secciones:
Este proyecto integrará HTML semántico, CSS para estilos y disposición de elementos, y media queries para asegurarnos de
que sea responsivo y se vea bien en dispositivos móviles.
Vamos a empezar por escribir la estructura básica del HTML. Esta estructura incluirá todas las secciones mencionadas
anteriormente y usará etiquetas semánticas.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="description" content="Página personal o de negocio con información sobre nosotros y contacto">
</head>
<body>
<header class="header">
<div class="container">
<nav class="nav">
<ul class="nav__list">
</ul>
</nav>
</div>
</header>
<div class="container">
<p>Estamos encantados de tenerte aquí. Explora más sobre nosotros y nuestros servicios.</p>
</section>
<div class="container">
<h2>Sobre Nosotros</h2>
<p>Somos un equipo apasionado por lo que hacemos, con años de experiencia en el sector.</p>
</div>
</section>
<div class="container">
<h2>Galería</h2>
<div class="gallery__grid">
</div>
</div>
</section>
<div class="container">
<h2>Contacto</h2>
<div class="form__group">
<label for="nombre">Nombre:</label>
</div>
<div class="form__group">
<label for="email">Email:</label>
</div>
<div class="form__group">
<label for="mensaje">Mensaje:</label>
</form>
</div>
</section>
<footer class="footer">
<div class="container">
<ul class="social">
</ul>
</div>
</footer>
</body>
</html>
El siguiente paso es agregar estilos a nuestro sitio para hacerlo más atractivo. Vamos a centrarnos en el diseño, el uso de
flexbox para el layout y algunos efectos básicos de transición.
/* Estilos generales */
*{
margin: 0;
padding: 0;
box-sizing: border-box;
body {
line-height: 1.6;
color: #333;
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
/* Encabezado */
.header {
background-color: #3498db;
padding: 20px 0;
.logo {
color: white;
font-size: 24px;
text-transform: uppercase;
.nav {
text-align: right;
.nav__list {
list-style: none;
.nav__item {
display: inline-block;
margin: 0 10px;
.nav__link {
color: white;
text-decoration: none;
font-size: 18px;
.nav__link:hover {
text-decoration: underline;
/* Sección de Bienvenida */
.welcome {
background-color: #f4f4f4;
padding: 40px 0;
text-align: center;
.welcome h2 {
margin-bottom: 20px;
font-size: 32px;
.btn {
background-color: #3498db;
color: white;
text-decoration: none;
border-radius: 5px;
.btn:hover {
background-color: #2980b9;
.about {
padding: 40px 0;
text-align: center;
/* Galería */
.gallery {
padding: 40px 0;
text-align: center;
.gallery__grid {
display: flex;
gap: 20px;
justify-content: center;
.gallery__item {
width: 200px;
height: auto;
border-radius: 5px;
.gallery__item:hover {
transform: scale(1.1);
/* Formulario de Contacto */
.contact {
background-color: #f4f4f4;
padding: 40px 0;
.contact__form {
max-width: 600px;
margin: 0 auto;
.form__group {
margin-bottom: 20px;
.form__group label {
display: block;
margin-bottom: 5px;
.form__group input,
.form__group textarea {
width: 100%;
padding: 10px;
button {
background-color: #3498db;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
button:hover {
background-color: #2980b9;
/* Pie de página */
.footer {
background-color: #333;
color: white;
padding: 20px 0;
text-align: center;
.footer p {
margin-bottom: 10px;
.social {
list-style: none;
padding: 0;
.social__link {
color: white;
margin: 0 10px;
text-decoration: none;
}
.social__link:hover {
text-decoration: underline;
Una vez que hayas finalizado el proyecto, asegúrate de realizar los siguientes pasos para prepararlo para la publicación:
1. Minificación de archivos: Reduce el tamaño de los archivos CSS y HTML eliminando espacios en blanco y
comentarios innecesarios. Esto ayuda a que tu página cargue más rápido.
o Puedes usar herramientas en línea como CSS Minifier y HTML Minifier para hacerlo.
2. Validación del código: Asegúrate de que tu HTML y CSS cumplen con los estándares utilizando el validador del W3C.
3. Subida al servidor: Puedes usar servicios como GitHub Pages o Netlify para publicar tu sitio web de manera gratuita.