Chuletas HTML

Estructura base: Selectores en CSS3

Selectores Básicos

elemento { propiedad: valor; }

Selector básico que aplica estilos a todas las etiquetas de ese tipo. Ejemplo: p, h1, div.

.clase { propiedad: valor; }

Selector de ID. Aplica estilos a un único elemento con ese identificador. Se recomienda no abusar de IDs en CSS.

#id { propiedad: valor; }

Selector de ID. Aplica estilos a un único elemento con ese identificador. Se recomienda no abusar de IDs en CSS.

elemento elemento { propiedad: valor; }

Selector descendiente. Aplica estilos a un elemento dentro de otro. Ejemplo: todos los span dentro de un p.

Selectores Combinados

elemento > hijo { propiedad: valor; }

Selector de hijo directo. Aplica estilos solo a los elementos que son hijos directos, no a los nietos.

elemento + hermano { propiedad: valor; }

Selector de hermano adyacente. Aplica estilos al elemento que está justo después del primero.

elemento ~ hermanos { propiedad: valor; }

Selector de hermanos generales. Aplica estilos a todos los hermanos que vienen después del elemento inicial.

Selectores avanzados

elemento:first-child { propiedad: valor; }

Selecciona el primer hijo de un elemento padre. Ejemplo: el primer li dentro de una lista.

elemento:last-child { propiedad: valor; }

Selecciona el último hijo de un elemento padre. Ejemplo: el último li dentro de una lista.

elemento:nth-child(n) { propiedad: valor; }

Selecciona el hijo en la posición indicada (1, 2, 3...). También acepta fórmulas como 2n (pares), 2n+1 (impares).

elemento[atributo] { propiedad: valor; }

Selecciona elementos que tengan un atributo específico, sin importar el valor. Ejemplo: todos los input que tengan atributo required.

elemento[atributo="valor"] { propiedad: valor; }

Selecciona elementos cuyo atributo sea igual al valor indicado. Ejemplo: input[type="text"].

elemento[atributo^="valor"] { propiedad: valor; }

Selecciona elementos cuyo atributo comience con un valor específico. Ejemplo: a[href^="https"] (enlaces que empiezan por https).

elemento[atributo$="valor"] { propiedad: valor; }

Selecciona elementos cuyo atributo termine en un valor específico. Ejemplo: img[src$=".png"] (imágenes que terminan en .png).

elemento[atributo*="valor"] { propiedad: valor; }

Selecciona elementos cuyo atributo contenga el valor indicado en cualquier parte. Ejemplo: a[href*="google"].

Pseudo-clases de estado

elemento:hover { propiedad: valor; }

Pseudo-clase de estado. Aplica estilos cuando el ratón pasa por encima del elemento.

elemento:active { propiedad: valor; }

Se activa cuando el elemento está siendo clicado. Muy usado en botones y enlaces.

elemento:focus { propiedad: valor; }

Se aplica cuando un elemento (ejemplo: input o enlace) recibe foco, ya sea con el ratón o el teclado (tabulador).

elemento:checked { propiedad: valor; }

Aplica estilos a un checkbox o radio button cuando están seleccionados.

elemento:disabled { propiedad: valor; }

Selecciona inputs, botones o elementos de formulario que estén deshabilitados.

elemento:enabled { propiedad: valor; }

Contrario a disabled. Aplica estilos a campos de formulario que están habilitados.

elemento:valid { propiedad: valor; }

Selecciona inputs cuyo valor cumple con la validación (ejemplo: email válido).

elemento:invalid { propiedad: valor; }

Selecciona inputs cuyo valor NO cumple con la validación.

Pseudo-elementos

elemento::before { contenido }

Pseudo-elemento. Inserta contenido antes del elemento seleccionado. Requiere la propiedad content.

elemento::after { contenido }

Pseudo-elemento. Inserta contenido después del elemento seleccionado. Muy usado en decoración y trucos de CSS.

elemento::first-letter { propiedad: valor; }

Aplica estilos a la primera letra del texto de un elemento. Ejemplo: capital inicial en párrafos.

elemento::first-line { propiedad: valor; }

Aplica estilos a la primera línea de texto de un párrafo. El efecto depende del ancho del contenedor.

Otras pseudo-clases avanzadas

elemento:not(selección) { propiedad: valor; }

Excluye elementos que coincidan con el selector indicado. Ejemplo: p:not(.especial) aplica estilos a todos los párrafos excepto los que tengan clase "especial".

elemento:empty { propiedad: valor; }

Selecciona elementos que no tienen contenido (ni texto ni hijos). Ejemplo: div:empty.

elemento:only-child { propiedad: valor; }

Selecciona un elemento que es el único hijo de su padre. Ejemplo: un p dentro de un div que solo contiene ese párrafo.

elemento:first-of-type { propiedad: valor; }

Selecciona el primer elemento de un tipo dentro del padre. Ejemplo: el primer p dentro de un div con varios elementos.

elemento:last-of-type { propiedad: valor; }

Selecciona el último elemento de un tipo dentro del padre.

elemento:nth-of-type(n) { propiedad: valor; }

Selecciona el elemento en la posición indicada, contando solo los de ese tipo. Ejemplo: el segundo li dentro de una lista, ignorando otros elementos diferentes.

elemento:only-of-type { propiedad: valor; }

Selecciona un elemento que es el único de su tipo dentro del padre. Ejemplo: un único h1 dentro de un div con otros elementos.

:root { propiedad: valor; }

Selecciona el elemento raíz del documento (normalmente <html>). Muy útil para definir variables CSS globales.

elemento:lang(codigo) { propiedad: valor; }

Selecciona elementos según el idioma definido en el atributo lang. Ejemplo: p:lang(es) aplica estilos a párrafos en español.

Pseudo-clases extras curiosas

elemento:target { propiedad: valor; }

Selecciona el elemento que coincide con el ancla de la URL. Ejemplo: #seccion cuando visitas pagina.html#seccion.

input:placeholder-shown { propiedad: valor; }

Estiliza un campo de formulario solo cuando se está mostrando el placeholder.

input:in-range { propiedad: valor; }

Selecciona inputs de tipo numérico cuyo valor está dentro de los límites min y max.

input:out-of-range { propiedad: valor; }

Selecciona inputs de tipo numérico cuyo valor está fuera de los límites min y max.

input:required { propiedad: valor; }

Selecciona campos de formulario que son obligatorios (atributo required).

input:optional { propiedad: valor; }

Selecciona campos de formulario que son opcionales, es decir, que no tienen atributo required.

Propiedades principales de texto y tipografía en CSS3

Texto y tipografía en CSS3

font-family: Define la tipografía del texto. Se recomienda usar varias separadas por coma (ejemplo: font-family: Arial, sans-serif;).

font-size Controla el tamaño de la fuente (16px, 1.2em, 120%).

font-style: Estilo de la fuente: normal, italic, oblique.

font-weight: Grosor de la fuente: normal, bold, lighter o valores de 100 a 900.

line-height: Espaciado vertical entre líneas de texto.

letter-spacing: Espaciado entre letras (positivo o negativo).

word-spacing: Espaciado entre palabras.

text-align: Alineación: left, right, center, justify.

text-decoration: Decoraciones del texto: underline, overline, line-through, none.

text-transform: Cambia el formato del texto: uppercase, lowercase, capitalize.

color: Define el color del texto (nombre, HEX, RGB, RGBA, HSL, HSLA).

Propiedades adicionales de texto

overflow-wrap: (antes word-wrap) → Controla si las palabras largas se cortan o se van fuera del contenedor (normal, break-word).

text-indent: Sangría en la primera línea del párrafo.

white-space: Controla cómo se gestionan los espacios y saltos de línea (normal, nowrap, pre, pre-wrap, pre-line).

text-shadow: Aplica sombra al texto (desplazamiento-x desplazamiento-y blur color).

direction: Dirección del texto (ltr izquierda a derecha, rtl derecha a izquierda).

unicode-bidi: Usado junto con direction para manejar texto en distintos idiomas (más avanzado).

COLORES EN CSS3

Colores y backgrounds
COLORES
color → Define el color del texto. Valores: nombre, HEX, RGB, RGBA, HSL, HSLA.
Ejemplo: p { color: red; }
opacity → Define la opacidad completa del elemento (0 = transparente, 1 = opaco).
Ejemplo: div { opacity: 0.5; }
BACKGROUNDS
background-color: Color de fondo del elemento.
Ejemplo: div { background-color: yellow; }
background-image: Imagen de fondo.
Ejemplo: div { background-image: url("imagen.jpg"); }
background-repeat: Repetición del fondo.
Ejemplo: div { background-repeat: no-repeat; }
background-size: Tamaño de la imagen.
Ejemplo: div { background-size: cover; }
background-position: Posición de la imagen.
Ejemplo: div { background-position: center top; }
background-attachment: Fija el fondo.
Ejemplo: div { background-attachment: fixed; }
background: Shorthand que agrupa varias propiedades.
Ejemplo: div { background: url("imagen.jpg") no-repeat center/cover; }
BORDER
border-width Grosor del borde.
Ejemplo: div { border-width: 5px; }
border-style Estilo del borde.
Ejemplo: div { border-style: dashed; }
border-color Color del borde.
Ejemplo: div { border-color: blue; }
border Shorthand para width, style y color.
Ejemplo: div { border: 2px solid red; }
border-radius Bordes redondeados.
Ejemplo: div { border-radius: 50%; }
Colores y fondos avanzados
COLORES AVANZADOS
currentColor Usa el mismo color que tenga definido color. Muy útil para bordes, sombras, etc.
Ejemplo: div { color: blue; border: 2px solid currentColor; }
transparent Fondo o borde transparente sin afectar al resto.
Ejemplo: div { background-color: transparent; }
FONDOS AVANZADOS
background-clip Define hasta dónde llega el fondo (border-box, padding-box, content-box, text).
Ejemplo: p { background-clip: text; }
background-origin Punto de referencia del fondo (border-box, padding-box, content-box).
Ejemplo: div { background-origin: content-box; }
Múltiples fondos Se pueden poner varias imágenes separadas por comas.
Ejemplo: div { background-image: url("estrella.png"), url("cielo.jpg"); }
Gradientes (CSS3) y Bordes avanzados
GRADIENTES (CSS3)
linear-gradient() Fondo con degradado lineal.
Ejemplo: div { background: linear-gradient(to right, red, blue); }
radial-gradient() Fondo con degradado radial.
Ejemplo: div { background: radial-gradient(circle, red, yellow, green); }
conic-gradient() Fondo con degradado cónico (tipo pastel de colores).
Ejemplo: div { background: conic-gradient(red, yellow, green, blue); }
BORDES AVANZADOS
border-top, border-right, border-bottom, border-left Permiten personalizar cada borde de forma independiente.
Ejemplo: div { border-top: 5px solid red; border-right: 5px dashed blue; }
border-image Usa una imagen como borde.
Ejemplo: div { border: 10px solid transparent; border-image: url("marco.png") 30 round; }
outline Similar al borde, pero no ocupa espacio en el layout. Muy usado en accesibilidad (enlaces, inputs).
Ejemplo: input:focus { outline: 2px solid blue; }
border-radius Redondea esquinas.
Ejemplo: div { border-radius: 15px; }
box-shadow Sombra para cajas.
Ejemplo: div { box-shadow: 4px 4px 10px gray; }
text-shadow Sombra para textos.
Ejemplo: h1 { text-shadow: 2px 2px 5px black; }

Modelo de caja en CSS3

width / height → ancho y alto del contenido.

Ejemplo: div { width: 200px; height: 100px; }

padding → espacio entre el contenido y el borde.

Ejemplo: div { padding: 20px; }

padding-top / right / bottom / left → control individual del relleno.

Ejemplo: div { padding-top: 10px; }

margin → espacio hacia afuera, separa del resto de elementos.

Ejemplo: div { margin: 15px; }

margin-top / right / bottom / left → control individual de márgenes.

Ejemplo: div { margin-left: 20px; }

border → el borde del elemento.

Ejemplo: div { border: 2px solid black; }

box-sizing → define cómo se calculan los tamaños.

Ejemplo: div { box-sizing: border-box; }

content-box (por defecto): el width solo cuenta el contenido.
border-box: el width incluye contenido + padding + border.

overflow → qué hacer si el contenido se desborda.

Ejemplo: div { overflow: auto; }

Valores: visible | hidden | scroll | auto

display → cómo se comporta la caja.

Ejemplo: div { display: inline-block; }

Valores: block | inline | inline-block | none

visibility → oculta o muestra el elemento pero mantiene el espacio.

Ejemplo: div { visibility: hidden; }

Diseño y posicionamiento

position → define el tipo de posicionamiento.

Ejemplo: div { position: absolute; }

Valores: static | relative | absolute | fixed | sticky

top / right / bottom / left → mueven el elemento según su posición.

Ejemplo: div { top: 10px; left: 20px; }

z-index → controla el orden de apilamiento (qué elemento queda encima).

Ejemplo: div { z-index: 10; }

float → coloca el elemento a la izquierda o derecha.

Ejemplo: div { float: right; }

clear → controla cómo se comportan los elementos tras un float.

Ejemplo: div { clear: both; }

display → define cómo se muestra el elemento.

Ejemplo: div { display: inline-block; }

Valores: block | inline | inline-block | flex | grid | none

overflow → qué pasa si el contenido se desborda.

Ejemplo: div { overflow: hidden; }

Valores: visible | hidden | scroll | auto

visibility → oculta o muestra el elemento, pero mantiene el espacio.

Ejemplo: div { visibility: hidden; }

opacity → nivel de transparencia de un elemento.

Ejemplo: div { opacity: 0.5; }

clip / clip-path → recorta el área visible con formas.

Ejemplo: div { clip-path: circle(50%); }

object-fit → cómo se ajusta una imagen o vídeo dentro de su caja.

Ejemplo: img { object-fit: cover; }

object-position → posición de la imagen/vídeo dentro de su caja.

Ejemplo: img { object-position: top center; }

transform → mueve, rota o escala elementos.

Ejemplo: div { transform: rotate(45deg); }

Flexbox (básico para maquetar)

display: flex → activa el modo Flexbox en un contenedor.

Ejemplo: div { display: flex; }

flex-direction → dirección principal de los elementos.

Ejemplo: div { flex-direction: row; }

Valores: row | row-reverse | column | column-reverse

justify-content → alinea los elementos en el eje principal.

Ejemplo: div { justify-content: space-between; }

Valores: flex-start | flex-end | center | space-between | space-around | space-evenly

align-items → alinea los elementos en el eje secundario.

Ejemplo: div { align-items: center; }

Valores: flex-start | flex-end | center | baseline | stretch

flex-wrap → permite que los elementos salten de línea.

Ejemplo: div { flex-wrap: wrap; }

Valores: nowrap | wrap | wrap-reverse

align-content → alinea varias líneas de elementos (cuando hay wrap).

Ejemplo: div { align-content: space-around; }

Valores: flex-start | flex-end | center | space-between | space-around | stretch

gap → espacio entre los elementos del flex.

Ejemplo: div { gap: 20px; }

flex-grow → define cuánto puede crecer un elemento dentro del contenedor.

Ejemplo: div { flex-grow: 1; }

flex-shrink → define cuánto puede encogerse un elemento si no hay espacio.

Ejemplo: div { flex-shrink: 0; }

flex-basis → tamaño inicial del elemento antes de aplicar grow/shrink.

Ejemplo: div { flex-basis: 200px; }

flex → shorthand de grow, shrink y basis.

Ejemplo: div { flex: 1 0 150px; }

order → cambia el orden visual de los elementos.

Ejemplo: div { order: 2; }

align-self → alinea un solo elemento de manera independiente.

Ejemplo: div { align-self: flex-end; }

Grid (nivel básico)

display: grid → activa el modo Grid en un contenedor.

Ejemplo: div { display: grid; }

grid-template-columns → define las columnas.

Ejemplo: div { grid-template-columns: 200px 1fr 2fr; }

grid-template-rows → define las filas.

Ejemplo: div { grid-template-rows: 100px auto; }

gap → espacio entre filas y columnas.

Ejemplo: div { gap: 20px; }

row-gap / column-gap → espacio separado para filas o columnas.

Ejemplo: div { row-gap: 10px; column-gap: 20px; }

grid-column → controla cuántas columnas ocupa un elemento.

Ejemplo: div { grid-column: 1 / 3; }

grid-row → controla cuántas filas ocupa un elemento.

Ejemplo: div { grid-row: 2 / 4; }

justify-items → alinea el contenido de las celdas en el eje horizontal.

Ejemplo: div { justify-items: center; }

Valores: start | end | center | stretch

align-items → alinea el contenido de las celdas en el eje vertical.

Ejemplo: div { align-items: stretch; }

Valores: start | end | center | stretch

justify-content → alinea todo el grid en horizontal dentro del contenedor.

Ejemplo: div { justify-content: space-between; }

align-content → alinea todo el grid en vertical dentro del contenedor.

Ejemplo: div { align-content: center; }

place-items → shorthand de justify-items y align-items.

Ejemplo: div { place-items: center; }

place-content → shorthand de justify-content y align-content.

Ejemplo: div { place-content: center space-between; }

grid-area → define la posición de un ítem en filas y columnas.

Ejemplo: div { grid-area: 1 / 1 / 3 / 3; }

Grid nivel básico-avanzado

repeat() → repite columnas o filas fácilmente.

Ejemplo: div { grid-template-columns: repeat(3, 1fr); }

minmax() → define un tamaño mínimo y máximo.

Ejemplo: div { grid-template-columns: minmax(200px, 1fr); }

auto-fill → llena el espacio con el máximo número de columnas posibles.

Ejemplo: div { grid-template-columns: repeat(auto-fill, 200px); }

auto-fit → parecido a auto-fill, pero ajusta las columnas al espacio disponible.

Ejemplo: div { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }

fr → unidad fraccional, reparte el espacio disponible proporcionalmente.

Ejemplo: div { grid-template-columns: 1fr 2fr; }

Transiciones y Animaciones

Animaciones

@keyframes → define los fotogramas de la animación.

Ejemplo:
@keyframes mover {
from { left: 0; }
to { left: 100px; }
}

animation-name → nombre de la animación definida con @keyframes.

Ejemplo:
div {
animation-name: mover;
}

animation-duration → duración de la animación.

Ejemplo:
div {
animation-duration: 2s;
}

animation-timing-function → curva de aceleración.

Ejemplo:
div {
animation-timing-function: ease-in-out;
}

animation-delay → tiempo de espera antes de iniciar.

Ejemplo:
div {
animation-delay: 1s;
}

animation-iteration-count → número de repeticiones.

Ejemplo:
div {
animation-iteration-count: infinite;
}

animation-direction → dirección de la animación.

Ejemplo: div {
animation-direction: alternate;
}

Valores: normal | reverse | alternate | alternate-reverse

animation-fill-mode → estado del elemento antes y después de la animación.

Ejemplo:
div {
animation-fill-mode: forwards;
}

animation-play-state → controla si la animación está corriendo o pausada.

Ejemplo:
div {
animation-play-state: paused;
}

animation → shorthand con todas las propiedades en una sola.

Ejemplo:
div {
animation: mover 2s ease-in-out 1s infinite alternate;
}

Transiciones

transition → propiedad abreviada para animar cambios.

Ejemplo:
div {
transition: all 0.5s ease;
}

transition-property → define qué propiedad se anima.

Ejemplo:
div {
transition-property: background-color;
}

transition-duration → tiempo que dura la transición.

Ejemplo:
div {
transition-duration: 0.3s;
}

transition-timing-function → curva de aceleración.

Ejemplo:
div {
transition-timing-function: ease-in-out;
}

Valores: linear | ease | ease-in | ease-out | ease-in-out | cubic-bezier()

transition-delay → retardo antes de empezar.

Ejemplo:
div {
transition-delay: 0.2s;
}

transition: none → desactiva todas las transiciones.

Ejemplo:
div {
transition: none;
}

transition multiple → varias propiedades a la vez.

Ejemplo:
div {
transition: background-color 0.3s, transform 0.5s;
}

cubic-bezier() → curva de animación personalizada.

Ejemplo:
div {
transition-timing-function: cubic-bezier(0.68,-0.55,0.27,1.55);
}

steps() → transición por pasos (frame a frame).

Ejemplo:
div {
transition-timing-function: steps(5);
}

RESPONSIVE

@media → regla para aplicar estilos según el tamaño de pantalla o dispositivo.

Ejemplo: @media (max-width: 768px) {
body {
font-size: 14px;
}
}

max-width / min-width → aplican estilos cuando la pantalla es menor o mayor a un ancho específico.

Ejemplo:
@media (min-width: 1024px) {
div {
padding: 20px;
}
}

orientation → detecta la orientación de la pantalla.

Ejemplo:
@media (orientation: landscape) {
body {
background: lightblue;
}
}

aspect-ratio → aplica estilos según la relación de aspecto.

Ejemplo:
@media (aspect-ratio: 16/9) {
video {
max-width: 100%;
}
}

unidades relativas → se adaptan mejor que px fijos.

Ejemplo:
div {
width: 50%;
font-size: 2em;
}

Unidades: % | em | rem | vw | vh | vmin | vmax

clamp() → define un valor adaptable con mínimo, ideal y máximo.

Ejemplo:
h1 {
font-size: clamp(16px, 5vw, 32px);
}

container queries (CSS más moderno) → aplican estilos según el tamaño del contenedor, no del viewport.

Ejemplo:
@container (min-width: 400px) {
div {
font-size: 18px;
}
}

EXTRAS

cursor → cambia el estilo del cursor.

Ejemplo: div {
cursor: pointer;
}

overflow-x / overflow-y → controlan el scroll en ejes separados.

Ejemplo: div {
overflow-x: scroll;
overflow-y: hidden;
}

object-fit → ajuste de imágenes/vídeos.

Ejemplo: img {
object-fit: cover;
}

object-position → posición de imagen/vídeo dentro de su caja.

Ejemplo: img {
object-position: top center;
}

clip-path → recorta elementos con formas.

Ejemplo: div {
clip-path: circle(50%);
}

filter → efectos visuales (blur, brillo, contraste, etc.).

Ejemplo: img {
filter: grayscale(100%);
}

backdrop-filter → efectos de fondo (vidrio esmerilado, blur detrás).

Ejemplo: div {
backdrop-filter: blur(5px);
}

box-shadow → sombra para cajas.

Ejemplo: div {
box-shadow: 4px 4px 10px gray;
}

text-shadow → sombra para textos.

Ejemplo: h1 {
text-shadow: 2px 2px 5px black;
}

resize → permite redimensionar elementos (ej. textareas).

Ejemplo: textarea {
resize: none;
}

pointer-events → controla la interacción con el puntero.

Ejemplo: div {
pointer-events: none;
}

will-change → avisa al navegador qué propiedades van a cambiar (optimización).

Ejemplo: div {
will-change: transform;
}