El Pincel del Ninja: Selectores, propiedades y valores
“HTML es el esqueleto. CSS es la piel, músculos y armadura.” - Arte del Frontend
🎯 Objetivo Ninja
Escribirás CSS profesional con selectores precisos. Transformarás HTML plano en diseño épico.
🏯 Teoría
CSS = Cascading Style Sheets (Hojas de Estilo en Cascada)
Sintaxis:
selector {
propiedad: valor;
otra-propiedad: valor;
}
⚔️ Implementación
Tres Formas de Aplicar CSS
<!-- 1. Inline (NO recomendado) -->
<p style="color: red;">Texto rojo</p>
<!-- 2. Internal (en <head>) -->
<style>
p { color: blue; }
</style>
<!-- 3. External (archivo .css) - RECOMENDADO -->
<link rel="stylesheet" href="styles.css">
Selectores Básicos
/* Elemento */
p { color: red; }
/* Clase (puede repetirse) */
.ninja { font-weight: bold; }
/* ID (único) */
#header { background: black; }
/* Universal */
* { margin: 0; }
/* Múltiples selectores */
h1, h2, h3 { font-family: Arial; }
Selectores Avanzados
/* Descendiente (todos los p dentro de div) */
div p { color: blue; }
/* Hijo directo */
div > p { color: green; }
/* Hermano adyacente */
h1 + p { margin-top: 0; }
/* Atributo */
input[type="text"] { border: 1px solid gray; }
/* Pseudo-clases */
a:hover { color: red; }
li:first-child { font-weight: bold; }
tr:nth-child(even) { background: #f0f0f0; }
/* Pseudo-elementos */
p::first-letter { font-size: 2em; }
p::before { content: "→ "; }
Propiedades Comunes
.ninja {
/* Color */
color: #333;
background-color: #fff;
/* Texto */
font-family: Arial, sans-serif;
font-size: 16px;
font-weight: bold;
text-align: center;
text-decoration: underline;
line-height: 1.5;
/* Tamaño */
width: 300px;
height: 200px;
max-width: 100%;
/* Espaciado */
margin: 10px;
padding: 20px;
/* Borde */
border: 2px solid #000;
border-radius: 8px;
/* Display */
display: block;
visibility: hidden;
opacity: 0.5;
}
Cascada y Especificidad
/* Menos específico */
p { color: blue; } /* Especificidad: 1 */
/* Más específico */
.intro { color: red; } /* Especificidad: 10 */
#main { color: green; } /* Especificidad: 100 */
/* Override (evitar) */
p { color: yellow !important; }
Orden de prioridad:
!important(evitar)- Inline styles
- IDs
- Clases/atributos/pseudo-clases
- Elementos
🎯 Reto Ninja
🎨 La Card del Shinobi
Crea un archivo estilos.css y vincúlalo a tu HTML usando la etiqueta <link> en el <head>.
Selecciona la clase .card y dale un ancho máximo de 300px, un borde sólido y un border-radius de 8px.
Usa el selector .card-title para cambiar el color del título a tu azul favorito y aumentar su tamaño.
Añade padding interno a la card para que el contenido no toque los bordes.
Estiliza el enlace .card-link para que cambie de color cuando pases el mouse por encima (:hover).
🔓 Pergamino Oculto
Variables CSS (Custom Properties)
:root {
--color-primario: #3498db;
--espaciado: 20px;
}
.ninja {
background: var(--color-primario);
padding: var(--espaciado);
}
Combinadores Complejos
/* Todos los hermanos siguientes */
h1 ~ p { color: gray; }
/* Has (selector padre - moderno) */
div:has(> img) { border: 1px solid; }
/* Not */
li:not(.destacado) { opacity: 0.6; }
✅ Checklist de Dominio
Pergamino del Artista
Próximo: Box Model - El secreto mejor guardado.