2009-04-30 5 views

Antwort

7

Weder.

Am besten schreiben Sie Code, der in allen Browsern funktioniert, ohne dass browserspezifischer Code oder css-Hacks benötigt werden. Es ist natürlich nicht ganz so einfach zu erreichen, weshalb viele Leute die anderen Methoden verwenden.

Der Schlüssel ist, Dinge zu vermeiden, die einige Browser (sehr oft Internet Explorer) Probleme haben. Eine Sache ist es, Padding statt Margin zu verwenden, da der Randbereich nicht korrekt verarbeitet wird.

Einige Methoden, die sich in der Grenzlinie von Hacks befinden, verwenden Code, der nicht die Browser beeinträchtigt, die ordnungsgemäß funktionieren, behebt jedoch Probleme für einen bestimmten Browser. Das kann etwas wie die Angabe einer Höhe für ein Element sein, das normalerweise kein Element benötigt, oder die Angabe von für ein Floating-Element.

Die Seite Position is everything enthält Beispiele für einige Fehler und vorgeschlagene Korrekturen. (Oft ist der Fix eine Art Hack, also sollten Sie natürlich auch überlegen, ob Sie das Problem überhaupt vermeiden können.)

+0

Die meisten Probleme, die Sie beschrieben haben, hängen von der Einstellung des Doctype ab. Wenn Sie das nicht tun, dann werden Sie radikale Unterschiede zwischen den Browsern haben.Doctype mit einem CSS-Reset löst fast alles bei normaler Nutzung. – NotMe

+0

Nein, was ich beschrieben habe, gilt auch, wenn Sie einen richtigen Doctype und gültigen Code haben. Ohne es geht dir viel schlechter. – Guffa

0

Weder wenn möglich. Jetzt, da das alte Netscape, IE < = 6 usw. nicht mehr wirklich so häufig verwendet wird, versuche ich Funktionen zu verwenden, die in all diesen Browsern funktionieren (z. B. FF> = 2, IE> = 7, Chrome, Opera).

+0

IE6 ist immer noch weit verbreitet, es ist etwas zwischen 15 und 20% des Marktanteils je nach Quelle. – marcgg

3

Es ist besser, keine zu tun.

Ein guter CSS-Reset und CSS, das funktioniert der gleiche Browser ist eine viel bessere Lösung.

Wenn Ihr Design dies absolut ausschließt, dann (und nur dann) würde ich versuchen, Hacks oder IE bedingte Kommentare.

Ich habe noch nicht die Notwendigkeit für mehrere CSS-Dateien (über ein paar IE6 Korrekturen durch einen bedingten Kommentar angesprochen) gesehen.

0

Conditional comments für Probleme mit Internet Explorer scheinen die Norm zu sein. Kombiniert mit ein wenig JavaScript, wie Dean Edward's ie7.js, können Sie die meisten Cross-Browser-Probleme abmildern, ohne auf Hacks innerhalb Ihrer CSS-Dateien zurückgreifen zu müssen.

0

ist es besser, eine andere CSS-Dateien für Internet Explorer 6-7 (einschließlich sie über conditional comments) und Hacks für andere Browser zu verwenden.

0

Eine Art von Follow-up ist, wie Sie die einzelne Datei entwickeln, die funktioniert.

Der beste Ansatz, den ich gesehen habe, ist von nichts zu beginnen, langsam aufzubauen und Änderungen durch Änderung zu überprüfen, dass es immer noch kompatibel mit Ihren Kern-Browsern ist (besonders den problematischen).

Wenn Sie es vollständig mit einem Browser arbeiten und dann sagen "Zeit, um es zu konvertieren" ist, wenn der Schmerz wirklich beginnt und wo Sie anfangen müssen zu hacken.

0

My approach mit einer PHP-Klasse, um os, Browser und Browser-Version zu erkennen. Sie können jede Version von fast jedem Browser auf jedem Betriebssystem als Ziel auswählen.

Verwandte Themen