Warum? - "Eine Stilregel auskommentieren, aber"! - "nicht?

8

Mach es mir leicht. Ich lerne gerade HTML.

Entschuldigung, Ссылка und viele andere Seiten, die ich gesehen habe, wie diese < a href="http://www.w3schools.com/tags/tag_comment.asp"> Ссылка

Sie sagen, ein HTML-Kommentar ist <!-- text --> ohne Leerzeichen zwischen ! und dem nächsten Gedankenstrich.

Dennoch zeige ich unten, dass nur, wenn ich <! -- test --> schreibe, das Zeug darin ignoriert wird. Beachten Sie den zwischen <! und --

hinzugefügten Speicherplatz

Hier ist der HTML-Code

%Vor%

Jetzt, bevor Sie es ausführen, sollte der Tisch Grenze haben oder nicht?

Wenn das Zeug in text / css wirklich auskommentiert ist, sollte die Tabelle keinen Rahmen haben, richtig? Aber es tut. Ich habe dies auf Chrom Version 24.0.1312.52 unter Linux Mint 14, und auch Firefox 18.0

versucht

Wenn ich jetzt die Zeile zu

ändere %Vor%

Beachten Sie den zusätzlichen Speicherplatz jetzt. Dann erscheint die Tabelle ohne Rand wie erwartet. Das gleiche passiert, wenn ich die ganze Zeile lösche:

%Vor%

Frage ist : Ist der Kommentar <!-- text --> oder ist es <! -- text --> ?

    
Nasser 19.01.2013, 03:28
quelle

3 Antworten

19

CSS akzeptiert keine HTML <!-- comment here --> Kommentare. Stattdessen verwendet CSS /* comment */ , um Zeilen zu kommentieren. Probieren Sie das stattdessen.

    
Ilan Biala 19.01.2013, 03:30
quelle
11

Die Zeichenfolge <! -- gibt nichts aus. Stattdessen ist es in CSS ein Syntaxfehler, und die CSS Fehlerverarbeitung Regeln impliziert in In diesem Fall wird das gesamte Stylesheet ignoriert.

Die Zeichenfolge <!-- startet auch keinen Kommentar, sondern CSS Kommentar -Regeln In bestimmten Kontexten wird es (wie auch --> ) erlaubt und ignoriert (übersprungen). Daher das Stylesheet

%Vor%

wird als

verwendet %Vor%

Sie können dies mit dem W3C CSS-Validator überprüfen. Im ersten Fall wird mit dem Leerzeichen ein Fehler gemeldet und es werden keine gültigen CSS-Regeln gemeldet. Im zweiten Fall wird kein Fehler gemeldet und die Regel wird als gültig angezeigt.

In CSS beginnt ein Kommentar immer mit /* und endet mit */ .

Der Grund für die speziellen Regeln für <!-- und --> ist, dass es sehr lange her ist (und wir sprechen von der Zeit, als Netscape 1 noch benutzt wurde), einige Browser haben das Element style nicht erkannt alle. Dies bedeutete, dass sie die Tags <style> und </style> ignorierten und den Inhalt zwischen ihnen so verarbeiteten, als ob es normaler HTML-Inhalt wäre. Dies hätte dazu geführt, dass das Stylesheet in solchen Browsern auf der Seite angezeigt wird. Um dies zu verhindern, wurde das Stylesheet zwischen den HTML-Kommentartrennzeichen eingefügt, um das Stylesheet auszublenden. Alte Browser ignorierten dann einfach den Inhalt des Elements style . Aber dann musste eine spezielle Regel zur CSS-Spezifikation hinzugefügt werden, um die Trennzeichen zu ermöglichen.

Das ist alte Geschichte, aber alte Gewohnheiten herrschen vor und werden sogar aus dem Code anderer Leute kopiert, ohne zu verstehen, was sie bedeuten. Es gab keinen Grund, das Stylesheet lange Zeit zu "verstecken", und der Trick ist nun zu einem potenziellen Risiko geworden (aufgrund möglicher Interferenzen mit XHTML-Regeln oder wegen Verwirrung und Tippfehlern).

Verwenden Sie also niemals <!-- (oder <! -- ) in CSS.

    
Jukka K. Korpela 19.01.2013 04:56
quelle
1

Ich habe gesehen, dass Leute aus Kompatibilitätsgründen <!-- --> im CSS-Stilblock verwenden.

In diesem Fall werden alte Browser, die CSS nicht unterstützen, dies auskommentieren, um Fehler zu vermeiden.

%Vor%

wird als

interpretiert %Vor%

von alten Browsern, die CSS nicht unterstützen. Auf diese Weise vermeiden diese Browser mögliche Fehler.

In modernen Browsern wird jedoch <!-- --> innerhalb des CSS-Stilblocks ignoriert.

%Vor%

wird als

interpretiert %Vor%

von Browsern mit CSS-Unterstützung.

    
Rafael J 09.03.2016 13:26
quelle

Tags und Links