Curso Gratis de CSS3

Clase 3 – Selectores en CSS

En nuestra tercera clase, nos enfocaremos en los selectores y propiedades fundamentales en CSS.

Estos son los bloques de construcción básicos para diseñar y estilizar sitios web.

Aprenderemos cómo los diferentes selectores nos permiten apuntar a elementos específicos en el HTML, y cómo las propiedades nos dan control sobre cómo se visualizan estos elementos.

Selectores en CSS

Los selectores son fundamentales en CSS, ya que nos permiten elegir qué elementos del HTML queremos estilizar.

Veamos los tipos de selectores más comunes y cómo se utilizan:


Selectores de Tipo

Los selectores de tipo, también conocidos como selectores de etiqueta, son uno de los selectores más básicos en CSS.

Se utilizan para seleccionar elementos HTML basándose en su nombre de etiqueta.

Esto es particularmente útil cuando queremos aplicar un estilo consistente a todos los elementos de un mismo tipo en nuestra página web.

Cómo Funcionan los Selectores de Tipo

Los selectores de tipo apuntan directamente a las etiquetas HTML. Por ejemplo, si queremos estilizar todos los párrafos (<p>), los encabezados (<h1>, <h2>, etc.), o las listas (<ul>, <ol>), usaríamos sus respectivos selectores de tipo.

Ejemplos con Selectores de Tipo
Estilizando Párrafos
p {
    font-family: 'Arial', sans-serif;
    color: #555;
    line-height: 1.6;
}

Este código CSS seleccionará todos los elementos en el documento HTML y les aplicará una fuente Arial, un color de texto gris oscuro y un interlineado de 1.6.

Personalizando Encabezados
h1 {
    font-size: 2.5em;
    color: navy;
}

h2 {
    font-size: 2em;
    color: darkgreen;
}

Aquí, todos los encabezados tendrán un tamaño de fuente de 2.5em y un color azul marino, mientras que los serán ligeramente más pequeños y de color verde oscuro.

Estilo para Listas
ul {
    list-style-type: square;
    margin-left: 20px;
}

ol {
    list-style-type: decimal;
    margin-left: 20px;
}

En este ejemplo, todas las listas no ordenadas (<ul>) usarán marcadores cuadrados y tendrán un margen a la izquierda, mientras que las listas ordenadas (<ol>) usarán números y también tendrán un margen a la izquierda.

Formato para Enlaces
a {
    color: blue;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

Con este estilo, todos los enlaces (<a>) en la página tendrán un color azul y no tendrán subrayado, a menos que el usuario pase el cursor sobre ellos, en cuyo caso aparecerá un subrayado.

Importancia de los Selectores de Tipo

Los selectores de tipo son fundamentales para establecer un estilo base en un sitio web.

Permiten un control rápido y global de elementos comunes, asegurando consistencia y eficiencia en el diseño.

Sin embargo, es importante usarlos con cuidado, ya que afectan a todos los elementos del tipo especificado en la página.

Para estilos más específicos, es recomendable combinarlos con otros selectores, como los de clase o ID.


Selectores de Clase

Los selectores de clase en CSS son increíblemente versátiles y fundamentales para un diseño web eficiente.

A diferencia de los selectores de tipo, que seleccionan elementos basándose en su etiqueta HTML, los selectores de clase seleccionan elementos basándose en el atributo class que se les ha asignado.

Esto permite aplicar estilos específicos a grupos de elementos sin importar su tipo de etiqueta.

Cómo Funcionan los Selectores de Clase

Para usar un selector de clase, primero debemos asignar una clase a los elementos HTML a los que queremos aplicar estilos específicos.

Esto se hace añadiendo el atributo class a la etiqueta HTML. Luego, en el CSS, utilizamos un punto seguido del nombre de la clase para definir los estilos para esa clase.

Ejemplos con Selectores de Clase
Estilizando Botones
<button class="boton-principal">Aceptar</button>
<button class="boton-secundario">Cancelar</button>
.boton-principal {
    background-color: green;
    color: white;
    padding: 10px 15px;
    border: none;
    border-radius: 5px;
}

.boton-secundario {
    background-color: grey;
    color: black;
    padding: 10px 15px;
    border: none;
    border-radius: 5px;
}

Aquí, los botones con la clase boton-principal tendrán un fondo verde con texto blanco, mientras que los boton-secundario serán grises con texto negro.

Clases para Texto y Títulos
.texto-destacado {
    font-weight: bold;
    color: red;
}

.titulo-seccion {
    font-size: 24px;
    color: navy;
}

Este código asignará un estilo de texto en negrita y color rojo a cualquier elemento con la clase texto-destacado y un tamaño de fuente más grande y color azul marino a los que tengan titulo-seccion.

Estilos para Contenedores y Secciones
.contenedor {
    width: 80%;
    margin: auto;
    padding: 20px;
}

.seccion-destacada {
    background-color: lightblue;
    padding: 15px;
    border-radius: 10px;
}

Aquí, .contenedor define un ancho, márgenes y relleno para contenedores genéricos, mientras que .seccion-destacada agrega un fondo, relleno y bordes redondeados a las secciones destacadas.

Ventajas de los Selectores de Clase

Los selectores de clase ofrecen varias ventajas:

Reutilización

Los estilos definidos para una clase pueden reutilizarse en múltiples lugares a lo largo de la página web o incluso en todo el sitio web.

Especificidad

Permiten aplicar estilos específicos a grupos de elementos sin afectar a otros elementos.

Combinación con Otros Selectores

Se pueden combinar con otros selectores para aumentar la especificidad y el control sobre los estilos.

Los selectores de clase son una herramienta esencial en CSS para aplicar estilos a grupos de elementos. Proporcionan flexibilidad, control y una manera eficiente de mantener un diseño consistente en todo el sitio web.


Selectores de ID

Los selectores de ID en CSS son una herramienta poderosa para aplicar estilos a elementos específicos dentro de una página HTML.

A diferencia de los selectores de clase, que pueden aplicarse a múltiples elementos, un selector de ID es único y solo se debe aplicar a un solo elemento en el documento.

Cómo Funcionan los Selectores de ID

En HTML, el atributo id se utiliza para identificar un elemento de manera única.

En CSS, para seleccionar un elemento con un ID específico, usamos un símbolo de almohadilla (#) seguido del valor del ID.

Dado que el ID debe ser único dentro de la página, el estilo aplicado a través de un selector de ID afectará solo al elemento específico que lo posee.

Ejemplos con Selectores de ID
Estilizando un Encabezado Específico
<h1 id="titulo-principal">Bienvenidos a Mi Sitio Web</h1>
#titulo-principal {
    font-size: 36px;
    color: darkblue;
    text-align: center;
}

En este ejemplo, el estilo se aplicará únicamente al encabezado <h1> que tiene el ID titulo-principal, haciéndolo más grande, de color azul oscuro y centrado.

Personalizando un Contenedor Único
<div id="caja-informativa">Información importante aquí</div>
#caja-informativa {
    border: 2px solid red;
    padding: 15px;
    background-color: lightyellow;
}

Aquí, el div con el ID caja-informativa tendrá un borde rojo, un relleno y un fondo amarillo claro. Estos estilos no se aplicarán a ningún otro elemento.

Aplicando Estilos a un Formulario Específico
<form id="formulario-contacto">
    <!-- Elementos del formulario aquí -->
</form>
#formulario-contacto {
    background-color: lightgrey;
    padding: 20px;
    width: 300px;
}

Este estilo se aplicará solo al formulario con el ID formulario-contacto, dándole un fondo gris claro, un relleno y un ancho específico.

Consideraciones al Usar Selectores de ID

Unicidad

Cada ID debe ser único en la página. No se debe usar el mismo ID en más de un elemento.

Especificidad

Los selectores de ID tienen una alta especificidad en comparación con otros selectores, como los de tipo y clase. Esto significa que pueden sobrescribir fácilmente otros estilos aplicados a un elemento.

Uso con Moderación

Debido a su alta especificidad, se recomienda usar selectores de ID con moderación y solo cuando sea necesario identificar un elemento de manera única.

Los selectores de ID son una herramienta potente en CSS para estilizar elementos específicos de una página web. Aunque son muy útiles, es importante usarlos sabiamente y recordar su singularidad y alta especificidad.


Selectores de Atributo

Los selectores de atributo en CSS son una herramienta sofisticada que nos permite aplicar estilos a elementos HTML basándonos en sus atributos y valores de atributos.

Estos selectores son especialmente útiles cuando queremos estilizar elementos que comparten un atributo común, pero no necesariamente el mismo tipo de etiqueta o clase.

Cómo Funcionan los Selectores de Atributo

Los selectores de atributo se centran en los atributos de las etiquetas HTML, como type, href, title, entre otros.

En CSS, se utilizan corchetes [] para definir un selector de atributo. Dentro de los corchetes, se especifica el nombre del atributo y, opcionalmente, su valor.

Ejemplos con Selectores de Atributo
Estilizando Enlaces Externos
<a href="http://externo.com" title="Enlace externo">Visitar Sitio Externo</a>
a[href^="http://"] {
    color: red;
    text-decoration: underline;
}

Este selector aplica estilos a todos los enlaces (<a>) cuyo atributo href comienza con “http://”, marcándolos de color rojo y subrayándolos.

Personalización de Campos de Formulario
<input type="text" placeholder="Nombre">
<input type="password" placeholder="Contraseña">
input[type="text"] {
    border: 1px solid blue;
}

input[type="password"] {
    border: 1px solid green;
}

Aquí, los campos de texto tendrán un borde azul, mientras que los campos de contraseña tendrán un borde verde.

Resaltando Elementos con un Título Específico
<div title="Importante">Información Importante</div>
div[title="Importante"] {
    background-color: yellow;
}

Este estilo se aplicará a cualquier div que tenga un atributo title con el valor “Importante”, dándole un fondo amarillo.

Variaciones de los Selectores de Atributo

Los selectores de atributo en CSS ofrecen varias formas de coincidencia:

  • [attr]: Selecciona elementos con el atributo attr, independientemente de su valor.
  • [attr=value]: Selecciona elementos con el atributo attr y cuyo valor es exactamente value.
  • [attr~=value]: Selecciona elementos con el atributo attr conteniendo value dentro de una lista de palabras separadas por espacios.
  • [attr|=value]: Selecciona elementos con el atributo attr igual a value o que comience con value seguido de un guion.
  • [attr^=value]: Selecciona elementos con el atributo attr cuyo valor comienza con value.
  • [attr$=value]: Selecciona elementos con el atributo attr cuyo valor termina con value.
  • [attr*=value]: Selecciona elementos con el atributo attr cuyo valor contiene value en cualquier parte.

Los selectores de atributo son una herramienta poderosa y flexible en CSS, ofreciendo un control granular sobre cómo se aplican los estilos a los elementos basados en sus atributos y valores.


Pseudo-clases y Pseudo-elementos

Las pseudo-clases y pseudo-elementos son conceptos avanzados en CSS que permiten aplicar estilos a estados específicos de un elemento o a partes específicas de un elemento, respectivamente.

Estos selectores añaden una capa de dinamismo y precisión en el diseño de páginas web.

Pseudo-clases en CSS

Las pseudo-clases se utilizan para definir un estado especial de un elemento. Por ejemplo, un enlace que el usuario aún no ha visitado, o un input cuando está en foco.

Se denotan con dos puntos : seguidos de su nombre.

Ejemplos de Pseudo-clases
:hover

Aplica estilos cuando el usuario pasa el cursor sobre un elemento:

a:hover {
    color: green;
    text-decoration: underline;
}

Este estilo cambia el color de los enlaces a verde y los subraya cuando el usuario pasa el cursor sobre ellos.

:focus

Utilizado para estilizar un elemento de formulario cuando está en foco:

input:focus {
    border: 2px solid blue;
    background-color: lightyellow;
}

Los campos de entrada resaltarán con un borde azul y un fondo amarillo claro cuando estén activos.

:nth-child()

Permite estilizar elementos basados en su posición dentro de un contenedor:

li:nth-child(odd) {
    background-color: lightgrey;
}

En una lista, esto aplicará un fondo gris claro a todos los elementos impares.

Los pseudo-elementos permiten estilizar partes específicas de un elemento. Se denotan con dos puntos :: seguidos de su nombre.

Ejemplos de Pseudo-elementos
::before y ::after

Crean pseudo-elementos antes o después del contenido de un elemento:

p::before {
    content: "Inicio: ";
    font-weight: bold;
}

Esto agrega el texto “Inicio: ” antes del contenido de cada párrafo, en negrita.

::first-line y ::first-letter

Aplican estilos a la primera línea o primera letra de un bloque de texto:

p::first-letter {
    font-size: 200%;
    color: red;
}

La primera letra de cada párrafo será 200% más grande y roja.

Consideraciones al Usar Pseudo-clases y Pseudo-elementos

Compatibilidad con Navegadores

Algunas pseudo-clases y pseudo-elementos pueden no ser compatibles con todos los navegadores, por lo que es importante probarlos en diferentes entornos.

Especificidad

Al igual que con otros selectores, la especificidad es un factor importante. Puede ser necesario combinar pseudo-clases y pseudo-elementos con otros selectores para lograr el efecto deseado.

Resumen

Los Selectores, pseudo-clases y pseudo-elementos son herramientas avanzadas en CSS que ofrecen un control detallado y creativo sobre la presentación de los elementos.

Permiten a los diseñadores web añadir efectos dinámicos y estilizar aspectos específicos de los elementos de una manera que no sería posible con los selectores regulares.