CSS Básico
Selectores Básicos
/* Selector de elemento */
p { color: blue; }
/* Selector de clase */
.destacado { font-weight: bold; }
/* Selector de ID */
#header { background: #333; }
/* Selector descendente */
nav ul li { display: inline-block; }
Pseudo-clases/elementos
/* Estados de interacción */
a:hover { color: red; }
input:focus { outline: 2px solid blue; }
/* Posición en listas */
li:nth-child(odd) { background: #f5f5f5; }
/* Pseudo-elementos */
p::first-letter { font-size: 1.5em; }
.blockquote::before { content: '"'; }
Box Model
.elemento {
width: 300px;
padding: 20px;
border: 5px solid #333;
margin: 10px;
box-sizing: border-box; /* Alternativa */
}
Posicionamiento
.relative { position: relative; }
.absolute { position: absolute; top: 0; }
.fixed { position: fixed; bottom: 0; }
.sticky { position: sticky; top: 0; }
Flexbox
.contenedor {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
}
.item {
flex: 1 0 auto;
}
CSS Grid
.contenedor {
display: grid;
grid-template-columns: 1fr 3fr;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
Transiciones
.elemento {
transition: all 0.3s ease;
background: blue;
}
.elemento:hover {
background: red;
transform: scale(1.1);
}
Animaciones
@keyframes slidein {
from { transform: translateX(-100%); }
to { transform: translateX(0); }
}
.elemento {
animation: slidein 1s ease infinite alternate;
}