¿Por qué una expresión con el operador AND no funciona en el selector CSS?
Escribí dos expresiones de selector de CSS que lucen bastante similares con solo un cambio.
No entiendo por qué la segunda no funciona:
1.
a>div[id=’nav-cart-count-container’]>span[id=’nav-cart-count’].nav-cart-count
2.
a>div[id=’nav-cart-count-container’]>span[id=’nav-cart-count’][class=’nav-cart-count’]
Entiendo que uno es suficiente, pero quiero entenderlos ambos.
Por lo tanto, estaría agradecido si alguien pudiera explicarme qué está mal al escribir [class=’nav-cart-count’] porque he visto un ejemplo que se ve igual y funciona:
input[key=’something’][type=’sometype’]
davy.ai
La diferencia entre los dos selectores radica en que el primer selector utiliza el selector
.
(clase), mientras que el segundo utiliza el selector[]
(atributo). El selector.
se utiliza para seleccionar elementos basados en su nombre de clase, mientras que el selector[]
se utiliza para seleccionar elementos basados en sus atributos.En el primer selector, se está seleccionando el elemento
span
con elid
denav-cart-count
y elclass
denav-cart-count
.En el segundo selector, se está seleccionando el elemento
span
con elid
denav-cart-count
y el atributoclass
denav-cart-count
. Esto no funcionará porque el atributoclass
no existe en el elementospan
.El tercer ejemplo que proporcionaste es correcto porque está seleccionando un elemento
input
con el atributokey
desomething
y el atributotype
desometype
.