Hoja de notas de duduromeroa.com
Revisado en CSS references
., #, *, [atributo="valor"]
:hover, :first-child
::first-letter, ::first-line,
, etc. Apuntando a clases e identificadores
Se apunta (mediante punto .) al nombre identificador de una clase mediante un punto entre el elemento y el nombre de su clase.
Ejemplo 1:
Elemento con clase
Elemento no seleccionado
// EN HTML
// Elemento se mostrará en azul
<p class="clase00"> Elemento con clase </p>
// Elemento no alterado
<p> Elemento no seleccionado </p>
// ----
// EN CSS
p.clase00{ color: blue; }
Apuntando a atributos de elementos HTML
[attribute...]
Ejemplo 2: seleccionando elemento según atributo y su valor.
Elemento atributo data
Elemento no seleccionado
// EN CSS
[data-titulo="primerTitulo"]{color: blue;}
// EN HTML
// Solo este elemento será alterado
<p data-titulo="primerTitulo"> Elemento atributo data </p>
// Este no
<p> Elemento no seleccionado </p>
Ejemplo 3: Seleccionando elemento según cómo inicia su VALOR de atributo:
gato-perro
perro-gato
Ejemplo 4: Seleccionando elemento según cómo FINALIZA su VALOR de atributo:
Uno
Dos
Ejemplo 5: Seleccionando elemento que contenga UN VALOR ESPECÍFICO de atributo:
Caja roja
Caja verde
No será alterado
Ejemplo 6: Seleccionando (mediane un espacio) y según descendencia
Hijo de contenedorA
Hijo de contenedorA
Hijo de contenedorA
Este elemento p no será alterado
Ni este
Símbolos combinadores
Toma en cuenta la relación (o combinación) entre selectores. Tomar en cuenta los siguientes conceptos:
Apuntando (con espacio vacio) a todos los descendientes de un mismo padre con
Ejemplo 7: Seleccionando (con un espacio vacio) toda la descendencia de un mismo elemento padre. Pero omitiendo la descendencia de otro padre.
Hijo de contenedorA
Hijo de contenedorA
...Misma descendencia
....Misma descendencia
Hijo con otro padre
Hijo con otro padre
Apuntando (con signo >) a todos los descendientes pero de una primera generación de un mismo padre. Una segunda generación no será tomada en cuenta.
Ejemplo 8: Seleccionando (con signo >) toda la descendencia DIRECTA (o lo que es lo mismo decir, la PRIMERA descendencia) de un mismo elemento padre.
Mediante el selector (con signo >) solo será tomada en cuenta la primera descendencia. La segunda descendencia (o con un segundo familiar-padre) no será tomada en cuenta.
Hijo con otro padre
Hijo con otro padre
hola
hola
// EN HTML
// Primera descendencia, hijos directos, alterados
<div class="padre01">
<p> Hijo directo </p>
<p> Hijo directo </p>
// Segunda descendencia, NO se altera
<div class="padre02">
<p> Otra descendencia </p>
<p> Otra descendencia </p>
</div>
</div>
// EN CSS
.padre01 > p {color: violet;}
Apuntando (con signo +) solo al primer elemento ubicado después de un primer elemento.
Ejemplo 9:
Hijo de padre03
Hijo de padre03
Primer elemento SEGUIDO PERO AFUERA de padre03
Segundo elemento SEGUIDO PERO AFUERA de padre03
Primer hijo dentro de otro padre04
Segundo hijo dentro de otro padre04
Segundo párrafo fuera de padre03
Apuntando (con signo ~) a todos los elementos justo después de un elemento anterior
Incluso si existe un elemento en medio de los elementos apuntados, entonces esos elementos apuntados serán alterados por la regla CSS 'elemento ~ el-siguiente-elemento'
.
// HTML
<p>Parrafo 1</p>
<p>Un elemento p en medio</p>
// Pintado de rojo
<ul class="lista00"> <li>Item A </li> </ul>
// NO PINTADO de rojo
<p> Este elemento no esta apuntado </p>
// Pintado de rojo
<ul class="lista00"> <li>Item A </li> </ul>
// CSS
/* Apunta al elemento UL después de un anterior elemento P,
incluso aunque existan otros elementos
en medio de esos elementos apuntados */
p ~ .lista00 { color: red;}
ATENCIÓN: En este ejemplo he debido indicar una clase exclusiva (la clase class="lista00
) para el elemento <ul>
de ejemplo.
¿Por qué? De no hacerlo, la regla CSS p ~ .lista00{color: red;}
pintará todos los elementos <ul>
de esta página o (PEOR) del resto de páginas HTML vinculadas a esta regla.
Ejemplo 10:
Parrafo 1
Un elemento p en medio
Este elemento <p>
no se pinta pues la regla CSS de abajo no esta apuntando a un elemento <p>
.
Pseudo clases y pseudo elementos
Son pseudo clases porque son una forma alterna de identificar elementos HTML. Es decir, se apunta a un elemento (con pseudo clase) dándole un nuevo estado (o un nuevo tipo de estado, además del que ya tiene). Por ejemplo:
Son pseudo elementos cuando se define un elemento como parte de otro. Por ejemplo: