6 Stimmen

Eine gute Javascript-Framework, das CSS3-Unterstützung für IE6-8 & fehlende CSS3 in IE9 hinzufügt?

Ich bin überrascht, dass in der neuen Version des IE9 die Unterstützung für einige grundlegende CSS3-Elemente wie text-shadow und border-image fehlt.

Was ist das umfassendste JavaScript-Framework für das Hinzufügen/Emulieren von CSS3-Elementen zu IE6-9 anstelle der Verwendung einer Reihe von kleineren Frameworks wie ie-css3, CSS3PIE, Modernizr, html5shiv,... etc?

Ich bin sicher, dass es keinen einzigen Rahmen gibt, der alles abdeckt, aber ich suche nach einem, der dem am nächsten kommt.

3voto

rsp Punkte 99616

Was? Sie sind überrascht, dass der IE sich nicht an die Standards hält? Wann werden die Leute lernen...

Versuchen Sie Selektivizr . Von der Website: "selectivizr ist ein JavaScript-Dienstprogramm, das CSS3-Pseudoklassen und Attributselektoren im Internet Explorer 6-8 emuliert. Fügen Sie das Skript einfach in Ihre Seiten ein und selectivizr erledigt den Rest." Ich weiß nicht, wie es um die Unterstützung des IE9 bestellt ist, aber es sollte viel einfacher sein als beim IE6, also sollte es wohl klappen.

Sie werden dennoch einige dieser "kleineren Frameworks" benötigen, denn sie tun, was sie tun, und sie sind klein genug, so dass es keinen Sinn macht, das Rad neu zu erfinden, nur um ein großes Framework anstelle von mehreren kleineren zu haben. Es ist schwer, ein einheitliches Rahmenwerk zu schaffen, deshalb gibt es eine gewisse Vielfalt, und ich denke, das ist eine gute Sache.

Aber erwarten Sie nicht, dass Sie einfach irgendeine Bibliothek einbinden und alle Browser eine einwandfreie CSS3-Unterstützung erhalten, denn das wird nicht so bald passieren.

Wenn Sie fortgeschrittene Effekte wünschen, die in allen Browsern ab IE6 konsistent funktionieren, würde ich empfehlen, die Raphaël . Es verwendet VML auf IE und SVG auf anderen Browsern. Die API ist auch einfacher als CSS, aber das ist natürlich Geschmackssache. Aber selbst wenn es nicht um die API geht, ist das Argument, dass man abgerundete Ecken und andere Feinheiten, die auf Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ und Internet Explorer 6.0+ gleich aussehen, ohne Bilder verwenden zu müssen, kaum zu schlagen.

1voto

thirtydot Punkte 218830

Die Punkte auf Ihrer Liste erfüllen jeweils unterschiedliche Aufgaben. Ich glaube nicht, dass es sinnvoll wäre, all diese Dinge in einem einzigen Framework zu implementieren.

Nehmen Sie nur die Dinge in Ihre Liste auf, die Sie tatsächlich benötigen.

  • Sie sollten (natürlich) nur html5shiv verwenden, wenn Sie HTML5-Elemente auf Ihrer Seite verwenden:

    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
  • Modernizr hat die Funktionalität von html5shiv plus eine Menge von Merkmalen zu erkennen:

    Modernizr fügt nicht fehlende Funktionalität zu Browsern hinzu; stattdessen wird erkennt die native Verfügbarkeit von Funktionen und bietet Ihnen eine Möglichkeit, die ein hohes Maß an Kontrolle über Ihrer Website zu behalten, unabhängig von den Fähigkeiten.

    Verwenden Sie html5shiv, wenn Sie nur die HTML5-Elemente im IE gestalten möchten. Verwenden Sie Modernizr, wenn Sie verschiedene Dinge tun wollen, je nachdem, ob bestimmte Funktionen unterstützt werden:

    .my_elem {
       border: 1px inset #666;
    }
    .borderimage .my_elem {
       border: none;
       border-image: url(fancy-border.png) 5 5 5 5 round;
       -moz-border-image: url(fancy-border.png) 5 5 5 5 round;
       -webkit-border-image: url(fancy-border.png) 5 5 5 5 round;
    }
  • Die Idee hinter CSS3PIE und Modernizr ist sehr unterschiedlich.

    Am häufigsten wird CSS3PIE innerhalb von CSS verwendet:

    #myElement {
        ...
        behavior: url(PIE.htc);
    }

    Modernizr ermöglicht es Ihnen, neue, originelle Funktionen zu nutzen und gleichzeitig sicher zu sein, dass Sie jeden gewünschten Fallback für Browser anbieten können, die diese spezifischen Funktionen nicht unterstützen.

    Während CSS3PIE versucht, einen begrenzten Satz von CSS3-Eigenschaften perfekt zu emulieren, um nur in den älteren Versionen von Internet Explorer zu funktionieren, ohne zusätzliche Arbeit außer der Einbeziehung der behavior Eigenschaft bei den entsprechenden Elementen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X