Contenido de la guía
- 01 Preparando nuestro entorno de trabajoAprender a descargar, instalar y realizar la configuración básica de Visual Studio Code para comenzar a trabajar con HTML y CSS..Descarga
- 01.01 Extensiones recomendadasAprender a descargar, instalar y realizar la configuración básica de Visual Studio Code para comenzar a trabajar con HTML y CSS..Extension
- 02 HTML nivel basicoEn este apartado aprenderás los conceptos básicos de HTML, necesarios para comenzar a crear la estructura de tus primeras páginas web..HTML_basico 02.01 Estructura básica de una página webEn esta sección aprenderás cómo está organizada una página web y conocerás los elementos fundamentales que conforman su estructura..Estructura 02.02 EncabezadosLos encabezados organizan el contenido de una página web y resaltan la importancia de cada sección.Gracias a ellos, la información es más clara, ordenada y fácil de comprender..Encabezado 02.03 PárrafoLos párrafos permiten escribir y organizar el contenido de una página web, haciendo que la información sea más clara y fácil de leer..Párrafo 02.04 ListasLas listas permiten organizar elementos de forma ordenada o desordenada, facilitando la presentación y comprensión de la información..Listas 2.4.1 Lista ordenada 2.4.2 Lista desordenada 02.05 EnlacesLos enlaces permiten conectar una página con otra o dirigir al usuario a diferentes secciones, documentos o recursos relacionados..Enlaces 2.5.1 Enlazar documentos 2.5.2 Atributos de la etiqueta <a> 02.06 ImagenesLas imágenes enriquecen el contenido de una página web al representar información de forma visual, haciendo el sitio más atractivo y fácil de comprender..Imagenes 02.07 RutasLas rutas permiten localizar archivos y carpetas dentro de un proyecto, facilitando el acceso a recursos como imágenes, páginas y documentos y entre otro elementos..Rutas 02.08 FormulariosLos formularios permiten recopilar información de los usuarios mediante diferentes campos, facilitando el envío y la gestión de datos..Formularios
1. Preparando nuestro entorno de trabajo
Lo primero que se debe hacer es descargar Visual Studio Code, que será el editor donde se escribirá y organizará el código. Visual Studio Code sirve para crear, editar y trabajar con archivos de programación como HTML, CSS y JavaScript, facilitando el desarrollo gracias a sus herramientas y funciones
Para descargarlo, basta con buscar en el navegador Visual Studio Code y acceder a su página oficial. Luego, se debe seleccionar la versión correspondiente al sistema operativo que se esté utilizando (Windows, macOS o Linux). Una vez descargado el instalador, se ejecuta y se aceptan las opciones que solicita el asistente de instalación. Con esto, Visual Studio Code quedará correctamente instalado en el computador.
1.1. Extensiones recomendadas
Cuando se habla de extensiones en Visual Studio Code, se hace referencia a herramientas que ayudan a que la programación sea más rápida y organizada. Existen muchas extensiones disponibles, pero en este curso solo se utilizarán algunas de ellas.
Prettier
Prettier es una extensión que formatea automáticamente el código para mantener una estructura limpia, ordenada y consistente. Esto mejora la legibilidad del código, facilita su comprensión y ayuda a que todos los archivos del proyecto sigan el mismo estilo de escritura.
Indent-rainbow
Indent-Rainbow es una extensión para Visual Studio Code que utiliza diferentes colores para resaltar los niveles de indentación del código. Esto facilita identificar la estructura del programa y distinguir los bloques de código de forma visual. Si en este momento no resulta muy claro, más adelante se explicará con ejemplos para que sea más fácil comprender su funcionamiento.
Image preview
Image Preview es una extensión para Visual Studio Code que permite visualizar una vista previa de una imagen al colocar el cursor sobre la ruta de un archivo de imagen. De esta forma, es posible comprobar rápidamente el contenido de la imagen sin necesidad de abrir el archivo.
Live Server
Live Server es una extensión para Visual Studio Code que inicia un servidor local para visualizar páginas web durante el desarrollo. Su principal ventaja es que actualiza automáticamente el navegador cada vez que se guardan cambios en el código, evitando la necesidad de recargar la página manualmente y agilizando el proceso de desarrollo.
Palenight Theme
Palenight Theme es un tema para Visual Studio Code que cambia la apariencia del editor mediante una combinación de colores diseñada para mejorar la legibilidad del código. Los diferentes colores ayudan a distinguir con mayor facilidad los elementos del código, haciendo que sea más cómodo de leer y analizar. Su instalación es completamente opcional; sin embargo, en los ejemplos y explicaciones de este curso se utilizará este tema.
2. HTML nivel basico
En HTML, el contenido se estructura mediante etiquetas. En la mayoría de los casos, una etiqueta está formada por una etiqueta de apertura y una etiqueta de cierre, las cuales indican dónde comienza y dónde termina un elemento. Es fundamental escribirlas correctamente para que el navegador interprete el código sin problemas.
La estructura general de una etiqueta es la siguiente:
<nombre_etiqueta>arrow_forwardEtiqueta de apertura.
</nombre_etiqueta>arrow_forwardEtiqueta de cierre.
Por Ejemplo:
<html></html>
<div></div>
<body></body>
2.1. Estructura básica de una página web
Todo documento HTML debe comenzar con la declaración <!DOCTYPE>. Esta declaración indica al navegador que el documento utiliza HTML5, permitiendo que la página se interprete y se renderice correctamente. Aunque no es una etiqueta de HTML, es una declaración que siempre debe colocarse al inicio del documento.
Despues se encuentran las etiquetas <html></html>, las cuales delimitan el inicio y el final del documento HTML. Todo el contenido de la página, incluidas las demás etiquetas y estructuras, debe escribirse entre estas dos etiquetas.
Dentro de <html>se encuentra la etiqueta <head>, cuya función es almacenar información y configuraciones del documento que no se muestran directamente en la página web. En esta sección se incluyen elementos como el título de la página, los enlaces a archivos CSS, los scripts de JavaScript, los metadatos y otras configuraciones necesarias para el funcionamiento del sitio. La etiqueta <head>siempre debe ubicarse antes de la etiqueta <body>
Dentro de la etiqueta <head>es común utilizar la etiqueta <title></title>, la cual permite definir el título que aparecerá en la pestaña del navegador cuando el usuario visite la página.
Después de la etiqueta <head> se encuentra la etiqueta <body>, que contiene todo el contenido visible de la página web. En su interior se agregan elementos como títulos, párrafos, imágenes, enlaces, listas, tablas, formularios y cualquier otro contenido que el usuario verá e interactuará en el navegador.
Codigo:
<!DOCTYPE>
<html>
<head>
<title> Docmento </title>
</head>
<body>
</body>
</html>2.2. Encabezados
La etiqueta <h1></h1> se utiliza para crear el encabezado principal de una página o de una sección importante del contenido. Generalmente, representa el título más relevante de la página y ayuda tanto a los usuarios como a los motores de búsqueda a comprender de qué trata el contenido.
HTML dispone de seis niveles de encabezados, que van desde <h1> hasta <h6>. La etiqueta <h1> representa el nivel de mayor importancia, mientras que <h6> corresponde al nivel de menor importancia. Estos encabezados permiten organizar y estructurar el contenido de forma jerárquica, facilitando su lectura y comprensión.
2.3. Párrafo
La etiqueta <p></p> se utiliza para crear párrafos en una página web. Dentro de esta etiqueta se escribe el texto que se desea mostrar como parte del contenido. Cada párrafo representa un bloque de texto independiente, lo que ayuda a organizar la información y facilita su lectura.
<p>
Lorem ipsum dolor sit amet consectetur, adipisicing
Accusantium quasi, iure possimus voluptas iusto,
alias suscipit tenetur veniam qui repellat fuga.
elit. Neque vitae, atque nisi vero nam tempore.
Beatae, consectetur!
</p>2.4. Listas
Las listas en HTML permiten organizar la información de forma clara y ordenada, facilitando la lectura y comprensión del contenido. Son ideales para presentar pasos, características, elementos o cualquier conjunto de datos relacionados de manera estructurada.
2.4.1. Lista ordenada
Para crear una lista ordenada (Ordered List) se utiliza la etiqueta <ol></ol>. Este tipo de lista organiza automáticamente sus elementos mediante una numeración secuencial.
Dentro de la etiqueta <ol> se agregan los elementos de la lista utilizando la etiqueta <li></li>(List Item), la cual representa cada uno de los elementos que conforman la lista.
<ol>
<li>Tomate</li>
<li>Cebolla</li>
<li>Pepino</li>
<li>Lechuga</li>
<li>Papa</li>
</ol>Si ejecutamos el código, el resultado se mostrará de la siguiente manera:
- Tomate
- Cebolla
- Pepino
- Lechuga
- Papa
2.4.2. Lista desordenada
La etiqueta <ul></ul> se utiliza para crear listas desordenadas (Unordered List), es decir, listas en las que el orden de los elementos no es relevante. A diferencia de la etiqueta <ol>, este tipo de lista no emplea numeración, sino viñetas para representar cada elemento.
Un uso muy común de las listas desordenadas es la creación de menús de navegación, donde se muestran opciones como Inicio, Inventario, Ajustes o Perfil de usuario. Dentro de la etiqueta <ul> también se utilizan las etiquetas <li></li> (List Item), que representan cada uno de los elementos de la lista.
<ul>
<li>Tomate</li>
<li>Cebolla</li>
<li>Pepino</li>
<li>Lechuga</li>
<li>Papa</li>
</ul>Si ejecutamos el código, el resultado se mostrará de la siguiente manera:
- Tomate
- Cebolla
- Pepino
- Lechuga
- Papa
2.5. Enlaces
Para crear un enlace en HTML se utiliza la etiqueta <a></a> En la etiqueta de apertura se debe agregar el atributo href, que indica la dirección a la que se accederá cuando el usuario haga clic en el enlace.
Después de escribir href, se coloca el signo igual (=) y, entre comillas, la dirección o URL del sitio web al que se desea dirigir al usuario. A continuación, se cierra la etiqueta de apertura (>), se escribe el texto que se mostrará como enlace y, por último, se agrega la etiqueta de cierre </a>
Es importante tener en cuenta que el atributohrefsolo se incluye en la etiqueta de apertura. La etiqueta de cierre siempre debe escribirse únicamente como </a>
<a href="https://www.youtube.com/"> Youtube </a>
Ejemplo:
Youtube2.5.1. Enlazar documentos
Los enlaces no solo permiten dirigir al usuario a páginas web externas, sino también vincular diferentes documentos HTML dentro de un mismo proyecto. Por ejemplo, si en una carpeta existen dos archivos HTML, es posible crear un enlace desde uno hacia el otro utilizando la etiqueta <a>
Para ello, en el atributo href de la etiqueta de apertura se escribe el nombre del archivo al que se desea acceder. De esta manera, al hacer clic en el enlace, el navegador abrirá el documento HTML indicado.
Por ejemplo, si existen los archivos index.html y contacto.html, desde index.html se puede acceder a contacto.html escribiendo href="contacto.html".
<a href="contacto.html"> Segundo Documento </a>
2.5.2 Atributo de la etiqueta <a>
De forma predeterminada, los enlaces creados con la etiqueta <a> se abren en la misma pestaña del navegador. Si se desea que el enlace se abra en una nueva pestaña, se debe agregar el atributo target con el valor _blank dentro de la etiqueta de apertura.
El atributo target="_blank" indica al navegador que el enlace debe abrirse en una nueva pestaña o ventana, según la configuración del navegador. Este atributo se escribe junto con href, antes de cerrar la etiqueta de apertura (>)
<a href="https://www.youtube.com/" target="_blank" > Youtube </a>
2.6. Imagenes
En HTML, las imágenes pueden incorporarse de dos formas: utilizando un archivo almacenado dentro del proyecto o mediante la URL de una imagen alojada en Internet.
Para insertar una imagen se utiliza la etiqueta <img>. Esta etiqueta emplea el atributo src, que indica la ubicación de la imagen que se desea mostrar. En src se puede escribir la ruta de un archivo local por ejemplo, (img/logo.png) o la dirección URL de una imagen en línea.
También es recomendable incluir el atributo alt, el cual proporciona un texto alternativo que se mostrará si la imagen no puede cargarse. Además, este texto es utilizado por los lectores de pantalla, lo que mejora la accesibilidad de la página. El contenido del atributo alt debe ser breve y describir la imagen de forma clara.
La etiqueta <img> es una etiqueta autocontenida, por lo que no requiere una etiqueta de cierre. Su estructura básica es la siguiente:
<img src="img/logo.png" alt="Logo de la empresa" >2.7. Rutas
Las rutas en HTML permiten indicar la ubicación de archivos como documentos, imágenes, hojas de estilo o scripts dentro de un proyecto. Gracias a ellas, es posible acceder a archivos que se encuentran en la misma carpeta, en una carpeta diferente o en otro nivel de la estructura de directorios.
Si el archivo se encuentra dentro de una carpeta ubicada en la misma ubicación que el documento actual, basta con escribir el nombre de la carpeta seguido de una barra (/). Por ejemplo:
img/logo.png
En este caso, se accede al archivo logo.png que se encuentra dentro de la carpeta img.
Por el contrario, si es necesario retroceder un nivel en la estructura de carpetas, se utiliza ../. Cada ../ permite subir una carpeta respecto a la ubicación actual.
Por ejemplo:
-
../arrow_forward Retrocede una carpeta. -
../../arrow_forwardRetrocede dos carpetas. -
../../../arrow_forwardRetrocede tres carpetas.
Combinando estas rutas es posible acceder a cualquier archivo dentro del proyecto, sin importar en qué carpeta se encuentre.
2.8. Formularios
Los formularios permiten solicitar información a los usuarios dentro de una página web, como su nombre, correo electrónico, contraseña, fecha de nacimiento o cualquier otro dato necesario. Para crear un formulario se utiliza la etiqueta<form></form>, y dentro de ella se agregan uno o varios campos de entrada mediante la etiqueta <input>.
La etiqueta <input>es una etiqueta autocontenida y utiliza el atributo type para indicar el tipo de información que el usuario podrá ingresar. Dependiendo del valor asignado a este atributo, el navegador mostrará un campo diferente.
type="text"
Se utiliza para crear un campo de texto de una sola línea. Es el tipo de entrada más común y permite al usuario escribir información como su nombre, apellido o ciudad.
type="email"
Se utiliza para solicitar una dirección de correo electrónico. Este tipo de campo realiza una validación automática para comprobar que el texto tenga el formato básico de un correo electrónico.
Si el usuario intenta enviar el formulario, pueden ocurrir dos situaciones de error:
El campo está vacío y además tiene el atributo
required; el navegador indicará que debe completarse.El usuario escribió un texto que no tiene un formato válido de correo electrónico (por ejemplo, si no contiene el símbolo
@o el dominio correspondiente), por lo que el navegador mostrará un mensaje indicando que la dirección de correo no es válida.
type="password"
Permite crear un campo para que el usuario escriba una contraseña. Los caracteres ingresados no se muestran directamente en pantalla, sino que aparecen ocultos mediante puntos o asteriscos para proteger la información.
type="checkbox"
Crea una casilla que el usuario puede marcar o desmarcar. Se utiliza cuando una o varias opciones pueden seleccionarse de manera independiente, por ejemplo, aceptar los términos y condiciones o elegir varios intereses.
type="radio"
Permite mostrar un grupo de opciones entre las que el usuario solo puede seleccionar una. Es útil para preguntas donde únicamente existe una respuesta válida, como seleccionar el género, el método de pago o una respuesta de opción múltiple.
type="file"
Permite que el usuario seleccione y cargue un archivo desde su dispositivo, como una imagen, un documento, un archivo PDF o cualquier otro tipo de archivo permitido por el formulario.
type="date"
Muestra un selector de fecha para que el usuario elija un día específico desde un calendario. Es muy utilizado para solicitar fechas de nacimiento, reservas, citas o eventos.
type="submit"
Se utiliza para crear un botón que envía la información del formulario. Cuando el usuario hace clic en este botón, el navegador envía los datos ingresados para que puedan ser procesados por el servidor o por el programa encargado de recibirlos.
Atributos importantes de <input>
required
El atributo required indica que un campo es obligatorio. Si el usuario intenta enviar el formulario sin completar ese campo, el navegador impedirá el envío y mostrará un mensaje solicitando que lo complete.
name
El atributo name asigna un nombre a cada campo del formulario. Este nombre permite identificar la información cuando el formulario es enviado, de modo que el servidor o el lenguaje encargado de procesar los datos pueda saber qué valor corresponde a cada campo.
Por ejemplo, un campo con name="nombre" indicará que el dato recibido corresponde al nombre del usuario.
placeholder
El atributo placeholder muestra un texto de ayuda dentro del campo antes de que el usuario escriba. Su función es orientar sobre el tipo de información que debe ingresar. Este texto desaparece automáticamente cuando el usuario comienza a escribir.
minlengthymaxlength
Los atributos minlength y maxlength permiten establecer la cantidad mínima y máxima de caracteres que el usuario puede escribir en un campo de texto.
El atributo minlength indica el número mínimo de caracteres que debe contener el campo para que el formulario pueda enviarse. Si el usuario escribe menos caracteres de los especificados, el navegador impedirá el envío del formulario y mostrará un mensaje indicando que debe ingresar más caracteres.
<input type="text" minlength="5" >Por su parte, el atributo maxlength establece el número máximo de caracteres permitidos. Cuando el usuario alcanza ese límite, el campo no permite seguir escribiendo más texto.
<input type="text" maxlength="8" >3. CSS Basico
CSS (Cascading Style Sheets) es el lenguaje encargado de definir la apariencia y el diseño de una página web. Gracias a CSS es posible modificar aspectos como los colores, las fuentes, los tamaños, los márgenes, la distribución de los elementos y las animaciones, logrando que un sitio web sea más atractivo y fácil de utilizar.
Además de mejorar la presentación visual, CSS permite separar el contenido de su diseño. Esto facilita el mantenimiento del código, ya que es posible cambiar la apariencia de una o varias páginas sin modificar su estructura HTML, haciendo el desarrollo más organizado, eficiente y profesional.
3.1. Uso de estilos en línea
Existen tres formas principales de aplicar CSS a un documento HTML. La primera consiste en utilizar estilos en línea (Inline CSS), los cuales se escriben directamente dentro de la etiqueta HTML mediante el atributo style.
Para aplicar un estilo en línea, se agrega el atributo style="" en la etiqueta de apertura y, dentro de sus comillas, se escriben una o varias propiedades CSS junto con sus respectivos valores.
Por ejemplo, la propiedad color permite cambiar el color del texto. Si se escribe color: red;, el contenido de esa etiqueta se mostrará en color rojo. Este tipo de estilos solo afecta al elemento en el que se ha escrito el atributo style.
<body>
<p style="color: red;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eaque commodi voluptatem accusamus, ex laboriosam architecto pariatur illum tenetur nobis, est velit? Reiciendis numquam eos natus quas necessitatibus, eius molestiae repellat.</p>
</body>
Ejemplo:
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Veniam sapiente iusto quidem nam tenetur autem, eum laboriosam fugit aut qui. Non vero molestiae fuga debitis voluptatibus inventore ipsa sed mollitia?
3.2. Estilos internos (internal)
La segunda forma de aplicar CSS es mediante la etiqueta <style>, la cual permite escribir reglas de estilo directamente dentro del mismo documento HTML. Generalmente, esta etiqueta se coloca dentro de la sección <head>, ya que allí se reúnen las configuraciones y recursos relacionados con la página.
Dentro de la etiqueta <style> se escriben las reglas CSS. Cada regla comienza con un selector, que indica el elemento al que se aplicarán los estilos (por ejemplo, p para los párrafos). Después del selector se escriben unas llaves ({}) y, en su interior, se colocan las propiedades y sus respectivos valores que definirán la apariencia de ese elemento.
<!DOCTYPE html>
<html>
<head>
<style>
p {
color: red;
}
</style>
</head>
<body>
</body>
</html>
3.3. Estilos externos (external)
La tercera y más recomendada forma de aplicar CSS es mediante una hoja de estilos externa. En este método, los estilos se escriben en un archivo independiente con la extensión .css, el cual posteriormente se vincula al documento HTML.
Para enlazar el archivo CSS, se utiliza la etiqueta <link> dentro de la sección <head> del documento HTML. Esta etiqueta es autocontenida y requiere, como mínimo, dos atributos importantes:
rel="stylesheet": indica que el archivo vinculado es una hoja de estilos CSS.href="...": especifica la ruta o el nombre del archivo CSS que se desea enlazar.
Cuando el navegador carga la página, también carga el archivo CSS y aplica automáticamente todos los estilos definidos en él. Este método es el más utilizado, ya que permite mantener separados el contenido (HTML) y el diseño (CSS), facilitando la organización, el mantenimiento y la reutilización del código.
<!DOCTYPE html>
<html>
<head>
<title>Document</title>
<link rel="stylesheet" href="styles.css">
</head>
Una vez que el archivo CSS ha sido vinculado correctamente al documento HTML, todos los estilos pueden escribirse directamente en la hoja de estilos. A partir de ese momento, cualquier cambio realizado en el archivo .css, como modificar colores, tamaños, fuentes, márgenes, posiciones o cualquier otra propiedad de diseño, se aplicará automáticamente a los elementos del documento HTML que coincidan con los selectores definidos.
3.4. Selectores básicos
En muchas ocasiones es necesario aplicar estilos únicamente a uno o varios elementos específicos, sin afectar a todos los elementos del mismo tipo. Para ello se utiliza el atributo class.
Para crear una clase, se agrega el atributo class="" en la etiqueta HTML que se desea identificar y, entre las comillas, se escribe un nombre representativo. Este nombre servirá para asociar ese elemento con una regla de estilos en CSS.
Posteriormente, en el archivo CSS, la clase se selecciona escribiendo un punto (.) seguido del nombre asignado. Todas las propiedades definidas dentro de esa regla se aplicarán únicamente a los elementos que tengan esa clase.
<!DOCTYPE html>
<html>
<head>
<title>Document</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<p>Hola</p>
<p class="saludo">Hola</p>
</body>
</html>
.saludo {
color: red;
}
Una de las principales ventajas de class es que la misma clase puede utilizarse en varios elementos, permitiendo aplicar el mismo conjunto de estilos sin necesidad de repetir el código.
<!DOCTYPE html>
<html>
<head>
<title>Document</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<p>Hola</p>
<p class="saludo">Hola</p>
<ul>
<li class="saludo">Papa</li>
<li>Tomate</li>
<li class="saludo">Fresas</li>
<li>Cilantro</li>
</ul>
</body>
</html>
3.5. Identificador único (id)
Además del atributo class, HTML dispone de otro identificador llamado id, el cual también permite asignar un nombre a un elemento para poder seleccionarlo posteriormente desde CSS o JavaScript.
La principal diferencia entre ambos es que el valor de un id debe ser único dentro de un mismo documento HTML. Esto significa que un mismo identificador no debe asignarse a más de un elemento. En cambio, una clase (class) puede reutilizarse en tantos elementos como sea necesario.
Aunque algunos navegadores permiten que existan varios elementos con el mismo id, esta práctica no sigue el estándar de HTML y puede provocar comportamientos inesperados, especialmente al trabajar con JavaScript o al crear enlaces internos dentro de la página.
Para seleccionar un elemento mediante su id en CSS, se utiliza el símbolo # seguido del nombre del identificador. Los estilos definidos en esa regla se aplicarán únicamente al elemento que tenga ese id.
<body>
<p id="saludo">Hola</p>
</body>
#saludo {
color: red;
}
3.6. Color
La propiedad color se utiliza para cambiar el color del texto de un elemento en CSS. Después de escribir el nombre de la propiedad, se colocan dos puntos (:) y, a continuación, el valor correspondiente al color que se desea aplicar.
En este curso se utilizarán los nombres de los colores en inglés, como red, blue, green o black, ya que es la forma más sencilla de comenzar a trabajar con esta propiedad. Más adelante se estudiarán otros métodos para definir colores, como los valores RGB, HEX y HSL.
3.7. Tipo grafía
La propiedad font-family se utiliza para definir la tipografía de un texto en CSS. Puede aplicarse a cualquier elemento que contenga texto, como títulos, párrafos, enlaces o botones.
Después de la propiedad font-family, se escriben dos puntos (:) y el nombre de la fuente que se desea utilizar. Si el nombre de la tipografía está compuesto por varias palabras, como Times New Roman, debe escribirse entre comillas simples. En cambio, si el nombre consta de una sola palabra o corresponde a una familia genérica, como Arial o sans-serif, no es necesario utilizar comillas.
Es recomendable especificar varias fuentes separadas por comas. De esta manera, si el navegador o el sistema operativo del usuario no dispone de la primera tipografía, intentará utilizar la siguiente de la lista. Como última opción, se suele indicar una familia genérica, como serif, sans-serif o monospace, para asegurar que siempre se muestre una fuente adecuada.
.saludo {
font-family: 'Times New Roman', Times, serif;
}
3.8. Tamaño
La propiedad font-size se utiliza para definir el tamaño del texto en CSS. Puede aplicarse a cualquier elemento que contenga texto, como títulos, párrafos, enlaces o botones.
Después de la propiedad font-size, se escriben dos puntos (:) y el valor correspondiente al tamaño deseado, seguido de una unidad de medida. En este curso se utilizará la unidad px (píxeles), ya que es una de las más comunes y sencillas para comenzar a trabajar con tamaños de texto.
Por ejemplo, en los párrafos suelen utilizarse tamaños como 14px, 16px o 18px, dependiendo del diseño de la página. Es importante escribir siempre la unidad de medida después del número; de lo contrario, el valor no será válido en CSS.
.saludo {
font-size: 18px;
}
3.9. Texto en negrilla
Existen dos formas comunes de mostrar un texto en negrita en una página web.
La primera consiste en utilizar la etiqueta <b></b> en HTML. Todo el contenido que se encuentre dentro de esta etiqueta se mostrará con un grosor mayor que el texto normal. Sin embargo, esta etiqueta solo modifica la apariencia visual del texto y no le aporta un significado especial.
<body>
<p>Lorem, ipsum dolor sit amet <b>consectetur</b> adipisicing elit. Repudiandae optio nemo illum, quam accusamus ipsa dolore pariatur cum. Facere distinctio dolorem, rerum at quia voluptatibus eius blanditiis eos voluptatem accusamus!</p>
</body>
La segunda forma consiste en utilizar CSS mediante la propiedad font-weight. Al asignarle el valor bold, el texto seleccionado se mostrará en negrita. Este método es el más recomendado cuando el objetivo es modificar únicamente la apariencia del texto, ya que mantiene separados el contenido (HTML) y el diseño (CSS).
.saludo {
font-weight: bold;
}
Además del valor bold, la propiedad font-weight permite definir el grosor del texto utilizando valores numéricos. Generalmente, estos valores van de 100 a 900 en incrementos de 100, donde 100 representa un grosor muy delgado y 900 un grosor muy grueso. Cuanto mayor sea el valor, más gruesas se mostrarán las letras, siempre que la tipografía utilizada disponga de esos niveles de grosor.
.saludo {
font-weight: 100;
}
3.10. Resaltar texto con <strong> y <span>
En ocasiones es necesario aplicar un estilo únicamente a una palabra o a una parte específica de un texto, sin modificar el resto del contenido. Para ello se utiliza la etiqueta <span></span>
La etiqueta <span> no aplica ningún estilo por sí sola; su función es agrupar una porción de texto para poder seleccionarla posteriormente desde CSS o JavaScript. Es una de las etiquetas más utilizadas cuando se desea cambiar el color, el tamaño, la fuente u otra propiedad de una palabra o frase específica.
Ejemeplo:
Lorem ipsum dolor sit amet consectetur adipisicing
<body>
<p>Lorem <span class="ejm_span">ipsum</span> dolor sit amet consectetur adipisicing</p>
</body>
.ejm_span {
color: red;
font-size: 30px;
font-weight: bold;
}
Por otro lado, la etiqueta <strong></strong> se utiliza para indicar que una parte del texto tiene especial importancia. Los navegadores suelen mostrar este contenido en negrita de forma predeterminada, pero, además de modificar su apariencia, <strong> aporta un significado semántico que ayuda a los motores de búsqueda y a las tecnologías de asistencia a identificar que ese contenido es importante.
Ejemeplo:
Lorem ipsum dolor sit amet consectetur adipisicing
<body>
<p>Lorem <strong>ipsum</strong> dolor sit amet consectetur adipisicing</p>
</body>
En resumen, utiliza <span> uando únicamente necesites aplicar estilos a una parte del texto, y <strong> cuando, además de resaltarlo, quieras indicar que ese contenido tiene una importancia especial.
3.11. Texto en cursiva
La propiedad font-style se utiliza para modificar el estilo de la tipografía en CSS. Uno de sus valores más utilizados es italic, el cual hace que el texto se muestre en cursiva, es decir, con una ligera inclinación hacia la derecha.
Aunque font-style admite otros valores, como normal e oblique, en este curso se trabajará principalmente con el valor italic, ya que es el más utilizado para aplicar texto en cursiva.
Ejemplo:
David Estudia Programación
<body>
<p class="ejem_cursiva">David Estudia Programación</p>
</body>
.ejem_cursiva {
font-style: italic;
}
3.12. Alinear texto (text-align)
La propiedad text-align se utiliza para alinear horizontalmente el contenido de texto dentro de un elemento. Puede aplicarse a títulos, párrafos y otros elementos que contengan texto.
Después de la propiedad text-align, se escriben dos puntos (:) y el valor que indica la alineación deseada. Los valores más utilizados son:
left: alinea el texto a la izquierda.
CodeStart
center: centra el texto horizontalmente.
CodeStart
right: alinea el texto a la derecha.
CodeStart
Estos valores permiten organizar el contenido de acuerdo con el diseño de la página y mejorar su presentación.
3.13. Texto justificado (justify)
Además de los valores left, center y right, la propiedad text-align dispone del valor justify.
El valor justify distribuye el texto de manera uniforme entre los márgenes izquierdo y derecho del elemento. Para lograrlo, el navegador ajusta automáticamente el espacio entre las palabras, haciendo que todas las líneas del párrafo (excepto, normalmente, la última) queden alineadas en ambos lados.
Este tipo de alineación es muy utilizado en libros, periódicos y documentos, ya que proporciona una apariencia más ordenada y uniforme al texto.
3.14. Decoración del texto (text-decoration)
La propiedad text-decoration se utiliza para agregar o modificar decoraciones en el texto de un elemento. Con ella es posible aplicar efectos como subrayados, líneas sobre el texto o líneas que lo atraviesan.
Los valores más utilizados de esta propiedad son:
underline: agrega una línea debajo del texto, es decir, lo subraya.
Ejemeplo:
Lorem ipsum dolor sit amet consectetur adipisicing elit.
.decore_underline {
text-decoration: underline;
}
overline: coloca una línea por encima del texto.
Ejemeplo:
Lorem ipsum dolor sit amet consectetur adipisicing elit.
.decore_overline {
text-decoration: overline;
}
line-through: dibuja una línea en el centro del texto, dando el efecto de texto tachado.
Ejemeplo:
Lorem ipsum dolor sit amet consectetur adipisicing elit.
.decore_line-through {
text-decoration: line-through;
}
none: elimina cualquier decoración aplicada al texto.
Un uso muy común de text-decoration: none; es en los enlaces <a>. De forma predeterminada, los navegadores muestran los enlaces subrayados. Si se desea quitar ese subrayado, basta con seleccionar el enlace en CSS y asignarle el valor none a la propiedad text-decoration.
- Antes:
- Despues:
.a__text-decoration {
text-decoration: none;
}
3.15. Espaciado entre letras (letter-spacing)
La propiedad letter-spacing se utiliza para modificar el espacio entre las letras de un texto en CSS. Permite aumentar o reducir la separación entre los caracteres.
Después de los dos puntos (:), se indica el valor de separación junto con una unidad de medida, como px (píxeles). Un valor positivo aumenta el espacio entre las letras, mientras que un valor negativo lo reduce.
Ejemplo:
letter-spacing: 20px;aumenta la separación entre los caracteres
Lorem, ipsum dolor sit amet consectetur adipisicing elit.
letter-spacing: -2px;hace que las letras estén más juntas.
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quasi impedit fugiat error ducimus alias eligendi veniam repudiandae? Pariatur
.p__spacing_positivo {
letter-spacing: 20px;
}
.p__spacing_negativo {
letter-spacing: -2px;
}
3.16. Transformación del texto (text-transform)
La propiedad text-transform se utiliza para modificar la forma en que se muestran las letras de un texto, permitiendo convertirlas en mayúsculas, minúsculas o aplicar mayúscula inicial a cada palabra.
Los valores más utilizados son:
-
uppercase: convierte todas las letras del texto en mayúsculas.
Ejemplo:
Espero que estén aprendiendo.
.texto {
text-transform: uppercase;
}
-
lowercase: convierte todas las letras del texto en minúsculas.
Ejemplo:
Espero que estén aprendiendo.
.texto {
text-transform: lowercase;
}
-
capitalize: convierte en mayúscula la primera letra de cada palabra.
Ejemplo:
Espero que estén aprendiendo.
.texto {
text-transform: capitalize;
}
3.17. Importar fuentes externas a HTML y CSS
3.17.1. Primera forma de exportar tipografías HTML
Una de las formas más sencillas de utilizar una tipografía externa en CSS es mediante Google Fonts, un servicio que ofrece una gran variedad de fuentes que pueden utilizarse en páginas web.
Primero, se debe ingresar a Google Fonts y buscar la tipografía que se desea utilizar. Después de seleccionarla, se debe elegir la opción para obtener el código de inserción (Get embed code). Google Fonts proporcionará el código necesario para incorporar la fuente en el proyecto.
Luego, se debe dirigir al documento HTML y, dentro de la etiqueta <head>, colocar el código proporcionado por Google Fonts. Este código normalmente contiene una o más etiquetas <link> que permiten cargar la tipografía desde los servidores de Google.
Una vez vinculada la fuente, esta puede utilizarse desde el archivo CSS mediante la propiedad font-family. Para ello, se utiliza el nombre de la tipografía indicado por Google Fonts.
De esta manera, la fuente queda disponible para utilizarla en los diferentes elementos de la página web.
Ejemplo:
Espero que estés aprendiendo mucho.
<!DOCTYPE html>
<html>
<head>
<title>Document</title>
<link rel="stylesheet" href="styles.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Lobster+Two:ital,wght@0,400;0,700;1,400;1,700&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&family=Rubik+Spray+Paint&family=Smooch+Sans:wght@100..900&display=swap" rel="stylesheet">
</head>
<body>
<p class="texto">Espero que estés aprendiendo mucho.</p>
</body>
</html>
.texto {
font-family: "Rubik Spray Paint";
}
3.17.2. Segunda forma de exportar tipografías HTML
Otra forma de utilizar una tipografía externa en CSS consiste en descargar los archivos de la fuente e incorporarlos directamente al proyecto. Este método requiere algunos pasos adicionales, pero permite tener los archivos de la tipografía de forma local y utilizarlos sin depender directamente de Google Fonts.
Primero, en el archivo de CSS utiliza la regla @font-face, que permite registrar una fuente para poder utilizarla posteriormente en el proyecto.
@font-face {
font-family: f;
src: url();
}
Al escribir @font-face en Visual Studio Code, el editor puede mostrar una plantilla automática que facilita la escritura de esta regla.
Descargar la tipografía
Después, se debe ingresar nuevamente a Google Fonts y seleccionar la tipografía que se desea utilizar. En esta ocasión, en lugar de copiar el código de inserción, se debe utilizar la opción “Descargar”. Esto descargará un archivo comprimido, normalmente en formato .zip.
El archivo descargado debe descomprimirse. Al hacerlo, se obtendrá una carpeta que contiene los archivos de la tipografía. Esta carpeta puede colocarse dentro del proyecto, por ejemplo, junto a los archivos HTML y CSS.
Configurar
@font-face
Una vez que los archivos de la fuente se encuentren dentro del proyecto, se debe regresar al archivo CSS y completar la regla @font-face.
Primero se utiliza la propiedad font-family, donde se asigna un nombre a la fuente. Este nombre será el que posteriormente se utilizará en el resto del código CSS.
Después se utiliza la propiedad src, que indica dónde se encuentra el archivo de la fuente. Para ello se utiliza url(), dentro de la cual se escribe la ruta correspondiente al archivo.
Ejemplo:
Espero que estés aprendiendo mucho.
@font-face {
font-family: Sekuya;
src: url(Sekuya/Sekuya-Regular.ttf) format("truetype");
}
El valor format("truetype") indica que el archivo utilizado corresponde al formato TrueType (.ttf). Es importante aclarar que format() no convierte ni mejora la compatibilidad de la fuente; simplemente proporciona información sobre el formato del archivo al navegador.
Definir el grosor de la fuente
Si el archivo de la fuente corresponde a un grosor específico, se puede indicar mediante la propiedad font-weight.
Ejemplo:
@font-face {
font-family: Sekuya;
src: url(Sekuya/Sekuya-Regular.ttf) format("truetype");
font-weight: 900;
}
En este caso, el valor 900 indica que el archivo corresponde al peso 900, que normalmente representa un grosor muy grueso o Black.
Es importante entender que cada archivo de fuente puede representar un peso diferente. Por ejemplo, una tipografía puede tener archivos para 400, 500, 700 y 900.
Si solamente se registra un archivo con font-weight: 900, no significa que el navegador pueda proporcionar realmente todos los demás pesos. Por ejemplo, si posteriormente se solicita font-weight: 900, el navegador tendrá que utilizar el peso disponible o realizar una simulación del grosor, dependiendo de la situación y de la fuente.
Por esta razón, si se necesitan diferentes grosores, es recomendable registrar cada archivo correspondiente:
@font-face {
font-family: "MiFuente";
src: url("fuentes/mi-fuente-regular.ttf") format("truetype");
font-weight: 400;
}
@font-face {
font-family: "MiFuente";
src: url("fuentes/mi-fuente-bold.ttf") format("truetype");
font-weight: 700;
}
@font-face {
font-family: "MiFuente";
src: url("fuentes/mi-fuente-black.ttf") format("truetype");
font-weight: 900;
}
De esta manera, se pueden utilizar diferentes grosores de la misma tipografía desde el archivo CSS principal.
Finalmente, en el archivo CSS donde se diseñan los elementos de la página, simplemente se utiliza el mismo nombre que se asignó en font-family y se indica el grosor que se desea mediante font-weight.
p {
font-family: "MiFuente";
font-weight: 700;
}
Así, el navegador utilizará el archivo de la fuente que haya sido registrado para ese peso.
3.18. Modelo de caja (Box Model)
En esta parte se creará un contenedor que más adelante se modificará y se utilizará para organizar diferentes elementos de la página. Por ahora, únicamente se creará su estructura básica y se le asignarán algunas propiedades de CSS para poder visualizarlo.
Dentro del documento HTML, específicamente en la etiqueta <body></body>, se agregará la etiqueta <div></div>
La etiqueta <div> se utiliza como un contenedor genérico, es decir, permite agrupar y organizar diferentes elementos dentro de una página web. Posteriormente, este contenedor puede modificarse mediante CSS para definir su tamaño, color, posición y otras características visuales.
<body>
<div></div>
</body>
Para poder visualizarlo de una manera más clara, primero se le asignará un color de fondo mediante la propiedad background.
div {
background-color: red;
}
Sin embargo, al guardar este código es posible que no se observe el resultado esperado si el <div> está vacío. Esto se debe a que, al no tener contenido ni dimensiones definidas, puede no ocupar un espacio visible en la página.
Por esta razón, se establecerán un ancho y una altura para el contenedor.
Para indicar el ancho se utiliza la propiedad width. Después de los dos puntos (:), se escribe el valor deseado seguido de una unidad de medida, como px (píxeles).
Para indicar la altura se utiliza la propiedad height. De la misma manera, se escribe el valor deseado seguido de una unidad de medida.
div {
background-color: red;
width: 500px;
height: 500px;
}
En este caso, el <div> tendrá un ancho de 500px y una altura de 500px. Además, su fondo será de color rojo, por lo que ahora será posible visualizar claramente el espacio que ocupa en la página.
Nota
Los elementos que se coloquen dentro de estos contenedores podrán formar parte del contenido visible de la página. Los <div> son especialmente útiles para agrupar, organizar y estructurar diferentes elementos, y posteriormente utilizar CSS para controlar su apariencia y distribución.
3.19. Espaciado interno y externo de la caja (padding y margin)
Cuando hablamos de bordes y relleno, estamos hablando de diferentes espacios que pueden existir alrededor del contenido de un elemento. En este ejercicio comenzaremos trabajando con el relleno (padding), que permite crear espacio entre el contenido y los límites internos del elemento.
3.19.1. Creando un formulario
Para realizar este ejercicio se creará un formulario sencillo en HTML, en el que se solicitará al usuario su correo electrónico y contraseña.
<body>
<form class="formulario">
<input class="formulario_input" type="email" placeholder="daniel@gmail.com">
<input class="formulario_input" type="password" placeholder="contraseña">
<input class="formulario_input" type="submit">
</form>
</body>
Posteriormente, utilizaremos CSS para modificar su apariencia y comprender cómo funciona el relleno )(padding).
Primero se asignará un color de fondo rojo al formulario para poder visualizar fácilmente los espacios que iremos creando.
Si al formulario se le asignó la clase formulario, en CSS se selecciona escribiendo un punto (.) seguido del nombre de la clase:
.formulario {
background: red;
}
La propiedad background permite establecer el fondo del elemento. En este caso, se utiliza red para darle un fondo rojo.
3.19.2. Relleno en todos los lados
Para agregar espacio entre el contenido y los límites internos del elemento, se utiliza la propiedad padding.
Si se coloca un solo valor, este espacio se aplicará en los cuatro lados:
.formulario {
background: red;
padding: 20px;
}
En este ejemplo se agregarán 20px de espacio arriba, abajo, izquierda y derecha.
Relleno superior
Si únicamente se necesita espacio en la parte superior, se utiliza:
padding-top: 20px;
Esto agregará espacio solamente en la parte superior del elemento.
Relleno inferior
Para agregar espacio únicamente en la parte inferior, se utiliza:
padding-bottom: 20px;
Relleno izquierdo
Para agregar espacio únicamente en el lado izquierdo:
padding-left: 20px;
Relleno derecho
Para agregar espacio únicamente en el lado derecho:
padding-right: 20px;
3.19.3. Especificar todos los lados con padding
No es necesario escribir padding-top, padding-right, padding-bottom y padding-left por separado. La propiedad padding permite indicar los valores de todos los lados en una sola línea.
Si se utiliza un solo valor, se aplica a los cuatro lados, pero si se utilizan cuatro valores, estos se aplican siguiendo el sentido de las manecillas del reloj:
arriba → derecha → abajo → izquierda
padding: 10px 20px 30px 40px;
En este ejemplo:
10px→ arriba20px→ derecha30px→ abajo40px→ izquierda
Si alguno de los valores es 0, no es necesario escribir px.
3.19.4. Relleno vertical y horizontal
También es posible utilizar solamente dos valores.
En este caso:
padding: 20px 40px;
El primer valor se aplica verticalmente, es decir, a arriba y abajo.
El segundo valor se aplica horizontalmente, es decir, a izquierda y derecha.
Por lo tanto:
20px→ arriba y abajo40px→ izquierda y derecha
Esta forma permite escribir menos código cuando se desea utilizar el mismo espacio en los lados opuestos.
3.19.5. Margen
El margen (margin) permite crear espacio por fuera de un elemento, separándolo de otros elementos que se encuentren a su alrededor.
Para entenderlo mejor, se puede comparar con el padding: primero se encuentra el contenido, después el padding, y finalmente el margin, que es el espacio exterior del elemento.
Creando dos cajas
Para realizar este ejercicio se crearán dos elementos <div> en HTML. Al primero se le asignará la clase box_1 y al segundo la clase box_2.
En CSS se les dará el mismo ancho y alto, pero cada uno tendrá un color de fondo diferente para poder distinguirlos:
.box_1 {
width: 250px;
height: 250px;
background: red;
}
.box_2 {
width: 250px;
height: 250px;
background: blue;
}
Al visualizar la página, las dos cajas aparecerán una junto a la otra, sin un margen adicional entre ellas.
Si se agrega margin: 20px a la primera caja:
.box_1 {
width: 250px;
height: 250px;
background: red;
margin: 20px;
}
se creará un espacio de 20px alrededor de esa caja: arriba, abajo, izquierda y derecha.
De esta manera, podemos observar que el margin funciona de forma similar al padding en cuanto a que ambos pueden aplicarse individualmente a cada lado, pero cumplen funciones diferentes:
padding→ crea espacio entre el contenido y el borde interno del elemento.margin→ crea espacio fuera del elemento, separándolo de otros elementos.
Márgenes individuales
Al igual que con padding, es posible establecer un margen específico para cada lado utilizando propiedades independientes:
-
margin-top→ espacio en la parte superior. -
margin-bottom→ espacio en la parte inferior. -
margin-left→ espacio en el lado izquierdo. -
margin-right→ espacio en el lado derecho.
Por ejemplo:
margin-top: 20px;
agregará 20px de margen únicamente en la parte superior.
Especificar todos los márgenes con margin
También es posible utilizar la propiedad margin para establecer varios valores en una sola línea.
Si se utiliza un solo valor, se aplica a los cuatro lados:
margin-top: 20px;
Si se utilizan cuatro valores, se siguen las mismas reglas que con padding:
arriba → derecha → abajo → izquierda
Por ejemplo:
margin: 10px 50px 50px 100px;
En este caso:
-
10px→ arriba -
50px→ derecha -
50px→ abajo -
100px→ izquierda
Márgenes verticales y horizontales
También se pueden utilizar dos valores para establecer los márgenes verticales y horizontales:
margin: 100px 50px;
El primer valor se aplica a arriba y abajo, mientras que el segundo se aplica a izquierda y derecha.
Por lo tanto:
100px→ arriba y abajo.50px→ izquierda y derecha.
¿Los márgenes siempre se suman?
Cuando se trabaja con márgenes verticales entre elementos que se encuentran en el flujo normal del documento, puede producirse un comportamiento llamado colapso de márgenes.
Por ejemplo, si un elemento tiene margin-bottom: 100px y el siguiente tiene margin-top: 50px, estos valores normalmente no se sumarán para formar 150px. En este caso, el espacio resultante será generalmente de 100px, es decir, el valor de mayor tamaño.
Esto es diferente de los márgenes horizontales, que normalmente sí pueden sumarse.
Por esta razón, es importante recordar que el comportamiento de los márgenes puede variar dependiendo de cómo estén posicionados y estructurados los elementos en la página.
3.20. Bordes en CSS
Para aprender a utilizar los bordes (border) en CSS, primero se creará un <div> en el documento HTML. Después, en CSS, se le asignará un ancho, una altura y un color de fondo para poder visualizarlo claramente.
Por ejemplo:
.caja {
width: 250px;
height: 250px;
background: red;
}
Una vez creada la caja, se comenzará a trabajar con sus bordes.
3.20.1. Grosor del borde
Para definir el grosor de un borde se utiliza la propiedad border-width.
Después de los dos puntos (:), se escribe el valor del grosor seguido de una unidad de medida, como px.
border-width: 5px;
Sin embargo, utilizar únicamente border-width no hará que el borde sea visible. Para que aparezca, también es necesario definir su estilo.
3.20.2. Estilo del borde
Para indicar qué tipo de borde se desea utilizar se emplea la propiedad border-style.
Uno de los valores más utilizados es solid, que crea una línea continua:
border-style: solid;
Existen otros estilos, como:
-
dotted→ borde de puntos. -
dashed→ borde de líneas discontinuas. -
double→ borde formado por dos líneas. -
groove→ efecto de borde con apariencia hundida. -
ridge→ efecto de borde con apariencia elevada. -
inset→ efecto de borde hacia el interior. -
outset→ efecto de borde hacia el exterior. -
none→ no muestra ningún borde. -
hidden→ oculta el borde.
3.20.3. Color del borde
Para establecer el color del borde se utiliza la propiedad border-color.
Por ejemplo:
-
border-color: black;
De esta manera, para crear un borde visible se pueden utilizar las tres propiedades:
border-width: 5px;
border-style: solid;
border-color: black;
Estas propiedades permiten controlar por separado el grosor, el estilo y el color del borde.
3.20.4. Crear un borde en una sola línea
En lugar de escribir las tres propiedades por separado, existe una forma más sencilla de definirlas utilizando únicamente border.
Los valores se escriben en el siguiente orden:
grosor → estilo → color
Por ejemplo:
border: 5px solid black;
En este caso:
-
5px→ grosor del borde. -
solid→ estilo del borde. -
black→ color del borde.
Esta forma permite escribir el borde de manera más rápida y mantener el código más sencillo.
3.20.5. Redondear las esquinas
Para redondear las esquinas de un elemento se utiliza la propiedad border-radius.
-
border-radius: 20px;
El valor determina qué tan redondeadas serán las esquinas. Cuanto mayor sea el valor, mayor será el redondeo, hasta alcanzar el límite permitido por el tamaño del elemento.
También es posible utilizar porcentajes. Por ejemplo:
-
border-radius: 50%;
Cuando se aplica 50% a un elemento cuadrado, sus esquinas pueden llegar a formar un círculo. Si el elemento es rectangular, el resultado puede ser una forma ovalada.
La diferencia principal es que los valores en px representan una medida fija, mientras que los porcentajes se calculan en relación con el tamaño del elemento.
3.20.6. Bordes independientes
No es obligatorio aplicar el mismo borde a los cuatro lados. CSS permite modificar cada lado de manera independiente.
Para ello se pueden utilizar:
-
border-top→ borde superior. -
border-right→ borde derecho. -
border-bottom→ borde inferior. -
border-left→ borde izquierdo.
Por ejemplo:
border-top: 3px solid red;
border-bottom: 5px dashed blue;
En este caso, el borde superior será rojo y continuo, mientras que el borde inferior será azul y discontinuo.
De esta manera, es posible utilizar diferentes grosores, estilos y colores en cada lado del mismo elemento.
3.21. Controlar el tamaño de la caja (box-sizing)
Cuando se crea una caja en CSS y se le asignan propiedades como padding y border, su tamaño total puede aumentar.
Esto ocurre porque, de forma predeterminada, el ancho y el alto establecidos mediante width y height corresponden al contenido. El padding y el border se agregan por fuera de esas dimensiones.
Por ejemplo, si una caja tiene:
width: 100px;
height: 100px;
y posteriormente se le agrega:
padding: 30px;
border: 10px solid black;
El tamaño total de la caja será mayor que los 100px establecidos inicialmente.
Sin embargo, en muchas ocasiones se desea que la caja mantenga exactamente el ancho y el alto definidos, haciendo que el padding y el border formen parte de esas dimensiones.
Para conseguirlo se utiliza la propiedad box-sizing con el valor border-box:
box-sizing: border-box;
Con border-box, el width y el height establecidos representan el tamaño total de la caja, incluyendo su padding y su border.
Ejemplo:
Para observar la diferencia de una manera más clara, se crearán dos <div> en HTML.
Ambos tendrán dos clases: una clase general llamada box y otra clase específica para diferenciarlos.
Por ejemplo:
<div class="box box_1"></div>
<div class="box box_2"></div>
Un elemento puede tener varias clases siempre que los nombres estén separados por espacios.
En este caso, ambos elementos tienen la clase box, por lo que compartirán las mismas propiedades. Además, cada uno tiene una segunda clase diferente.
En CSS se definirán las propiedades generales:
.box {
width: 250px;
height: 250px;
margin: 30px;
background: red;
}
De esta manera, las dos cajas tendrán el mismo ancho, alto, margen y color de fondo.
Ahora se agregará padding y border únicamente a la primera caja:
.box_1 {
padding: 30px;
border: 10px solid black;
}
Al visualizar la página, se podrá observar que la primera caja aumentó su tamaño total. Esto ocurre porque, con el comportamiento predeterminado de box-sizing, el padding y el border se agregan al tamaño establecido mediante width y height.
Ahora se aplicarán las mismas propiedades a la segunda caja, pero agregando box-sizing: border-box:
.box_2 {
padding: 30px;
border: 10px solid black;
box-sizing: border-box;
}
Al visualizar nuevamente la página, se podrá observar que, aunque la segunda caja también tiene padding y border, mantiene el tamaño total de 250px × 250px establecido en la clase box.
Esto ocurre porque box-sizing: border-box hace que el padding y el border se incluyan dentro del ancho y alto definidos.
Diferencia principal
box-sizing: content-box→widthyheightcorresponden al contenido, y elpaddingyborderse agregan al tamaño total.box-sizing: border-box→widthyheightincluyen el contenido, elpaddingy elborder.
Por esta razón, border-box es muy utilizado cuando se quiere tener un mayor control sobre el tamaño final de los elementos.
3.22. Colores
RGBA
RGBA es una forma de representar colores en CSS utilizando cuatro valores:
B (Red) → rojo.
G (Green) → verde.
B (Blue) → azul.
A (Alpha) → transparencia del color.
Los tres primeros valores (R, G y B) permiten crear diferentes colores mediante la combinación de rojo, verde y azul.
Para utilizar RGBA se escribe rgba() y dentro de los paréntesis se colocan los cuatro valores:
background: rgba(255, 0, 0, 1);
Los valores de rojo, verde y azul van desde 0 hasta 255.
Por ejemplo:
-
rgba(0, 0, 0, 1)→ negro. -
rgba(255, 255, 255, 1)→ blanco. -
rgba(255, 0, 0, 1)→ rojo.
El cuarto valor corresponde al canal alfa, que controla la transparencia del color y va desde 0 hasta 1.
-
0→ completamente transparente. -
0.5→ 50 % de transparencia. -
1→ completamente opaco.
Por ejemplo:
background: rgba(255, 0, 0, 0.5);
Esto creará un rojo con una transparencia del 50 %.
Recomendación
Para facilitar la creación de colores RGBA, se puede buscar en internet “RGBA picker”. Estas herramientas permiten seleccionar un color visualmente y modificar sus valores de rojo, verde, azul y transparencia sin tener que probar los valores manualmente.
hexadecimales
Los colores hexadecimales son otra forma de representar colores en CSS. A diferencia de rgba(), utilizan un código que comienza con el símbolo #.
Después del # normalmente se escriben seis caracteres, divididos en tres grupos de dos:
rojo → verde → azul
Por ejemplo:
#ff0000
En este caso:
-
ff→ rojo. -
00→ verde. -
00→ azul.
Por lo tanto, #ff0000 representa el color rojo.
Algunos ejemplos son:
-
#ff0000→ rojo -
#00ff00→ verde -
#0000ff→ azul
Los valores hexadecimales utilizan los números del 0 al 9 y las letras de la A a la F.
Las letras representan los valores que continúan después del 9:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Por ejemplo:
-
0→ valor mínimo. -
9→ valor 9. -
A→ valor 10. -
F→ valor 15.
Cada grupo de dos caracteres puede representar un valor desde 00 hasta FF.
Forma abreviada
También existe una forma abreviada de escribir algunos colores hexadecimales utilizando solamente tres caracteres en lugar de seis.
Esto es posible cuando cada par de caracteres es igual.
Por ejemplo:
#ff0000
puede escribirse de forma abreviada como:
#f00
De la misma manera:
#00ff00 → #0f0
#0000ff → #00f
Esta abreviación solo es válida cuando los dos caracteres de cada par son iguales.
Por ejemplo, #ff0000 puede convertirse en #f00, pero #fa0032 no puede abreviarse de esta manera porque sus pares no están formados por caracteres iguales.
Unidades de medida en CSS
Las unidades de medida en CSS permiten definir tamaños para diferentes elementos. Existen unidades absolutas como px y relativas como rem, em, %, vw y vh.
Elegir la unidad adecuada ayuda a crear interfaces responsivas y fáciles de mantener: las unidades relativas se adaptan al contexto —al tamaño de fuente del padre o al tamaño de la ventana— mientras que px se mantiene fijo.
.contenedor {
width: 100%; /* relativo al padre */
max-width: 60rem; /* relativo a la fuente raíz */
padding: 2vw; /* relativo al viewport */
font-size: 1.125em; /* relativo al padre */
}
Flexbox
Flexbox es un sistema de diseño unidimensional pensado para distribuir elementos en fila o columna. Se activa con display: flex en el contenedor padre.
Con propiedades como justify-content y align-items se resuelven problemas clásicos de alineación y espaciado que antes requerían trucos con float o posicionamiento absoluto.
.barra-navegacion {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
}
CSS Grid
Grid es un sistema bidimensional que permite definir filas y columnas al mismo tiempo, ideal para maquetar secciones completas de una página.
A diferencia de Flexbox, que resuelve un solo eje a la vez, Grid controla tanto el eje horizontal como el vertical desde un mismo contenedor, con propiedades como grid-template-columns.
.galeria {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.5rem;
}
@media (max-width: 600px) {
.galeria {
grid-template-columns: 1fr;
}
}
Pseudo-clases y pseudo-elementos
Las pseudo-clases seleccionan elementos según un estado, como :hover o :focus, mientras que los pseudo-elementos dan estilo a una parte específica de un elemento, como ::before o ::first-letter.
Ambos evitan añadir clases o marcado extra al HTML solo para lograr un efecto visual puntual.
.boton:hover {
background-color: #5b5fef;
}
.boton:focus-visible {
outline: 2px solid #ff5d8f;
}
.cita::before {
content: "“";
color: #ff5d8f;
}
Variables CSS (custom properties)
Las custom properties, conocidas como variables CSS, permiten guardar valores reutilizables como colores, espaciados o tipografías.
Se definen con dos guiones dentro de un selector —normalmente :root— y se consumen con la función var(), lo que facilita mantener la consistencia visual y cambiar el tema de un sitio desde un solo lugar.
:root {
--color-acento: #5b5fef;
--espaciado-base: 1rem;
}
.tarjeta {
border: 1px solid var(--color-acento);
padding: var(--espaciado-base);
}
Diseño responsivo con media queries
Las media queries adaptan los estilos según las características del dispositivo, principalmente el ancho de la ventana, usando la regla @media.
Combinadas con un enfoque mobile-first —donde los estilos base están pensados para pantallas pequeñas— permiten construir interfaces que funcionan bien en cualquier tamaño de pantalla.
.columna {
width: 100%;
}
@media (min-width: 768px) {
.columna {
width: 50%;
}
}
@media (min-width: 1024px) {
.columna {
width: 33.333%;
}
}