Definición de CSS
CSS (Cascading Style Sheets) es un lenguaje utilizado para describir la presentación visual de los documentos HTML. Permite definir colores, fuentes, tamaños, márgenes, alineaciones, fondos y muchos otros aspectos visuales, separando el contenido (HTML) de la apariencia (CSS).
Funcionamiento Básico de CSS
El funcionamiento de CSS se basa en reglas que se aplican a elementos HTML. Cada regla está formada por un selector (que identifica los elementos a los que se aplicará el estilo) y un bloque de declaración (que contiene las propiedades y sus valores). El navegador interpreta estas reglas y las aplica a la página web.
Incluir CSS en un archivo HTML
CSS puede incluirse en un documento HTML de tres formas principales:
- En línea (inline): dentro del atributo
style
en una etiqueta HTML. - Interno (internal): dentro de la etiqueta
<style>
ubicada en el<head>
del documento. - Externo (external): mediante un archivo separado con extensión
.css
, enlazado con la etiqueta<link>
.
Definición de una regla CSS
Una regla CSS es la estructura básica del lenguaje que se compone de un selector y un bloque de declaraciones.
Ejemplo:
p {
color: blue;
font-size: 16px;
}
Elemento de una regla CSS
Una regla CSS tiene los siguientes elementos:
- Selector: indica el elemento HTML al que se aplicará el estilo.
- Propiedad: define la característica que se modificará (color, tamaño, margen, etc.).
- Valor: establece el ajuste de la propiedad.
- Bloque de declaración: conjunto de propiedades y valores entre llaves
{ }
.
Medios CSS
Los medios en CSS (media queries) permiten aplicar estilos específicos según el dispositivo o el tamaño de la pantalla. Se usan con la regla @media
.
Ejemplo:
@media (max-width: 768px) {
body {
background-color: lightgray;
}
}
Comentarios CSS
Los comentarios en CSS sirven para añadir notas o aclaraciones que no se interpretan como código. Se escriben entre /* comentario */
.
Ejemplo:
/* Este estilo aplica al título principal */
h1 {
color: red;
}
Sintaxis de la definición de las propiedades CSS
La sintaxis de una propiedad CSS consiste en:
- Propiedad: característica que se desea modificar.
- Valor: ajuste asignado a la propiedad.
Se separan por dos puntos:
y terminan con punto y coma;
.
Ejemplo:color: green;
Conceptos relacionados
Selector
Los selectores identifican los elementos HTML a los que se aplicarán estilos.
- Selectores básicos: seleccionan por tipo, id o clase.
p
(tipo) → aplica a todos los párrafos.#titulo
(id) → aplica a un elemento con id=»titulo»..rojo
(clase) → aplica a todos los elementos con class=»rojo».
- Selectores avanzados: permiten mayor precisión.
div p
→ todos los párrafos dentro de un div.p:first-child
→ primer párrafo de un contenedor.[type="text"]
→ selecciona inputs de texto.
- Agrupación de reglas: se usa una coma para aplicar estilos iguales a varios selectores.
h1, h2, h3 { color: blue; }
- Herencias: algunos estilos se heredan automáticamente, como el color o la fuente. Otros no se heredan, como el margen o el borde.
Colisiones de estilos
Las colisiones ocurren cuando varios estilos afectan al mismo elemento. El navegador resuelve la colisión aplicando el estilo más específico o el último declarado. El orden de prioridad es:
- Estilos en línea.
- Estilos en hoja interna.
- Estilos en hoja externa.
- Estilos por herencia.
Unidades de medida en CSS
Las unidades de medida en CSS permiten definir tamaños (fuentes, márgenes, anchos, etc.). Se dividen en relativas y absolutas.
- Unidades relativas: dependen del contexto o del elemento padre. Ejemplos:
em
: relativo al tamaño de la fuente del elemento.rem
: relativo al tamaño de la fuente raíz (html).%
: relativo al contenedor padre.vw
yvh
: relativos al ancho y alto de la ventana gráfica.
- Unidades absolutas: tienen un valor fijo independiente del contexto. Ejemplos:
px
(píxeles).cm
,mm
(centímetros, milímetros).in
(pulgadas).pt
(puntos tipográficos).
Colores en CSS
CSS permite definir colores de varias maneras:
- Palabras clave: nombres predefinidos como
red
,blue
,green
. - RGB decimal: define el color con tres valores entre 0 y 255.
- Ejemplo:
rgb(255,0,0)
→ rojo.
- Ejemplo:
- RGB porcentual: define el color con porcentajes.
- Ejemplo:
rgb(100%,0%,0%)
→ rojo.
- Ejemplo:
- Hexadecimal: utiliza un código de seis dígitos hexadecimales.
- Ejemplo:
#FF0000
→ rojo.
- Ejemplo:
Modelo de Caja en CSS (Box Model)
El modelo de caja es la base del diseño en CSS. Cada elemento HTML se representa como una caja con las siguientes partes:
- Anchura y altura: definen el tamaño del contenido.
- Padding (relleno): espacio entre el contenido y el borde.
- Border (borde): línea que rodea el relleno y el contenido.
- Margin (margen): espacio externo entre el borde del elemento y otros elementos.
- Background (fondo): área de color o imagen que ocupa el contenido y el relleno.
Posicionamiento en CSS
El posicionamiento controla dónde aparece un elemento en la página:
- Normal (static): es el valor por defecto. Los elementos se colocan en orden normal del flujo.
- Relativo (relative): se coloca respecto a su posición normal, desplazándose según top, right, bottom, left.
- Fijo (fixed): el elemento se mantiene fijo respecto a la ventana del navegador, incluso al hacer scroll.
- Absoluto (absolute): se coloca respecto a su contenedor más cercano que tenga posición distinta de static.
- Flotante (float): permite alinear un elemento a la izquierda o derecha, dejando que el contenido fluya a su alrededor.
Visualización (display)
La propiedad display
controla cómo se muestra un elemento en pantalla:
block
: el elemento ocupa toda la anchura disponible (ej.<div>
).inline
: el elemento se muestra en línea, sin romper el flujo (ej.<span>
).inline-block
: combina características deblock
yinline
.none
: oculta el elemento.flex
ogrid
: permiten diseños avanzados de distribución.
Propiedades de Textos
Las propiedades de texto permiten controlar la apariencia de los contenidos escritos en una página web.
color
: define el color del texto.font-family
: el tipo de fuente.font-size
: el tamaño de la letra.font-style
: estilo como cursiva o normal.font-weight
: grosor (normal, bold).text-align
: alineación (left, right, center, justify).text-decoration
: decoración (subrayado, tachado).line-height
: altura entre líneas.
Propiedades de Enlaces
Los enlaces se estilizan principalmente con pseudoclases:
a:link
: estado normal.a:visited
: cuando el enlace ya fue visitado.a:hover
: cuando el ratón pasa encima.a:active
: al hacer clic.
Estas permiten cambiar color, fondo, subrayado o aplicar transiciones.
Propiedades de Imágenes
Las imágenes en CSS se controlan con:
width
yheight
: dimensiones.object-fit
: ajusta cómo se redimensiona la imagen (cover, contain).border-radius
: redondear esquinas.filter
: aplicar efectos (blur, brightness).background-image
: usar imágenes como fondo.
Propiedades de Listas
Las listas (<ul>
, <ol>
) se estilizan con:
list-style-type
: define el marcador (disc, circle, square, decimal).list-style-image
: usar una imagen como viñeta.list-style-position
: posición dentro o fuera.
Propiedades de Tablas
Las tablas (<table>
) tienen propiedades de formato:
border
: define bordes.border-collapse
: colapsar o separar bordes.padding
: espacio en celdas.text-align
: alineación del texto.background-color
: color de celdas.
Propiedades de Formularios
Los formularios (<input>
, <textarea>
, <button>
) se personalizan con:
width
yheight
: dimensiones.border
: estilo del borde.background-color
: color de fondo.font-size
: tamaño del texto.:focus
: estado activo de un campo.
Transformación 2D
La propiedad transform
permite modificar elementos en dos dimensiones. Ejemplos:
translate(x,y)
: mover.rotate(45deg)
: rotar.scale(1.5)
: escalar.skew(20deg)
: inclinar.
Transformación 3D
También con transform
, pero en tres dimensiones:
rotateX
,rotateY
,rotateZ
: rotaciones en ejes 3D.translateZ
: mover en profundidad.perspective
: dar efecto de perspectiva.
Transición
Las transiciones permiten animar un cambio de estado de una propiedad:
transition-property
: qué propiedad cambia.transition-duration
: tiempo de la transición.transition-timing-function
: velocidad (linear, ease).
Animación
Las animaciones permiten cambiar propiedades en varios pasos con @keyframes
.
Ejemplo:
@keyframes mover {
from { left: 0px; }
to { left: 100px; }
}
animation-name
: nombre de la animación.animation-duration
: tiempo.animation-iteration-count
: cantidad de repeticiones.
Paginación: Columnas
CSS permite dividir texto en columnas.
column-count
: número de columnas.column-gap
: espacio entre columnas.column-rule
: línea divisoria.
Interfaces de usuario
- Box-sizing: controla cómo se calculan ancho y alto de un elemento.
content-box
: tamaño incluye solo el contenido.border-box
: incluye relleno y borde.
- Flexbox: sistema de diseño flexible.
display: flex
: activa flexbox.justify-content
: alineación horizontal.align-items
: alineación vertical.flex-wrap
: control de líneas.
Media Query
Las media queries permiten aplicar estilos según el dispositivo o tamaño de pantalla.
Ejemplo:
@media (max-width: 768px) {
body { background-color: lightgray; }
}
Se usan para diseños responsivos.