Guia tecnica

HTML y CSS desde fundamentos hasta uso real

Documento de referencia con ejemplos claros para estructura web, estilos en cascada y decisiones de maquetacion responsiva.

Parte 1: HTML

1. Introduccion: Que es HTML

HTML (HyperText Markup Language) es el lenguaje que define la estructura semantica de una pagina web. Con HTML se organiza el contenido en titulos, parrafos, tablas, formularios y bloques con significado para navegadores, buscadores y tecnologias de asistencia.

No es un lenguaje de programacion; es un lenguaje de marcado. Su objetivo principal es describir que es cada parte del contenido, mientras que CSS define como se ve.

2. Tabla de etiquetas HTML (30)

Nombre del tag Descripcion Ejemplo usando el tag Video
<html> Raiz del documento HTML. <html lang="es">...</html> Ver video
<head> Contiene metadatos y enlaces externos. <head><title>Sitio</title></head> No disponible
<body> Incluye el contenido visible de la pagina. <body><h1>Hola</h1></body> No disponible
<title> Define el titulo de la pestana del navegador. <title>Mi pagina</title> No disponible
<meta> Aporta datos como charset, viewport o descripcion. <meta charset="UTF-8" /> No disponible
<link> Vincula recursos externos, por ejemplo CSS. <link rel="stylesheet" href="main.css" /> Ver video
<header> Encabezado de pagina o seccion. <header><h1>Blog</h1></header> No disponible
<nav> Bloque de navegacion con enlaces. <nav><a href="#">Inicio</a></nav> Ver video
<main> Contenido principal y unico del documento. <main><article>...</article></main> No disponible
<section> Agrupa contenido por tema. <section><h2>FAQ</h2></section> No disponible
<article> Unidad de contenido independiente. <article><h2>Noticia</h2></article> Ver video
<footer> Pie de pagina o de seccion. <footer><p>2026</p></footer> No disponible
<h1> Encabezado de mayor jerarquia. <h1>Titulo principal</h1> Ver video
<p> Define un parrafo de texto. <p>Texto de ejemplo.</p> No disponible
<a> Crea un enlace con atributo href. <a href="https://example.com">Ir</a> Ver video
<img> Inserta una imagen con texto alternativo. <img src="foto.jpg" alt="Foto" /> Ver video
<ul> Lista desordenada con vietas. <ul><li>Item</li></ul> No disponible
<ol> Lista ordenada numerica. <ol><li>Paso</li></ol> No disponible
<li> Elemento de lista dentro de ul u ol. <li>Elemento</li> No disponible
<table> Contenedor de datos tabulares. <table><tr><td>Dato</td></tr></table> Ver video
<tr> Fila de una tabla. <tr><td>A</td></tr> No disponible
<th> Celda de encabezado de tabla. <th scope="col">Nombre</th> No disponible
<td> Celda de datos de tabla. <td>Valor</td> No disponible
<form> Contiene controles de entrada de usuario. <form action="/enviar" method="post"></form> Ver video
<label> Etiqueta descriptiva para un campo. <label for="email">Correo</label> No disponible
<input> Entrada de datos: texto, correo, numero, etc. <input type="email" id="email" /> Ver video
<button> Boton interactivo. <button type="submit">Enviar</button> No disponible
<select> Lista desplegable de opciones. <select><option>A</option></select> No disponible
<option> Opcion dentro de un select. <option value="mx">Mexico</option> No disponible
<textarea> Campo de texto multilinea. <textarea rows="3"></textarea> Ver video

Total documentado: 30 etiquetas HTML.

Parte 2: CSS

1. Que es CSS

CSS (Cascading Style Sheets) controla la presentacion visual de un documento HTML. Define color, espaciado, tipografia, alineacion y distribucion de elementos en pantalla. Se llama "en cascada" porque varias reglas pueden aplicar al mismo elemento y el navegador decide cual gana segun prioridad, especificidad y orden de declaracion.

2. Sintaxis y estructura de una regla CSS

Una regla CSS tiene un selector y un bloque de declaraciones. Cada declaracion combina una propiedad y un valor.

.card {
  border: 1px solid #222;
  padding: 1rem;
  background-color: #ffffff;
}

/* selector: .card */
/* propiedad: border | valor: 1px solid #222 */

3. Tipos de selectores

Selectores simples

Apuntan por nombre de etiqueta, clase, id o universal.

p { color: #222; }
.alerta { border-left: 4px solid #111; }
#menu { position: sticky; }
* { box-sizing: border-box; }

Selectores combinadores

Relacionan elementos por su posicion en el DOM.

nav a { text-decoration: none; }    /* descendiente */
ul > li { margin-bottom: .5rem; }   /* hijo directo */
h2 + p { margin-top: 0; }           /* hermano adyacente */
h2 ~ p { color: #444; }             /* hermano general */

Selectores de pseudoclase

Aplican segun estado o posicion del elemento.

a:hover { text-decoration: underline; }
tr:nth-child(even) { background: #f3f3f3; }
input:not([type="submit"]) { width: 100%; }
button:focus { outline: 2px solid #000; }

Selectores de pseudoelemento

Permiten estilizar partes especificas de un elemento.

h3::before { content: "# "; }
p::first-line { font-weight: 600; }
p::first-letter { font-size: 1.3em; }

Selectores de atributo

Seleccionan segun presencia o patron de valor en atributos.

[required] { border-color: #111; }
input[type="email"] { background: #fafafa; }
a[href^="https"] { font-weight: 600; }

4. Formas de insertar CSS

CSS externo (recomendado)

<link rel="stylesheet" href="assets/css/main.css" />

CSS interno / embebido

<style>
  h1 { color: #111; }
</style>

CSS en linea (inline)

<p style="color: #111; margin-top: 12px;">Texto</p>

5. Tabla de propiedades CSS mas utilizadas (30)

Nombre de la propiedad Descripcion Ejemplo de uso Video
font-family Fuente principal del texto. font-family: "Source Sans 3", sans-serif; Ver video
font-size Tamano de letra. font-size: 1rem; No disponible
font-weight Grosor de la fuente. font-weight: 600; No disponible
line-height Altura de linea. line-height: 1.6; No disponible
color Color del texto. color: #1f1f1f; Ver video
text-align Alineacion horizontal del texto. text-align: center; No disponible
text-decoration Decoracion de texto. text-decoration: underline; No disponible
text-transform Transforma mayusculas/minusculas. text-transform: uppercase; No disponible
background-color Color de fondo. background-color: #f3f3f3; Ver video
background-image Imagen o degradado de fondo. background-image: linear-gradient(#fff, #eee); Ver video
background-size Tamano de imagen de fondo. background-size: cover; No disponible
background-position Posicion del fondo. background-position: center; No disponible
background-repeat Repeticion del fondo. background-repeat: no-repeat; No disponible
opacity Transparencia del elemento. opacity: 0.9; No disponible
width Ancho del elemento. width: 100%; Ver video
height Altura del elemento. height: 64px; No disponible
max-width Ancho maximo permitido. max-width: 1100px; No disponible
margin Espacio externo. margin: 0 auto; Ver video
padding Espacio interno. padding: 1rem; No disponible
border Borde del elemento. border: 1px solid #d7d7d7; No disponible
border-radius Redondea esquinas. border-radius: .5rem; No disponible
box-sizing Modelo de calculo de caja. box-sizing: border-box; Ver video
display Modo de visualizacion. display: grid; Ver video
position Tipo de posicionamiento. position: sticky; No disponible
top Desplazamiento desde arriba. top: 0; No disponible
right Desplazamiento desde la derecha. right: 0; No disponible
z-index Orden de apilado. z-index: 10; No disponible
flex-direction Direccion del eje principal en flex. flex-direction: column; Ver video
justify-content Alinea items en eje principal. justify-content: space-between; No disponible
align-items Alinea items en eje cruzado. align-items: center; No disponible

Total documentado: 30 propiedades CSS.

6. Seccion adicional

Especificidad CSS

Cuando dos reglas apuntan al mismo elemento, gana la de mayor especificidad. En forma simplificada: id > clase/atributo/pseudoclase > etiqueta.

p { color: gray; }          /* 0,0,1 */
.texto { color: green; }    /* 0,1,0 */
#intro { color: black; }    /* 1,0,0 */

Media queries para responsividad

Permiten ajustar el diseno segun el ancho de pantalla. Se recomienda enfoque mobile-first: definir primero estilo movil y ampliar para pantallas grandes.

@media (min-width: 768px) {
  .columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}