Introducción a CSS

Hoja de Estilos en Cascada

¿Qué es CSS y por qué es importante?

CSS define la apariencia de una página web.

Permite separar el contenido del diseño.

Facilita la reutilización y mantenimiento del código.

Tipos de CSS

inline
  • Inline: Se aplica directamente en la etiqueta con style.
<p style="color: red;">Texto</p>
style
  • Interno: Se define dentro de <style> en el head.
<style> p { color: red; } </style>
link
  • Externo: Se usa un archivo .css enlazado con <link>.
<link rel="stylesheet" href="styles.css">
styles

Clases e ID en CSS

Se usan para aplicar estilos a elementos específicos.

Clase ID
Se aplica a varios elementos. Se aplica a un solo elemento.
Se define con .. Se define con #.
Se puede reutilizar. Se usa una sola vez.
classes

Ejemplos

.button { background-color: blue; }
#header { font-size: 24px; }

Pseudo Clases

pseudo
  • :hover: Se activa al pasar el cursor sobre el elemento.
  • :active: Se activa al hacer clic en el elemento.

Ejemplos

.button:hover { background-color: red; }
input:focus { border: 1px solid blue; }

Combinadores

combinadores
Combinador Descripción Ejemplo
Descendente Selecciona elementos descendientes. div p { color: red; }
Hijo Selecciona elementos hijos. div > p { color: blue; }
Adyacente Selecciona elementos adyacentes. h1 + p { font-size: 16px; }
General Selecciona elementos generales. h1 ~ p { font-size: 16px; }

Ejemplos

div p { color: red; }
div > p { color: blue; }
h1 + p { font-size: 16px; }
h1 ~ p { font-size: 16px; }

Box Model

Todos los elementos en CSS son cajas.

inline
Propiedad Descripción
Margin Espacio fuera del borde.
Border Borde de la caja.
Padding Espacio entre el contenido y el borde.
Content Contenido del elemento.

Tipos de display

inline
  • block: Ocupa todo el ancho disponible y se muestra en una nueva línea.
  • inline: Solo ocupa el ancho necesario.

Tipos de posición

position
  • static: Posición por defecto.
  • relative: Se mueve respecto a su posición original.
position
  • absolute: Se posiciona en relación a su ancestro posicionado.
  • fixed: Permanece fijo en pantalla.
  • sticky: Se comporta como relative hasta que se hace sticky.

Unidades en CSS

units

Absolutas

  • cm: Centímetros.
  • px: Píxeles. (1px = 2.54cm)
  • in: Pulgadas. (1in = 2.54cm)
  • pt: Puntos. (1pt = 1/72in)
h1 { font-size: 24px; } 

Relativas

  • %: Porcentaje.
  • em: Tamaño de fuente.
  • rem: Tamaño de fuente del root.
  • vw/vh: Viewport width/height dimensions
h1 { font-size: 2em; }

Colores y Gradientes

colors
  • Colores en nombres, HEX, RGB y HSL.
                
color: red;
color: #ff0000;
color: rgb(255, 0, 0);
color: hsl(0, 100%, 50%);
                
            
colors
  • Gradientes lineales y radiales.
  • Uso de transparencia con rgba().
                
background: linear-gradient(to right, red, blue);
background: radial-gradient(circle, red, blue);
background: rgba(0, 0, 0, 0.5);
                
            

Fuentes y Tipografía

  • Uso de fuentes seguras.
  • Google Fonts.
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
font-family: Arial, sans-serif;
Propiedad Descripción
font-family Familia de fuentes.
font-size Tamaño de la fuente.
font-weight Grosor de la fuente.
font-style Estilo de la fuente.
Propiedad Descripción
text-align Alineación del texto.
text-decoration Decoración del texto.
text-transform Transformación del texto.
line-height Altura de línea.

Ejemplos

font-family: Arial, sans-serif;
font-size: 16px;
font-weight: bold;
font-style: italic;
text-align: center;
text-decoration: underline;
text-transform: uppercase;
line-height: 1.5;
fonts

Flexbox vs Grid

¿Cuál usar y cuándo?

flexbox
  • Flexbox es un modelo unidimensional.
  • Se usa para alinear elementos en una fila o columna.

Ejemplo de Flexbox


  .container {
      display: flex;
      justify-content: center;
      align-items: center;
  }
                  
grid
  • Grid es un modelo bidimensional.
  • Se usa para crear layouts complejos.

Ejemplo de Grid


  .container {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
  }
                  

Animaciones y Transiciones

  • transition para cambios suaves.
  • @keyframes para animaciones avanzadas.
  • Optimización para rendimiento.

Ejemplo de Transición


  .button {
      transition: background-color 0.5s ease-in-out;
  }
                  

Ejemplo de Animación


  @keyframes fadeIn {
      from { opacity: 0; }
      to { opacity: 1; }
  }
                  

Buenas Prácticas en CSS

  • Mantener el código organizado.
  • Usar nombres de clases significativos.
  • Evitar CSS innecesario.
  • Evitar el uso excesivo de !important.