2013-04-30 13 views
9

Ich bearbeite eine Seite, die ich geerbt habe, und ich sehe eine CSS-Syntax, die ich nicht erkenne.Was tun eckige Klammern innerhalb eines CSS-Stils?

Hat jemand diese Syntax schon einmal gesehen? Was bedeuten die eckigen Klammern innerhalb eines Stils?

Danke, Rob

.trigger-txt-left { 
color: #0455A3; 
font-family: 'OpenSans'; 
float: left; 
font-size: 16px; 
font-weight: bolder; 
width: 235px; 

[font-family: 'OpenSans'; 
font-family: 'HelveticaNeue-Bold';] 
[font-weight: bolder; 
font-weight: normal;] 
} 
+10

Ich werde nur hier sitzen und automatisch jeden ablehnen, der kommt und sagt "Attribut-Selektor". – BoltClock

+9

Attributselektor: 3 – lifetimes

+2

Definitiv Attributselektor. – sachleen

Antwort

8

Die kurze Antwort ist, nichts. Sie sind kein gültiges CSS.

Spekulieren, vielleicht hat die Person einen Code verwendet, um den richtigen irgendwo anders zu wählen, zum Beispiel könnte PHP dies lesen, dann die [ und ] analysieren und dann die richtige Eigenschaft auswählen.

Alternativ könnten sie nicht realisiert haben, die /* */ Stil Kommentare zu verwenden, oder vielleicht dachten sie, dass sie clever sind, indem sie sicherstellen, dass es auf diese Weise nicht gültig war.

Wahrscheinlicher, obwohl es ein Fehler ist, möglicherweise von irgendwo kopieren und einfügen.

+1

Das sieht wie ein Kommentar aus. –

+0

was ist mit dem eingang [type = text] das ist gültig css? Pseudo ja, aber trotzdem. – rncrtr

+0

Das ist nicht im Deklarationsblock, aber der Selektor. Es heißt ein Attributselektor. –

4

TL; DR - Es ist nicht gültig CSS

Es könnte hilfreich sein bei der CSS-Spezifikation in diesem Fall zu suchen. 4.1.8 Declarations and properties besagt, dass "ein Eigenschaftsname ein Bezeichner ist". und die section on identifiers syntax erklärt, dass:

In CSS, Identifikatoren (einschließlich Elementnamen, Klassen und IDs in Selektoren) nur die Zeichen enthalten kann [a-zA-Z0-9] und ISO 10646 Zeichen U + 00A0 und höher, plus Bindestrich (-) und Unterstrich (_); Sie können nicht mit einer Ziffer, zwei Bindestrichen oder einem Bindestrich beginnen, gefolgt von einer Ziffer. Bezeichner können auch maskierte Zeichen und jedes ISO 10646-Zeichen als numerischen Code enthalten (siehe nächster Punkt). Zum Beispiel die Kennung "B & W?" kann geschrieben werden als "B \ & W \?" oder "B \ 26 W \ 3F".

..., die nicht die [ Zeichen enthält (siehe Unicode character table), also die Kennung (in diesem Fall der Name einer CSS-Eigenschaft innerhalb eines Blocks) [font-family: 'OpenSans';\nfont-family: 'HelveticaNeue-Bold';] ist nicht gültig.

+0

@dystroy: Weil ein CSS-Parser das so parsen würde? Eine Deklaration in einem Regelsatz sollte immer mit einem Eigenschaftsbezeichner beginnen, unabhängig vom Leerzeichen. Allerdings würde der Bezeichner sicherlich nicht den gesamten Satz von Deklarationen umgeben von eckigen Klammern umfassen ... – BoltClock

+0

@BoltClock Dann wäre der relevante Link wahrscheinlich mehr dieser: http://www.w3.org/TR/CSS21 /syndata.html#rule-sets –

+0

@dystroy Ich habe das Bit in Abschnitt 4.1.8 nicht eingefügt, wo die Spezifikation besagt, dass "Eigenschaftsnamen" Bezeichner sind. Das tut mir leid. –

Verwandte Themen