2012-10-30 17 views
9

Ist ein gültiges CSS erforderlich? Ich benutze Twitter Bootstrap für die schnelle Webentwicklung und nachdem ich die zwei wichtigsten Bootstrap Style Sheets über den W3C CSS Validator ausgeführt habe, sind mir 600 Fehler aufgefallen.Ist ein gültiges CSS erforderlich?

Meine Frage ist, meine Website sieht gut aus, warum ist es so wichtig, dass das CSS gültig ist?

+1

Was sind einige der Validierungsfehler? – scunliffe

+1

Wenn die Validierungsfehler herstellerspezifische Präfixe sind, ignorieren Sie sie. Ansonsten ist das ein Problem mit Bootstrap. Wie @scunliffe gefragt - was sind einige der Fehler, die Sie bekommen? – Ryan

+1

Wenn Sie eine Website ausführen, die Bootstrap über das CSS-Validierungstool W3C verwendet, werden die Fehlermeldungen angezeigt, die ausgegeben werden. Zu viele, um sie hier aufzulisten – henrywright

Antwort

7

Ja, es ist absolut notwendig, ein gültiges CSS zu haben. CSS ist eine Programmiersprache und als solche müssen Sie ihre Sprachregeln befolgen. Nur weil Browser dazu neigen, ungültiges HTML zu akzeptieren und zu versuchen, es zu rendern, macht es das Generieren von schlecht formatiertem HTML nicht zu einer guten Übung. Das gleiche gilt für CSS, obwohl - zum Glück - CSS-Regeln ein wenig strenger sind als HTML-Regeln.

Ein weiterer Grund ist, dass ein gültiges CSS das Verhalten garantiert - wenn Sie eine Regel schreiben, können Sie erwarten, dass sich diese Regel auf eine bestimmte Art und Weise verhält. (Buggy-Browser, wie alle IE-Versionen abgesehen.) Wenn Ihr CSS ungültig ist, ist jedes Verhalten, das Sie erhalten, undefiniert und es kann beschädigt werden, wenn eine Patch-Version für einen der zum Testen verwendeten Browser herausgegeben wird. Ihr CSS wird nicht unbedingt brechen, aber wenn Sie ungültiges CSS schreiben, erhalten Sie keine Garantie für irgendein Verhalten - Sie erhalten einfach etwas Verhalten, das Ihnen scheinen mag, aber das kann jederzeit ändern.

Wenn Sie korrektes CSS mit falschem CSS gemischt haben, tendieren Browser dazu, die ungültigen Teile zu ignorieren (wie die Spezifikation es ihnen sagt), aber jeder Browser tut es etwas anders. Ähnlich, während viele Leute empfehlen, CSS-Hacks zu verwenden, würde ich aus den oben genannten Gründen sagen, nicht zu sagen.

+0

Kann "vorzugsweise" nicht "absolut" sein. Weil die Realität ist, müssen wir Browser unterstützen, die unsere Benutzer verwenden. – Grimmo

+0

@Grimmo Ich stimme größtenteils mit Ihrem Kommentar überein. Der Grund, den ich absolut verwendet habe, ist, weil viele Leser "bevorzugt" auf eine permissive Weise interpretieren können - das heißt, sie können annehmen, dass es in Ordnung ist, "schlechtes" CSS zu haben und es ist in Ordnung, sich auf den Browser zu verlassen. – xxbbcc

0

Jetzt ein Tag gibt es verschiedene Anzahl von Browsern mit unterschiedlicher Anzahl von Versionen.Einige unterstützt viele, aber einige sind nicht.So, wenn Sie Stile hinzufügen ist es immer nicht möglich, 100% perfekt zu passen.Wenn Ihr Stil funktioniert ohne jedes Problem ok.But wenn es bei verschiedenen Browsern zu Problemen kommt, musst du aufpassen, sonst kein Problem.

3

Das CSS muss nicht gültig sein, um zu funktionieren. Browser ignorieren einfach das CSS, das sie nicht verstehen.

Validierung des CSS ist eine Methode zu testen, ob es der Spezifikation folgt. Wenn dies der Fall ist, wird jeder Browser, der mit der verwendeten Spezifikation auf dem neuesten Stand ist, das CSS verstehen.

0

ja es ist wichtig, die meisten Browser folgen dem W3C-Standard, wenn sie die HTML-Seite laden. Wenn Ihre Seite nicht die gültige CSS hat, kann es in verschiedenen Browsern anders aussehen. Alte Internet-Entdecker haben die W3c-Standards nicht befolgt, was den Entwicklern viel Geld gekostet hat. Entwickler brauchen immer zusätzliche CSS, damit der IE die Seite richtig anzeigt.

3

Es ist wirklich ein umstrittenes Thema. Die W3C-Tools sind sicherlich gut zu verwenden, aber sie neigen dazu, nicht viel modernen Code zu berücksichtigen. Natürlich ist es für sie schwierig, nicht nur Standards zu verbessern, sondern auch sicherzustellen, dass die Tools, die sie anbieten, für neuen und originellen Code verantwortlich sind.

Um Webseiten in allen Browsern und auf allen Plattformen gut aussehen zu lassen, müssen sich die Leute vielleicht außerhalb der Normen bewegen, die sonst "gültig" wären. Es ist schwer, gegen eine Website zu argumentieren, die perfekt über Browser und Plattform funktioniert, auch wenn das CSS nicht zu 100% fehlerfrei ist. Das sind meine zwei Cent.

3

Ihre CSS braucht nicht gültig zu sein (je nachdem wen man fragt), aber wenn es ungültig ist, sollten Sie einen Grund für die Ungültigkeit haben:

audio, 
canvas, 
video { 
    display: inline-block; 
    *display: inline; 
    *zoom: 1; 
} 

Der Validator einen Parse-Fehler hat hier wegen des Sternchens am Anfang des Eigentums.Dies ist ein unbekannter aber anerkannter Hack für die Ausrichtung auf Internet Explorer. Andere Browser ignorieren die Eigenschaften, die sie nicht erkennen, aber IE6/7 liest Eigenschaften mit Sternchen.


input:-moz-placeholder, 
textarea:-moz-placeholder { 
    color: #999999; 
} 

input:-ms-input-placeholder, 
textarea:-ms-input-placeholder { 
    color: #999999; 
} 

input::-webkit-input-placeholder, 
textarea::-webkit-input-placeholder { 
    color: #999999; 
} 

Der Validator Fehler hier ist ein Ergebnis der herstellerspezifischen Pseudo-Klassen. Hinweis: Wenn ein Browser den Selektor nicht erkennt, wird die gesamte Regel ignoriert, so dass die Platzhaltererweiterungen des Herstellers separate Regeln sein müssen, im Gegensatz zu nicht erkannten Eigenschaften. Dies geschieht auch dann, wenn der Komma-Operator so:

input::-moz-placeholder, 
input::-ms-input-placeholder, 
input::-webkit-input-placeholder, { 
    color: #999999; 
} 

würde in alle Browser ignoriert werden, wenn sie alle drei Anbieter Präfixe anerkannt.


filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); 

Dies ist im alten Stil IE-Erweiterung für Steigungen. Es kräuselt sich und verursacht eine Reihe von Fehlern im Validator, obwohl der IE ihm folgt und andere Browser ihn nicht ruhig ignorieren.


width: auto\9; 

Die \ 9 ist eine andere IE-Hack, der IE zielt < = 8


Unterm Strich ist, dass, wenn Sie etwas nicht-Standard machen, stellen Sie sicher wissen warum Sie tun es.

Verwandte Themen