Gibt es einen CSS-Selektor, um dieses Element anhand seines Attributwerts für den Inline-Stil auszuwählen?
<div style='display:block'>...</div>
etwas wie
div[cssAttribute=cssValue]
Gibt es einen CSS-Selektor, um dieses Element anhand seines Attributwerts für den Inline-Stil auszuwählen?
<div style='display:block'>...</div>
etwas wie
div[cssAttribute=cssValue]
Antworten:
Das Inline- style
Attribut unterscheidet sich nicht von anderen HTML-Attributen und kann mit einem Teilstring-Attributselektor abgeglichen werden:
div[style*="display:block"]
Genau aus diesem Grund ist es jedoch äußerst zerbrechlich . Da Attributselektoren keine regulären Ausdrücke unterstützen, können Sie nur exakte Teilzeichenfolgenübereinstimmungen des Attributwerts durchführen. Wenn Sie beispielsweise irgendwo im Attributwert ein Leerzeichen haben, wie folgt:
<div style='display: block'>...</div>
Es wird nicht übereinstimmen, bis Sie Ihren Selektor ändern, um den Platz aufzunehmen. Und dann werden keine übereinstimmenden Werte mehr angezeigt , die kein Leerzeichen enthalten, es sei denn, Sie geben alle Permutationen ad nauseum an. Wenn Sie jedoch mit einem Dokument arbeiten, in dem sich die Inline-Stildeklarationen selbst wahrscheinlich überhaupt nicht ändern, sollte es Ihnen gut gehen.
Beachten Sie auch, dass dies keinesfalls die Auswahl von Elementen anhand ihrer tatsächlich angegebenen, berechneten oder verwendeten Werte ist, wie sie im DOM wiedergegeben sind. Dies ist mit CSS-Selektoren nicht möglich.
Einschließlich ";" funktioniert besser für mich.
div[style*="display:block;"]
style
genau mit der HTML-Eigenschaft übereinstimmen muss
;
.