Selector universal
Se utiliza para seleccionar todos los elementos de la página.
1 2 3 4 |
* { margin: 0; padding: 0; } |
Selector de tipo o etiqueta
Selecciona todos los elementos de la página cuya etiqueta HTML coincide con el valor del selector
1 2 3 4 5 6 7 8 9 |
h1 { color: red; } h2 { color: blue; } p { color: black; } |
CSS permite agrupar todas las reglas individuales en una sola regla con un selector múltiple. Para ello, se incluyen todos los selectores separados por una coma (,)
1 2 3 4 5 |
h1, h2, h3 { color: #8A8E27; font-weight: normal; font-family: Arial, Helvetica, sans-serif; } |
Es habitual agrupar las propiedades comunes de varios elementos en una única regla CSS y posteriormente definir las propiedades específicas de esos mismos elementos.
1 2 3 4 5 6 7 8 |
h1, h2, h3 { color: #8A8E27; font-weight: normal; font-family: Arial, Helvetica, sans-serif; } h1 { font-size: 2em; } h2 { font-size: 1.5em; } h3 { font-size: 1.2em; } |
Selector descendente
Selecciona los elementos que se encuentran dentro de otros elementos. Un elemento es descendiente de otro cuando se encuentra entre las etiquetas de apertura y de cierre del otro elemento.
Todos los elementos <span> de la página que se encuentren dentro de un elemento <p>:
1 |
p span { color: red; } |
Cuidado para no confudirse
1 2 3 4 5 |
/* El estilo se aplica a todos los elementos "p", "a", "span" y "em" */ p, a, span, em { text-decoration: underline; } /* El estilo se aplica solo a los elementos "em" que se encuentran dentro de "p a span" */ p a span em { text-decoration: underline; } |
Si se emplea el selector descendente combinado con el selector universal, se puede restringir el alcance de un selector descendente.
En el siguiente ejemplo solamente el segundo enlace se muestra de color rojo:
1 2 3 4 |
p * a { color: red; } <p><a href="#">Enlace</a></p> <p><span><a href="#">Enlace</a></span></p> |
El selector p * a se traduce como todos los elementos de tipo <a> que se encuentren dentro de cualquier elemento que, a su vez, se encuentre dentro de un elemento de tipo <p>. Como el primer elemento <a> se encuentra directamente bajo un elemento <p>, no se cumple la condición del selector p * a.
Selector de clase
Una de las soluciones más sencillas para aplicar estilos a un solo elemento de la página consiste en utilizar el atributo class de HTML sobre ese elemento para indicar directamente la regla CSS que se le debe aplicar:
1 2 3 4 5 |
<body> <p class="destacado">Lorem ipsum dolor sit amet...</p> <p>Nunc sed lacus et est adipiscing accumsan...</p> <p>Class aptent taciti sociosqu ad litora...</p> </body> |
Para que el navegador no confunda este selector con los otros tipos de selectores, se prefija el valor del atributo class con un punto (.) tal y como muestra el siguiente ejemplo:
1 |
.destacado { color: red; } |
Combinando selectores
1 2 3 4 5 6 7 8 |
/* Todos los elementos de tipo "p" con atributo class="aviso" */ p.aviso { ... } /* Todos los elementos con atributo class="aviso" que estén dentro de cualquier elemento de tipo "p" */ p .aviso { ... } /* Todos los elementos "p" de la página y todos los elementos con atributo class="aviso" de la página */ p, .aviso { ... } |
Es posible aplicar los estilos de varias clases CSS sobre un mismo elemento. La sintaxis es similar, pero los diferentes valores del atributo class se separan con espacios en blanco.
1 |
<p class="especial destacado error">Párrafo de texto...</p> |
Diga de que color es el texto del siguiente párrafo
1 2 3 4 5 6 |
.error { color: red; } .error.destacado { color: blue; } .destacado { font-size: 15px; } .especial { font-weight: bold; } <p class="especial destacado error">Párrafo de texto...</p> |
El color de la letra del texto es azul. El motivo es que se ha utilizado un selector de clase múltiple .error.destacado, que se interpreta como “aquellos elementos de la página que dispongan de un atributo class con al menos los valores error y destacado”.
Selectores de ID
El selector de ID permite seleccionar un elemento de la página a través del valor de su atributo id.
La sintaxis de los selectores de ID es muy parecida a la de los selectores de clase, salvo que se utiliza el símbolo de numeral (#) en vez del punto (.) como prefijo del nombre de la regla CSS:
1 2 3 4 5 |
#destacado { color: red; } <p>Primer párrafo</p> <p id="destacado">Segundo párrafo</p> <p>Tercer párrafo</p> |
Combinando selectores
1 2 3 4 5 6 7 8 |
/* Todos los elementos de tipo "p" con atributo id="aviso" */ p#aviso { ... } /* Todos los elementos con atributo id="aviso" que estén dentro de cualquier elemento de tipo "p" */ p #aviso { ... } /* Todos los elementos "p" de la página y todos los elementos con atributo id="aviso" de la página */ p, #aviso { ... } |
Selecciona aquellos elementos con un class=”especial” que se encuentren dentro de cualquier elemento con un class=”aviso”
1 |
.aviso .especial { ... } |
Selecciona aquellos elementos de tipo con un atributo class=”especial” que estén dentro de cualquier elemento de tipo
1 |
div.aviso span.especial { ... } |
Enlace con un atributo id igual a inicio que se encuentra dentro de un elemento de tipo <li> con un atributo class igual a destacado, que forma parte de una lista <ul> con un atributo id igual a menuPrincipal.
1 |
ul#menuPrincipal li.destacado a#inicio { ... } |
Selector de hijos
Se trata de un selector similar al selector descendente, pero muy diferente en su funcionamiento.
Se utiliza para seleccionar un elemento que es hijo directo de otro elemento y se indica mediante el “signo de mayor que” (>)
1 2 3 4 |
p > span { color: blue; } <p><span>Texto1</span></p> <p><a href="#"><span>Texto2</span></a></p> |
Selector adyacente
El selector adyacente utiliza el signo + y su sintaxis es:
1 |
elemento1 + elemento2 { ... } |
La explicación del comportamiento de este selector no es sencilla, ya que selecciona todos los elementos de tipo elemento2 que cumplan las dos siguientes condiciones:
- elemento1 y elemento2 deben ser hermanos, por lo que su elemento padre debe ser el mismo.
- elemento2 debe aparecer inmediatamente después de elemento1 en el código HTML de la página
Los estilos del selector h1 + h2 se aplican al primer elemento <h2> de la página, pero no al segundo <h2>
1 2 3 4 5 6 7 8 9 |
h1 + h2 { color: red } <body> <h1>Titulo1</h1> <h2>Subtítulo</h2> ... <h2>Otro subtítulo</h2> ... </body> |
Selecciona todos los párrafos de un elemento salvo el primer párrafo.
1 |
p + p { text-indent: 1.5em; } |
Selector de atributos
Permiten seleccionar elementos HTML en función de sus atributos y/o valores de esos atributos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/* Se muestran de color azul todos los enlaces que tengan un atributo "class", independientemente de su valor */ a[class] { color: blue; } /* Se muestran de color azul todos los enlaces que tengan un atributo "class" con el valor "externo" */ a[class="externo"] { color: blue; } /* Se muestran de color azul todos los enlaces que apunten al sitio "http://www.ejemplo.com" */ a[href="http://www.ejemplo.com"] { color: blue; } /* Se muestran de color azul todos los enlaces que tengan un atributo "class" en el que al menos uno de sus valores sea "externo" */ a[class ~= "externo"] { color: blue; } /* Selecciona todos los elementos de la página cuyo atributo "lang" sea igual a "en", es decir, todos los elementos en inglés */ *[lang=en] { ... } /* Selecciona todos los elementos de la página cuyo atributo "lang" empiece por "es", es decir, "es", "es-ES", "es-AR", etc. */ *[lang |= "es"] { color : red } |
¿Te gustó este artículo?
Si te gustó este artículo, te ha servido o aprendiste algo nuevo; compártelo en tus redes sociales o invítame un cafe.