Curso 2024-25 - IES El Rincón
Proyecto mantenido por ichigar
CSS son las siglas de Cascading Style Sheets, que en español significa Hojas de Estilo en Cascada.
Cascading (Cascada):
Style (Estilo):
La importancia de CSS radica en que se encarga de dar estilo y apariencia a las páginas web. HTML organiza y estructura el contenido, CSS lo hace atractivo y funcional para los usuarios.
Entre las ventajas que aporta tenemos:
CSS permite definir los estilos de una página web de tres formas diferentes: inline (en línea), interna (en el documento HTML) y externa (en un archivo separado). Cada método tiene sus propias características, ventajas y desventajas.
En este caso, los estilos se aplican directamente dentro del atributo style
en la etiqueta del elemento HTML.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Hojas de estilo en línea</title>
</head>
<body>
<h1 style="color: blue; text-align: center;">Título en azul y centrado</h1>
<p style="font-size: 16px; color: gray;">Este párrafo tiene un estilo en línea.</p>
</body>
</html>
Se colocan en la sección <head>
del documento HTML dentro de la etiqueta <style>
. Los estilos definidos aquí aplican a toda la página.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Hojas de estilo internas</title>
<style>
body {
background-color: #f9f9f9;
}
h1 {
color: darkblue;
text-align: center;
}
p {
font-size: 18px;
color: gray;
}
</style>
</head>
<body>
<h1>Ejemplo de hoja de estilo interna</h1>
<p>Este párrafo tiene un estilo definido dentro de la etiqueta `<style>`.</p>
</body>
</html>
Los estilos se colocan en un archivo separado con extensión .css
. Este archivo se vincula al documento HTML mediante la etiqueta <link>
en la sección <head>
.
Archivo CSS (estilos.css
):
body {
background-color: #e0f7fa;
}
h1 {
color: teal;
text-align: center;
}
p {
font-size: 16px;
color: darkgray;
}
Archivo HTML:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Hojas de estilo externas</title>
<link rel="stylesheet" href="estilos.css">
</head>
<body>
<h1>Ejemplo de hoja de estilo externa</h1>
<p>Este párrafo utiliza estilos definidos en un archivo CSS externo.</p>
</body>
</html>
En proyectos más complejos, es común dividir el CSS en múltiples archivos para modularizar los estilos. Puedes enlazar múltiples archivos CSS incluyendo múltiples etiquetas .
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mi Proyecto CSS</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/layout.css">
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<h1>Hola, mundo!</h1>
</body>
</html>
Tipo | Ventajas | Desventajas |
---|---|---|
Inline | Fácil de usar para estilos rápidos o pruebas. | Dificultad para mantener y poco escalable. |
Interna | Buena para páginas pequeñas o donde los estilos no se reutilizan. | No permite reutilización entre múltiples páginas. |
Externa | Reutilizable, fácil de mantener y separa diseño de contenido. | Necesita una solicitud HTTP adicional para cargar el archivo (puede afectar la velocidad). |
Los comentarios en CSS son fragmentos de texto que los desarrolladores incluyen en el código para dar explicaciones o anotar ideas. Estos comentarios no son procesados ni ejecutados por el navegador, por lo que no afectan el diseño ni el comportamiento del sitio web.
Para escribir un comentario en CSS, se utiliza la siguiente sintaxis:
/* Este es un comentario */
Empieza con /*
y termina con */
.
El texto entre esos símbolos será ignorado por el navegador.
Una regla de declaración en CSS es una unidad básica que define cómo se debe aplicar uno o varios estilos a un elemento HTML. La sintaxis de una declaración en CSS consta de los siguientes elementos:
La sintaxis completa de una regla de declaración en CSS se ve de la siguiente manera:
/* Regla de declaración */
selector {
propiedad: valor; /* declaración 1 */
propiedad: valor; /* declaración 2 */
...
}
Por ejemplo, la siguiente regla de declaración CSS establece el color de texto en rojo y el tamaño de fuente en 16 píxeles para todos los elementos <p>
:
p {
color: red;
font-size: 16px;
}
En este caso, p es el selector, color y font-size son las propiedades, y red y 16px son los valores asignados a esas propiedades.
Como acabamos de ver, los selectores en CSS son la parte de las reglas css en la que indicamos a qué elementos HTML queremos aplicar un estilo determinado. Identifica uno o varios elementos en la página web para aplicarles un conjunto de estilos. Existen varios tipos de selectores.
Los tipos de selectores más comunes son:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Selector de tipo</title>
<style>
h1 {
color: red; /*Todos los títulos <h1> serán rojos */
}
p {
font-size: 16px; /* Todos los párrafos <p> tendrán tamaño de 16px */
}
</style>
</head>
<body>
<h1>Este es un título</h1>
<p>Este es un párrafo con tamaño de texto 16px.</p>
<p>Otro párrafo con el mismo tamaño de texto.</p>
</body>
</html>
El atributo class en HTML se utiliza para asignar una o más clases a un elemento. Estas clases permiten identificar y agrupar elementos de la página, facilitando aplicar estilos al mismo con CSS.
La sintaxis básica es:
<tag class="nombre-clase">Contenido</tag>
tag
: Es la etiqueta HTML donde se aplica la clase (como div, p, h1, etc.).class
: Es el nombre del atributo.nombre-clase
: Es el nombre que defines para la clase. Puedes asignar más de una clase separándolas por espacios.El selector de clase especifica elementos con una clase específica (definida con el atributo class
en una etiqueta HTML):
.
antes del nombre de la clase.<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Selector de clase</title>
<style>
.destacado {
background-color: yellow; /* Los elementos con la clase 'destacado' tendrán fondo amarillo */
}
</style>
</head>
<body>
<p class="destacado">Este párrafo está destacado.</p>
<p>Este párrafo no tiene clase aplicada.</p>
</body>
</html>
id
) en HTML.#
antes del nombre del ID.Este párrafo también carece de márgenes y rellenos.
### 6.6. Selector de atributo (Attribute Selector)
- Selecciona elementos según un atributo HTML específico.
- Ejemplo:
```HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Selector de atributo</title>
<style>
input[type="text"] {
border: 1px solid gray; /* Aplica a todos los campos <input> con tipo 'text' */
padding: 5px; /* Espaciado interno */
}
</style>
</head>
<body>
<form>
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre">
<br>
<label for="edad">Edad:</label>
<input type="number" id="edad" name="edad">
</form>
</body>
</html>
): Selecciona elementos dentro de otro. Los elementos se especifican separados por espacios.<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Selector descendente</title>
<style>
div p {
color: blue; /* Selecciona todos los <p> dentro de un <div> */
}
</style>
</head>
<body>
<div>
<p>Este párrafo está dentro de un div y será azul.</p>
</div>
<p>Este párrafo no está en un div, no será afectado.</p>
</body>
</html>
>
):
Selecciona solo los hijos inmediatos.<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Selector hijo directo</title>
<style>
div > p {
font-size: 18px; /* Afecta solo a los <p> que son hijos directos de <div> */
}
</style>
</head>
<body>
<div>
<p>Este párrafo es hijo directo de un div y será afectado.</p>
<section>
<p>Este párrafo no es hijo directo del div, no será afectado.</p>
</section>
</div>
</body>
</html>
La especificidad en CSS es una regla que determina qué estilo se aplica a un elemento cuando hay conflictos entre múltiples reglas que lo afectan. En otras palabras, es una forma de decidir cuál estilo tiene prioridad sobre otro.
La especificidad depende de los selectores utilizados en las reglas de CSS. Mientras más específico sea un selector, mayor será su peso, y por lo tanto, tendrá prioridad sobre los estilos menos específicos.
La especificidad se calcula como una puntación numérica, representada como tres valores separados (A-B-C), que dependen del tipo de selectores usados:
#id
)..clase
) y atributos ([atributo]
).div
, h1
, p
) .!important
tiene prioridad sobre cualquier otra regla (aunque debe usarse con cuidado).p {
color: red;
}
Especificidad: 0-0-1
.texto {
color: blue;
}
Especificidad: 0-1-0
#principal {
color: green;
}
Especificidad: 1-0-0
div#principal .texto {
color: orange;
}
Especificidad:
#principal
: 1-0-0.texto
: 0-1-0div
: 0-0-1
Total: 1-1-1<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Especificidad en CSS</title>
<style>
p {
color: red; /* Especificidad: 0-0-1 */
}
.texto {
color: blue; /* Especificidad: 0-1-0 */
}
#especial {
color: green; /* Especificidad: 1-0-0 */
}
p.texto {
color: purple; /* Especificidad: 0-1-1 */
}
</style>
</head>
<body>
<p>Este texto será rojo (regla más general).</p>
<p class="texto">Este texto será azul (clase tiene prioridad sobre tipo).</p>
<p id="especial" class="texto">Este texto será verde (ID tiene la mayor prioridad).</p>
<p id="especial" class="texto" style="color: orange;">Este texto será naranja (estilo inline tiene prioridad).</p>
</body>
</html>
!important
La declaración !important
se usa para forzar que una regla tenga prioridad sobre cualquier otra, independientemente de la especificidad.
Ejemplo:
p {
color: red !important; /* Prioridad absoluta */
}
Incluso si hay una regla con mayor especificidad o un estilo en línea, !important
prevalecerá.
Usar !important
puede dificultar el mantenimiento del código, por lo que debe emplearse con moderación.
!important
, ya que puede complicar la depuración de estilos.En CSS, una propiedad es el aspecto del estilo que deseas modificar de un elemento HTML. Como hemos visto, cada propiedad se acompaña de un valor que define el ajuste específico para ese aspecto. Las propiedades pueden afectar diversos aspectos de los elementos, como el color, tamaño, espaciado, fuentes, alineación, etc.
color
: Define el color del texto.
p {
color: blue; /* El texto será azul */
}
font-size
: Establece el tamaño de la fuente.
h1 {
font-size: 24px; /* El tamaño de la fuente será de 24 píxeles */
}
background-color
: Establece el color de fondo de un elemento.
div {
background-color: yellow; /* El fondo será amarillo */
}
margin
: Controla el espacio exterior alrededor de un elemento.
div {
margin: 20px; /* Hay un espacio de 20 píxeles alrededor del div */
}
padding
: Controla el espacio interior dentro de un elemento.
div {
padding: 10px; /* Hay un espacio de 10 píxeles dentro del div */
}
border
: Define un borde alrededor de un elemento.
div {
border: 2px solid black; /* Borde de 2 píxeles, estilo de línea continuo y color negro */
}
width
y height
: Establecen el tamaño de un elemento.
div {
width: 300px; /* El ancho será de 300 píxeles */
height: 200px; /* La altura será de 200 píxeles */
}
text-align
: Controla la alineación del texto dentro de un elemento.
h1 {
text-align: center; /* El texto será centrado */
}
font-family
: Define la fuente que se utilizará en un elemento.
p {
font-family: Arial, sans-serif; /* La fuente será Arial, o sans-serif si no está disponible */
}
display
: Controla cómo se muestra un elemento en la página.
div {
display: block; /* El elemento se comporta como un bloque */
}
font-weight
: Establece el grosor de la fuente.
p {
font-weight: bold; /* El texto será en negrita */
}
font-style
: Define el estilo de la fuente (normal, cursiva, etc.).
p {
font-style: italic; /* El texto será en cursiva */
}
line-height
: Define la altura de las líneas de texto.
p {
line-height: 1.5; /* La altura de las líneas será 1.5 veces el tamaño de la fuente */
}
text-decoration
: Añade decoraciones al texto, como subrayado, tachado, etc.
a {
text-decoration: underline; /* El enlace tendrá subrayado */
}
color
: Define el color del texto.
p {
color: #333333; /* El texto será de color gris oscuro */
}
background-image
: Define una imagen de fondo.
body {
background-image: url('fondo.jpg'); /* Se establece una imagen de fondo */
}
opacity
: Controla la opacidad de un elemento (transparencia).
div {
opacity: 0.5; /* El elemento será semi-transparente */
}
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Propiedades en CSS</title>
<style>
body {
background-color: #f0f0f0;
font-family: Arial, sans-serif;
}
h1 {
color: #003366;
text-align: center;
}
p {
font-size: 18px;
color: #555555;
line-height: 1.6;
margin: 20px;
}
.caja {
background-color: #ffffff;
border: 1px solid #ccc;
padding: 20px;
width: 300px;
height: 200px;
margin: auto;
}
</style>
</head>
<body>
<h1>Estilos con propiedades CSS</h1>
<div class="caja">
<p>Este es un párrafo dentro de una caja con estilo. El texto tiene un tamaño de 18px y un interlineado de 1.6.</p>
</div>
</body>
</html>