No puedo encontrar un selector de atributos CSS "no igual"


Respuestas:


174

Use el código como este:

div:not([foo=''])
{
    /* CSS Applied to divs having foo value Not nothing (or having a foo value assigned) */
}


6

Un problema con la respuesta aceptada es que también seleccionará elementos que no tienen ningún fooatributo. Considerar:

<div>No foo</div>
<div foo="">Empty foo</div>
<div foo="x">XXX</div>
<div foo="y">YYY</div>
<div foo="z">ZZZ</div>

div:not([foo=''])seleccionará tanto el primer como el segundo divelemento. Si solo desea divelementos que tengan un atributo foo establecido en una cadena vacía, debe usar:

div[foo]:not([foo=''])

Si desea todos los elementos con atributo fooque no es yni z, debe usar:

div[foo]:not([foo='y']):not([foo='z'])

1

Puede seleccionar el primero usando

[foo = 'x']{
  background:red;
}

VIOLÍN

Lee esto


Supongamos que hay 100 divs de los cuales el valor foo está ausente (foo = '') para 50 divs y otros 50 divs tienen un valor foo diferente, digamos foo = xoy, etc., entonces debe escribir 50 selectores si seguimos la solución anterior
Shoaib Chikate

2
Eso no es lo que quiere la operación: "Quiero apuntar solo al primero de los siguientes divs con un selector de atributos CSS"
Sunil Hari

Su respuesta es correcta con su requisito, pero no es una solución general que otras personas han dado.
Shoaib Chikate

@ShoaibChikate Tienes razón. Quiero la solución más genérica. Actualicé la pregunta para reflejar eso.
Adrian Rosca
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.