Natürlich verfügt nicht jedes HTML5- oder CSS3-Feature über eine weit verbreitete Browser-Unterstützung. Um dies zu kompensieren, haben unternehmungslustige Entwickler eine Reihe von Tools entwickelt, mit denen Sie diese Technologien heute verwenden können, ohne Benutzer zu verlassen, die noch in der Steinzeit leben.
Die gute Nachricht ist, dass Sie mit Ausnahme des Internet Explorers mehr semantische Markierungen erstellen können, indem Sie die neuen HTML5-Elemente verwenden - sogar in Browsern, die sie nicht offiziell unterstützen. Denken Sie daran, den richtigen Anzeigemodus einzustellen: Block
. Das folgende Snippet sollte auf alle erforderlichen Elemente verweisen:
Artikel, beiseite, Details, figcaption, figur, fußzeile, kopfzeile, hgruppe, menü, nav, abschnitt anzeige: block;
Bei der Implementierung vieler Lösungen in diesem Lernprogramm ist JavaScript für bestimmte Internet Explorer-Versionen erforderlich. Hier ein kurzer Überblick: Der Testausdruck ist in eckigen Klammern angegeben. Wir können nach bestimmten Versionen oder Versionen über oder unter einer angegebenen Version suchen. Es ist
und gt
bedeuten niedriger als und größer als, jeweils während lte
und gte
bedeuten niedriger als oder gleich und größer als oder gleich wie.
Hier einige schnelle Beispiele:
[wenn IE 6]
Überprüft, ob der Browser Internet Explorer 6 ist.
[wenn gt IE 6]
Sucht nach einer Version von Internet Explorer größer als 6.
In allen IEs, mit Ausnahme der neuesten Version (IE9), können Sie keine Stile auf Elemente anwenden, die der Browser nicht erkennt. Ihre schlauen, neuen HTML5-Elemente in all ihrer Pracht sind den CSS-Regeln in dieser Umgebung nicht zugänglich. Dies ist, wo Remy Sharp html5shiv (manchmal als html5 Shim genannt) zur Rettung kommt. Fügen Sie es einfach in Ihre Seite ein Abschnitt und Sie können die neuen HTML5-Elemente perfekt gestalten.
Beachten Sie, dass die bedingten Kommentare nur den html5shiv-Code laden, sofern die Version von Internet Explorer niedriger als 9 ist. Andere Browser wie Firefox und Chrome ignorieren dieses Tag ebenfalls und führen das Skript nicht aus. Dadurch wird Bandbreite gespart.
html5 shiv basiert auf einer einfachen Problemumgehung: Es weist den IE an, die Elemente mit JavaScript zu erstellen (sie müssen nicht einmal in das DOM eingefügt werden)..
document.createElement ('header');
Zu diesem Zeitpunkt können sie normal gestaltet werden. In den neueren Versionen ist außerdem IE Print Protector integriert, der einen Fehler behebt, bei dem die HTML5-Elemente beim Drucken der Seite verschwinden.
Mit Modernizr können Sie in Browsern, die bestimmte HTML5- und CSS3-Funktionen nicht unterstützen, ein "Backup" -Stil bereitstellen.
Modernizr ist vielleicht das bekannteste dieser Werkzeuge, aber es wird auch ziemlich missverstanden (der Name hilft nicht). Atmen Sie tief ein: Entgegen dem weit verbreiteten Missverständnis tut Modernizr nicht Aktivieren Sie HTML5- und CSS3-Funktionen in Browsern, die sie nicht unterstützen (obwohl dies der Fall ist.) tut Include html5shiv, damit Sie HTML5-Elemente im IE verwenden können < 9).
Abgesehen von der html5shiv-Funktionalität führt Modernizr nur eine Sache aus: Sie führt beim Laden eine Reihe von Feature-Erkennungstests durch und fügt die Ergebnisse dann in die
Klasse
Attribut desEtikett.
Der Hauptzweck von Modernizr besteht darin, Ihnen das "Backup" -Stil in Browsern bieten zu können, die bestimmte HTML5- und CSS3-Funktionen nicht unterstützen. Dies unterscheidet sich etwas von der herkömmlichen anmutigen Verschlechterung, bei der wir in allen Browsern das gleiche CSS-Styling verwenden und es dann so gestalten, dass das Ergebnis immer noch akzeptabel ist, wenn bestimmte Funktionen fehlen.
Nun ein Beispiel für die Funktionsweise von Modernizr: Wenn ein Browser dies unterstützt Grenzradius
und das Spaltenanzahl
Eigenschaft werden die folgenden Klassen angewendet:
Wenn die gleichen Eigenschaften jedoch nicht unterstützt werden - beispielsweise im IE7 -, werden Sie Folgendes finden:
An dieser Stelle können Sie diese Klassen dann verwenden, um in Browsern mit unterschiedlichen Funktionen ein eindeutiges Styling anzuwenden. Wenn Sie beispielsweise einen Absatz auf einen Absatz anwenden möchten, können Sie abhängig davon, ob CSS-Spalten unterstützt werden, Folgendes tun:
.csscolumns p / * Stil, wenn Spalten verfügbar sind * / .no-csscolumns p / * Stil, wenn Spalten nicht verfügbar sind * /
Wenn ein Browser keine Spalten unterstützt, wird die .Csspalten
Klasse wird nicht im Hauptteil vorhanden sein, und der Browser hat niemals die Möglichkeit, die Regel anzuwenden, die ihn verwendet.
Einige mögen einwenden, dass dies uns zu den alten Zeiten des Erstellens einer anderen Website für jeden Browser zurückführt. Es ist wahr, dass nichts Sie daran hindert, so viele Stildeklarationen zu schreiben, die erweiterte CSS3-Funktionen verwenden, dass Ihr Stylesheet praktisch leer wird, wenn diese Regeln nicht angewendet werden können.
Wenn Sie Modernizr auf sinnvolle Weise einsetzen möchten, müssen Sie sich auf Ihr Designtalent verlassen, um alternative Stile zu entwickeln, die das Design nicht beschädigen und den Rest des Stylesheets nicht wegwerfen. Sie können beispielsweise versuchen, Schlagschatten auf Buchstaben, wenn diese nicht verfügbar sind, durch eine fette Schrift oder Transparenz mit einer anderen Farbe zu ersetzen.
Um Modernizr zu verwenden, schließen Sie die minimierte Datei ein und wenden Sie eine Klasse von an no-js
zum Element. Mit dieser letzten Vorsichtsmaßnahme können Sie Stile angeben, wenn JavaScript vollständig deaktiviert ist. In diesen Fällen kann Modernizr Ihnen natürlich nicht helfen. Wenn JavaScript aktiviert ist, tritt Modernizr ein und ersetzt das
no-js
mit den Ergebnissen seiner Merkmalserkennungsoperationen.
…
Wenn Sie bereit sind zu akzeptieren, dass nicht alle Websites in allen Browsern identisch angezeigt werden müssen, werden Sie feststellen, dass Modernizr ein unverzichtbares Werkzeug in Ihrem Webentwickler ist!
Der Designer Andy Clarke hat eine elegante Lösung entwickelt, um die mangelnde Einhaltung von Standards durch IE6 zu beheben. Dieses Stylesheet mit dem Namen "Universal IE6" konzentriert sich ausschließlich auf Typografie. Der Schlüssel ist, bedingte Kommentare zu verwenden, um alle anderen Stylesheets im IE 6 auszublenden.
/ * Stylesheets für andere Browser als Internet Explorer 6 * /
Wichtige Notiz: Denken Sie daran, die neueste Version beizufügen, da die Anweisungen für ältere Versionen immer noch im Web schwimmen. Das Endergebnis sieht so aus:
Sie haben keine Arbeit zu tun, um IE 6 auf einer neuen Site zu unterstützen.
Dieser Ansatz hat gegenüber herkömmlichen alternativen Stylesheets einen offensichtlichen Vorteil: Sie müssen keine Arbeit für die Unterstützung von IE 6 auf einer neuen Site ausführen. Der Nachteil ist natürlich, dass die Website nur sehr wenig von Ihrem Design zeigt. Außerdem müssen Ihre HTML-Fundamente absolut solide sein, damit die Seite auch bei deaktiviertem Styling verwendet werden kann.
Beachten Sie, dass Universal IE6 CSS keine Formatierung für nur HTML5-Elemente wie z oder
. Dies ist kein Problem, es sei denn, Sie verlassen sich ausschließlich auf diese Elemente, um die Anzeige auf Blockebene für einige Teile der Seite zu erhalten. Im Allgemeinen wickeln Sie Ihren Text immer auch zumindest in einem Absatz- oder Listenelement ein.
Diese Lösung ist eindeutig nicht jedermanns Sache, und Sie werden vielleicht feststellen, dass Kunden, die rundheraus mit ihrer Website nicht einverstanden sind gebrochenwenn in IE6 angezeigt.
Sie könnten auch argumentieren, dass Sie an diesem Punkt die Unterstützung von IE6 ebenso vollständig aufgeben können. Andy Clarke hat hier seine Antworten auf diese Einwände zusammengefasst.
Dieser Ansatz funktioniert am besten für inhaltsorientierte Websites und katastrophal für Webanwendungen. Der Aufbau einer modernen Webanwendung für den IE 6 ist jedoch eine Herausforderung.
Unser nächster Champion ist ein JavaScript-Dienstprogramm, mit dem neue Funktionen in älteren Browsern eingeführt werden sollen (naja, eigentlich nur IE 6-8): Selectivizr arbeitet mit anderen JavaScript-Bibliotheken wie jQuery, Dojo oder MooTools zusammen, um Unterstützung für eine Reihe von weiteren hinzuzufügen erweiterte CSS-Selektoren.
Ich habe unten einige aufgeführt, obwohl die vollständige Liste der Funktionen von Ihrer bevorzugten JavaScript-Bibliothek abhängt.
:schweben
:Fokus
:erstes Kind
:letztes Kind
:erste Linie
:erster Brief
Um Selectivizr zu verwenden, laden Sie es von der Homepage herunter und fügen Sie es in Ihre Abschnitt zusammen mit einer der Unterstützungsbibliotheken. Hier ist ein Beispiel mit jQuery:
Selectivizr arbeitet mit anderen JavaScript-Bibliotheken zusammen, um die CSS3-Unterstützung für IE 6-8 bereitzustellen.
Dieser Punkt ist sehr wichtig: Selectivizr kann nicht alleine arbeiten. Ihre bevorzugte Bibliothek muss vorhanden sein. Glücklicherweise ist es mit der großen Mehrheit der beliebtesten JavaScript-Bibliotheken kompatibel. Wenn Sie JavaScript auf Ihrer Website verwenden, haben Sie wahrscheinlich bereits eine entsprechende Bibliothek.
Wenn Sie jedoch auch keine Bibliothek verwenden, können Sie alternativ den leichtgewichtigen DOMAssistant verwenden, obwohl Sie Ihre gewohnte JavaScript-Bibliothek dennoch bevorzugen können, um Dateien leichter verwalten zu können.
Seien Sie jedoch vorsichtig, da die von Selectivizr zur Verfügung gestellten genauen Selektoren davon abhängen, welche Unterstützungsbibliothek ausgewählt wird. Laut Homepage gibt es momentan die größte Auswahl an Selektoren mit MooTools, während jQuery leider die geringste Anzahl an Selektoren zur Verfügung stellt. Es muss auch gesagt werden, dass einige der Selektoren, die mit jQuery nicht verfügbar sind, ziemlich exotisch sind und in der realen Welt nur selten verwendet werden. In unserem Artikel "30 CSS-Selektoren, die Sie sich merken müssen" finden Sie eine vollständige Liste der Selektoren.
Bei den meisten JavaScript-Lösungen für CSS-Probleme gelten jedoch einige Einschränkungen.
Element, das Ihre Stylesheets enthält (im Gegensatz zu
).CSS3Pie verbessert auch die [6-8] -Funktionen von Internet Explorer, jedoch auf eine viel native Weise, da es effektiv die Verwendung einer Reihe schicker CSS3-Eigenschaften ermöglicht, wie z Randradius, linearer Farbverlauf, Box-Schatten, Randbild
fügt Unterstützung für mehrere Hintergründe hinzu. Verwenden Sie CSS3Pie und verabschieden Sie sich von manuell geschnittenen und positionierten abgerundeten Ecken.
CSS3Pie: Verabschieden Sie sich von manuell geschnittenen und positionierten abgerundeten Ecken.
Die Funktionsweise besteht darin, wenig bekannte proprietäre Microsoft-Erweiterungen zu nutzen: das CSS Verhalten
Eigenschafts- und HTML-Komponentendateien (offizielle Dokumentation). Mit dieser Erweiterung können Sie mithilfe von CSS JavaScript an bestimmte HTML-Elemente anhängen. Das JavaScript ist zusammen mit einigen proprietären Tags von Microsoft in enthalten .htc
Dateien, auf die innerhalb der Stilregeln verwiesen wird.
Schon aus diesem Grund könnten viele Entwickler argumentieren, dass Sie CSS3Pie nicht verwenden sollten. Die proprietären Tags von Internet Explorer sind leistungsstark und erzeugen weniger attraktive Ergebnisse.
Warum verwendet CSS3Pie kein reines JavaScript? Es gibt zwar eine JS-spezifische Version, das Team rät jedoch von seiner Verwendung ab, da JavaScript die Analyse der Seite blockiert.
Mit dem Strom .htc
Lösung ist die Implementierung recht einfach: Sie müssen nur eine einzelne Datei aus der CSS3Pie-Distribution hochladen, PIE.htc
, zu Ihrem Server. Fügen Sie anschließend bei jeder Verwendung einer der unterstützten CSS3-Eigenschaften den folgenden Code hinzu:
Verhalten: URL (Pfad / zu / PIE.htc);
Über, Pfad / zu / PIE.htc
ist der Pfad relativ zu der HTML-Datei, die geliefert wird; nicht das Stylesheet.
Natürlich kann CSS3Pie nur im Internet Explorer zaubern. Es erfordert auch etwas Pflege und Fütterung auf der Serverseite:
PIE.htc
Datei wird mit einem ausgeliefert Text / X-Komponente
Inhaltstyp. Die Distribution enthält ein PHP-Skript, das sich darum kümmern kann, wenn Sie Ihre Serverkonfiguration nicht ändern dürfen, beispielsweise auf einem gemeinsam genutzten Host. PIE.htc
kann auch ActiveX-Warnungen auslösen, normalerweise, wenn Sie sie auf Ihrem localhost testen. Dieses letzte Problem erfordert, dass das Problem mit dem Mark of the Web gelöst wird.CSS3Pie befindet sich zum Zeitpunkt des Schreibens noch im Beta-Modus - da noch einige Kniffe zu beseitigen sind.
HTML5 Boilerplate geht weit über Ihre Standard-Starter-Vorlagen hinaus.
HTML5 Boilerplate kann als eine Reihe von Vorlagen beschrieben werden, mit deren Hilfe Sie so schnell wie möglich mit der Erstellung moderner HTML5-Websites beginnen können. HTML5 Boilerplate geht jedoch weit über Ihre Standard-Starter-Vorlagen hinaus.
So werden beispielsweise die neueste Version von Modernizr (derselbe Ersteller) gebündelt, und der HTML-Link enthält sogar Links zu den von Google gehosteten jQuery-, Yahoo-Profiler- und Google Analytics-Skripts. Das CSS enthält die üblichen Reset-Regeln, aber auch eine Vielzahl von @media-Abfragen, um mit dem responsiven Webdesign für mobile Geräte anzufangen.
Das einzigartigste Feature ist, dass Sie zusätzlich zur Client-Konfiguration auch die serverseitige Konfigurationsdatei für Apache und Nginx erhalten. Dadurch können Sie die Downloadgeschwindigkeit maximieren und die Bereitstellung von HTML5-Videos optimieren. Insbesondere die .htaccess Dateien für Apache können sehr bequem in einem gemeinsam genutzten Hosting-Konto abgelegt werden gzip
Kompression und läuft ab
sind standardmäßig nicht aktiv.
Einige Leute behaupten vielleicht, dass HTML5 Boilerplate ein bisschen zu viele Entscheidungen für sie trifft (Hölle, die Apache-Konfiguration entfernt sogar automatisch den Namen vor dem Domainnamen!) Oder dass es etwas Google-zentrisch ist, obwohl es trotzdem interessant ist um die Dateien zu studieren und herauszufinden, welche Probleme die Autoren erwartet haben.
Außerdem werden Sie sicherlich dazu ermutigt, es für Ihre persönlichen Bedürfnisse aufzuschlüsseln. Dies ist einfach eine Boilerplate für den Einstieg.
Wenn Sie eine detaillierte Auflistung aller Inhalte von HTML5 Boilerplate erhalten möchten, hat Paul Irish einen exklusiven Screencast für Nettuts aufgenommen+.
Eine vollständig kommentierte Version ist unter html5boilerplate.com verfügbar.
Die Angst vor der Implementierung von Funktionen, die keine umfassende Browserunterstützung bieten, hält Designer oft davon ab, die neuesten Technologien einzusetzen. Während die Demografie Ihres Publikums sowie die Wünsche Ihres Kunden sorgfältig betrachtet werden müssen, können Sie HTML5 und CSS3 in vollem Umfang nutzen, wenn Sie der Ansicht sind, dass Websites nicht in allen Browsern gleich aussehen müssen.
Stellen Sie sich das so vor: Wenn Sie warten, bis CSS3 "vollständig" ist, werden Sie für immer warten. CSS2 wird von allen Browsern noch nicht vollständig unterstützt! Das Leitprinzip dabei ist, dass jeder Benutzer das Beste für sein Geld verdienen sollte: Wenn er einen Browser mit ausblutenden Kanten verwendet, warum sollten Sie nicht alle Funktionen des Browsers in Anspruch nehmen?
Teilen Sie uns in den Kommentaren mit, was Sie zu diesen Themen denken. Vielen Dank fürs Lesen!