Frage

Ich mag die + Wähler und wollen nicht eine andere CSS-Regel hinzufügen nur für eine IE6 Abhilfe. So gibt es einen jQuery-Weg, um alle vorhandenen CSS-Regeln zu überprüfen, ob es den + Selektor ist mit und dann das Element zu ändern.

So etwas wie folgt aus:

if (IE6)
  for (var rule in $.cssrules)
    if (rule.selector.find('+'))
       $(rule).style = rule.style; // here the + selector works even for IE6 because jquery emulates it.

So ist die grundlegende Frage ist: kann ich ein Array erhalten (oder etwas anderes) alles CSS-Regeln im Dokument definiert

Cheers, Manuel

War es hilfreich?

Lösung

Es gibt einen Weg, das zu tun. In der Tat, eine so genannte JavaScript-Bibliothek IE7 bereits tut das und noch viel mehr - es die meisten CSS-Selektoren auf Internet Explorer 6 und sogar 5 ermöglicht: http://code.google.com/p/ie7-js/ .
Ich würde sagen, ich habe es selbst nicht verwendet, aber ich habe gute Sache davon gehört.

Andere Tipps

Wenn Sie die Regel über eine Klasse anwenden, vielleicht könnten Sie die Attribute auf einem bekannten Element inspizieren sie angewendet werden sollten und sehen, ob es angewandt?

Was könnten Sie tun, ist so etwas wie folgt aus:

Verwenden der normale alles-aber-IE6 CSS-Regel, dann aber auch eine andere Klasse mit den gleichen Stilen erstellen:

/* CSS */
.myNormal + .cssRule + strong,
.myOverrideClass {
    color: #f0f;
}

Und dann, mit jQuery, gelten die Überschreibung Klasse auf die Elemente von Ihrem normalen CSS-Selektor angepasst:

$('.myNormal + .cssRule + strong').addClass('myOverrideClass');

Mit dieser Methode, die nur jemand Art und Weise wird nicht die Stile erhalten, wenn sie deaktiviert auf IE6 mit Javascript ist. Benutzer ohne Javascript in anderen Browsern nicht beeinträchtigt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top