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.