Guía Visual CSS - Irene-Frias/1DAM GitHub Wiki
🎨 Guía Visual de Propiedades CSS
CSS (Cascading Style Sheets) es el lenguaje estándar para definir la presentación y el diseño de las páginas web. Mientras que HTML se encarga de la estructura del contenido, CSS se ocupa de la apariencia visual de ese contenido. Aquí te dejamos una guía rápida de los aspectos más importantes que debes saber sobre CSS para comenzar a diseñar sitios web.
🌍 ¿Qué es CSS?
CSS es un lenguaje utilizado para controlar el estilo y la disposición de los elementos en una página web. Permite aplicar colores, fuentes, márgenes, espaciado, alineación y otras propiedades visuales a los elementos HTML.
Características principales de CSS:
- Lenguaje de estilo: CSS no afecta la estructura del contenido, sino su apariencia visual.
- Separa el contenido del diseño: HTML se encarga de la estructura y el contenido, mientras que CSS se ocupa de la presentación.
- Cascada: CSS sigue un sistema jerárquico de reglas de estilo, donde los estilos más específicos sobrescriben los más generales.
- Responsive Design: CSS permite crear diseños adaptativos que se ajustan a diferentes tamaños de pantalla (móviles, tabletas, escritorios).
🧩 Estructura Básica de un Documento CSS
Un documento CSS típico contiene reglas que se aplican a elementos HTML de la siguiente manera:
- Selector: Es el elemento HTML al que se le aplican los estilos (por ejemplo,
p,.clase,#id). - Propiedad: Es la característica que se va a modificar (por ejemplo,
color,font-size,margin). - Valor: Es el valor que se asigna a la propiedad (por ejemplo,
red,16px,10px).
/* Este es un comentario */
selector {
propiedad: valor;
}
✨ Propiedades de Estilo de Texto y Color
1. color
Define el color del texto.
- Ejemplo:
color: blue;
2. background-color
Establece el color de fondo de un elemento.
- Ejemplo:
background-color: #f0f0f0;
3. font-family
Define la familia de fuentes para el texto.
- Ejemplo:
font-family: Arial, sans-serif;
4. font-size
Define el tamaño de la fuente.
- Ejemplo:
font-size: 16px;
5. font-weight
Define el grosor de la fuente, que puede variar dependiendo de la tipografía que se le haya indicado. Valores comunes incluyen normal (por defecto) o bold (negrita).
- Ejemplo:
font-weight: bold;
6. font-style
Controla el estilo de la fuente, como poner el texto en cursiva. Es útil para enfatizar palabras o frases dentro de un párrafo.
- Valores comunes:
normal,italic,oblique - Ejemplo:
font-style: italic;
El valor
italicaplica un estilo de fuente en cursiva, que se usa para resaltar texto, citas o elementos importantes. El valorobliquetambién puede ser utilizado, aunque su efecto varía dependiendo de la fuente utilizada.
7. text-align
Alinea el texto dentro de un elemento.
- Valores comunes:
left,center,right,justify - Ejemplo:
text-align: center;
8. text-decoration
Añade decoraciones visuales al texto, como subrayado, tachado o líneas onduladas.
- Ejemplo:
text-decoration: underline wavy red;
Puedes aplicar diferentes estilos de línea y colores para personalizar la decoración. Por ejemplo, subrayado ondulado de color rojo con un ajuste de tamaño en el valor.
📏 Espaciado y Bordes
9. margin
Define el espacio exterior de un elemento (alrededor del borde).
- Ejemplo:
margin: 10px; - Propiedades relacionadas:
margin-top,margin-right,margin-bottom,margin-left
10. padding
Define el espacio interior de un elemento (entre el borde y el contenido).
- Ejemplo:
padding: 15px; - Propiedades relacionadas:
padding-top,padding-right,padding-bottom,padding-left
11. border
Define el borde de un elemento en términos de grosor, estilo y color.
- Ejemplo:
border: 1px solid black; - Propiedades relacionadas:
border-width,border-style,border-color,border-collapse
12. border-radius
Redondea las esquinas de un borde, dándole un efecto visual más suave.
- Ejemplo:
border-radius: 5px;
📐 Tamaño y Dimensiones
13. width
Define el ancho de un elemento.
- Ejemplo:
width: 100px;
14. height
Define la altura de un elemento.
- Ejemplo:
height: 50px;
📋 Layout y Posicionamiento
15. display
Especifica el tipo de visualización de un elemento.
- Valores comunes:
block,inline,inline-block,flex,grid,none - Ejemplo:
display: flex;
16. position
Controla la posición de un elemento dentro de la página.
- Valores comunes:
static,relative,absolute,fixed,sticky - Ejemplo:
position: absolute;
17. top, right, bottom, left
Define la ubicación de un elemento posicionado. Se utiliza junto con la propiedad position.
- Ejemplo:
top: 10px; left: 20px;
18. float
Posiciona un elemento a la izquierda o derecha, permitiendo que otros elementos floten alrededor de él.
- Ejemplo:
float: right;
19. clear
Controla el flujo de elementos flotantes para que no interfieran con otros elementos.
- Valores comunes:
none,left,right,both - Ejemplo:
clear: both;
20. overflow
Controla cómo se maneja el contenido desbordado de un contenedor.
- Valores comunes:
visible,hidden,scroll,auto - Ejemplo:
overflow: hidden;
21. z-index
Controla el orden de apilamiento de los elementos posicionados, permitiendo que algunos elementos se sitúen encima de otros.
- Ejemplo:
z-index: 10;
🎛 Interactividad y Estilo Avanzado
22. opacity
Define la opacidad de un elemento (cuánto de transparente es).
- Ejemplo:
opacity: 0.5;
23. cursor
Cambia el tipo de cursor cuando se pasa sobre un elemento.
- Ejemplo:
cursor: pointer;
24. box-shadow
Aplica una sombra alrededor de un elemento para darle un efecto tridimensional.
- Ejemplo:
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
25. transition
Define la transición de una propiedad cuando cambia, por ejemplo, cuando un elemento cambia de estado (como al hacer hover).
- Ejemplo:
transition: all 0.3s ease;
26. transform
Aplica transformaciones en el espacio, como rotar, escalar o trasladar un elemento.
- Ejemplo:
transform: rotate(45deg);
/* Estilo para enlaces */
a {
color: darksalmon;
font-weight: bold;
}
/* Enlaces visitados */
a:visited {
color: green;
background-color: yellow;
}
/* Enlace cuando aún no se ha visitado */
a:link {
color: red;
}
/* Enlace cuando el cursor está encima */
a:hover {
color: black;
}
/* Enlace cuando se hace clic */
a:active {
color: blue;
}
📐 Flexbox y Grid
27. flex (para Flexbox)
Define cómo un elemento flexible se comporta dentro de un contenedor con display: flex.
- Propiedades relacionadas:
justify-content,align-items,flex-direction - Ejemplo:
display: flex; justify-content: center; align-items: center;
28. grid (para Grid Layout)
Define un contenedor como un grid, display: grid;
-
Propiedades relacionadas:
- Establecer columnas y filas en el contenedor:
grid-template-columns,grid-template-rows(distribuyen los elementos por la anchula de las columnas y las filas). Las unidades de medida son en píxelespx, porcentajes%o faccionesfr. - Dar separación en los elementos:
column-gap(las columnas),row-gap(las filas),gap(ambos, tanto columnas como filas). - Establecer las dimensiones de las filas o columnas:
grid-templatele pondremos un tamaño indicado. También se pude indicar por defecto congrid-auto-rowsogrid-auto-columns.
- Establecer columnas y filas en el contenedor:
-
Ejemplo:
display: grid; grid-template-columns: 1fr 1fr; gap: 10px; grid-auto-rows: 100px;
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 50px;
grid-auto-rows: 100px;
}
- Además se pueden utilizar otros valores determinados como:
repeatrepetir un número de veces el número indicado.minmaxpermite generar un tamaño variable en ese rango.auto-fillpermite que el número de columnas dependa del tamaño de la ventana según el número de columnas que haya, tantas como puedan caber.grid-column-startindica la primera casilla vertical donde empieza el elemento.grid-column-endindica la última casilla vertical donde empieza el elemento,grid-column-start+1 ocupando la columna de grid.grid-row-startindica la primera casilla horizontal donde empieza el elemento.grid-row-endindica la primera casilla horizontal donde empieza el elemento,grid-row-start+1 ocupando la fila de grid.spanindica el número de columnas o filas que ocupa cada elemento.
- Ejemplo:
grid-column-end: 4; grid-column-end: span 2;
.element {
grid-column-end: 4;
grid-column-end: span 2;
}
- Unen las las columnas
grid-columno filasgrid-row - Indican la estructura general
grid-template-areasy congrid-areaposiciona la propiedad de los elementos.
.container {
display: grid;
grid-template-columns: 50px 50px 50px 50px;
grid-template-rows: auto;
grid-template-areas: "header header header header"
"main main . sidebar"
"footer footer footer footer";
}
.header {
grid-area: header;
}
.main{
grid-area: main;
}
.sidebar {
grid-area: sidebar;
}
.footer {
grid-area: footer;
}
29. align-items y justify-content (Flexbox y Grid)
Controlan la alineación y distribución de elementos dentro de un contenedor flex o grid.
- Ejemplo (Flexbox):
align-items: center; justify-content: space-between;
🎭 Pseudo-elementos y Animaciones
30. content (para pseudo-elementos)
Define el contenido de los pseudo-elementos ::before y ::after, que pueden utilizarse para insertar contenido adicional antes o después de un elemento.
- Ejemplo:
.elemento::before { content: "Texto adicional"; }