Selector de CSS por atributo de estilo en línea

Resuelto AgelessEssence asked hace 12 años • 4 respuestas

¿Existe un selector de CSS para seleccionar este elemento por su valor de atributo de estilo en línea?

<div style='display:block'>...</div>

algo como

div[cssAttribute=cssValue]
AgelessEssence avatar Dec 08 '11 13:12 AgelessEssence
Aceptado

El styleatributo en línea no es diferente de cualquier otro atributo HTML y puede combinarse con un selector de atributos de subcadena:

div[style*="display:block"]

Precisamente por esta razón es extremadamente frágil . Como los selectores de atributos no admiten expresiones regulares, solo puede realizar coincidencias exactas de subcadenas del valor del atributo. Por ejemplo, si tiene un espacio en algún lugar del valor del atributo, como este:

<div style='display: block'>...</div>

No coincidirá hasta que cambie su selector para acomodar el espacio. Y luego dejará de hacer coincidir valores que no contengan el espacio, a menos que incluya todas las permutaciones, hasta la saciedad. Pero si está trabajando con un documento en el que es poco probable que las declaraciones de estilo en línea cambien en absoluto, debería estar bien.

Tenga en cuenta también que esto no es en absoluto seleccionar elementos por sus valores reales especificados, calculados o utilizados como se refleja en el DOM. Eso no es posible con los selectores CSS.

BoltClock avatar Dec 08 '2011 06:12 BoltClock

Incluido ";" funciona mejor para mí.

div[style*="display:block;"] 
Bertrand avatar Jan 12 '2019 07:01 Bertrand

Fíjate siempre cómo está escrito el atributo en HTML (puedes comprobarlo en la pestaña Elementos del navegador). Tienes que usar exactamente el mismo valor. En mi caso: style="left: 100%;". Y ni style="left:100%"nada por el estilo.

Eugene Ihnatsyeu avatar Mar 04 '2021 09:03 Eugene Ihnatsyeu