Inicio

Fundamentos de CSS

Conceptos esenciales para entender y trabajar con CSS

1. User Agent Stylesheet

Los navegadores aplican estilos por defecto a los elementos HTML.

/* Eliminar estilos por defecto */ button { all: unset; /* Nuevos estilos */ padding: 0.5rem 1rem; background: blue; color: white; }

2. Selectores CSS

Selector de clase (.clase)

Selector de ID (#identificador)

Selector de atributo ([data-tipo="especial"])

/* Selectores básicos */ p { } /* Elemento */ .clase { } /* Clase */ #id { } /* ID */ [attr] { } /* Atributo */

3. Cascada y Carga de Estilos

Orden de importancia en CSS:

  1. !important
  2. Estilos en línea
  3. Estilos internos y externos (según orden)
  4. Estilos del navegador
/* Orden de carga */ @import url('estilos.css'); <link rel="stylesheet" href="estilos.css"> <style>/* Estilos internos */</style> style="/* Estilos en línea */"

4. Especificidad CSS

Estilos en línea

1000

ID

100

Clase

10

Elemento

1
/* Ejemplos de especificidad */ p {} /* 0,0,0,1 */ .clase {} /* 0,0,1,0 */ #id {} /* 0,1,0,0 */ style="" /* 1,0,0,0 */

5. Herencia en CSS

Este texto hereda color y font-family

Este también hereda las mismas propiedades

/* Propiedades que se heredan */ color font-family font-size line-height /* Forzar herencia */ border: inherit; margin: inherit;

6. Box Model

Margin Border Padding Content
.elemento { /* Content */ width: 200px; height: 100px; /* Padding */ padding: 20px; /* Border */ border: 2px solid black; /* Margin */ margin: 20px; }

Posicionamiento CSS

Diferentes tipos de posicionamiento en CSS.

Position: Static (Default)

Static
position: static; /* Posicionamiento normal en el flujo del documento */

Position: Relative

Relative
position: relative; top: 20px; left: 20px; /* Se mueve desde su posición original */

Position: Absolute

Absolute
position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); /* Centrado absoluto */

Position: Fixed

Fixed
position: fixed; bottom: 20px; right: 20px; /* Fijo respecto a la ventana */

Unidades CSS

Unidades Absolutas

200px (Píxeles)
width: 200px; /* Tamaño fijo en píxeles */

Unidades Relativas

50% (Porcentaje del contenedor)
50vw (Viewport Width)
20rem (Relativo al font-size del root)
/* Unidades relativas */ .percent { width: 50%; } /* Relativo al contenedor */ .vw { width: 50vw; } /* Relativo al viewport */ .rem { width: 20rem; } /* Relativo al font-size root */

7. Flexbox

Item 1
Item 2
Item 3
.contenedor { display: flex; justify-content: space-between; align-items: center; } .item { flex: 1; }

8. Grid

1
2
3
4
5
6
.contenedor { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }