Cascading Style Sheet Knowledge Base
CSS Syntax
Source
Syntax
Sources: https://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html
Tokenization
Property NameDescriptionCSS LevelRefRemark ( 2.1 \(last updated 21 Jan 2019) 2.1 \)last updated 21 Jan 2019: 2.1 :last updated 21 Jan 2019; 2.1 ;last updated 21 Jan 2019[ 2.1 \[last updated 21 Jan 2019] 2.1 \]last updated 21 Jan 2019{ 2.1 \{last updated 21 Jan 2019} 2.1 \}last updated 21 Jan 2019ATKEYWORD 2.1 @{ident}last updated 21 Jan 2019BAD_COMMENT 2.1 {badcomment}last updated 21 Jan 2019BAD_STRING 2.1 {badstring}last updated 21 Jan 2019BAD_URI 2.1 {baduri}last updated 21 Jan 2019CDC 2.1 -->last updated 21 Jan 2019CDO 2.1 <!--last updated 21 Jan 2019COMMENT 2.1 \/\*[^*]*\*+([^/*][^*]*\*+)*\/last updated 21 Jan 2019DASHMATCH 2.1 |=last updated 21 Jan 2019DELIM 2.1 any other character not matched by the above rules, and neither a single nor a double quotelast updated 21 Jan 2019DIMENSION 2.1 {num}{ident}last updated 21 Jan 2019FUNCTION 2.1 ident}\(last updated 21 Jan 2019HASH 2.1 #{name}last updated 21 Jan 2019IDENT 2.1 {ident}last updated 21 Jan 2019INCLUDES 2.1 ~=last updated 21 Jan 2019NUMBER 2.1 {num}last updated 21 Jan 2019PERCENTAGE 2.1 {num}%last updated 21 Jan 2019S 2.1 [ \t\r\n\f]+last updated 21 Jan 2019STRING 2.1 {string}last updated 21 Jan 2019UNICODE-RANGE 2.1 u\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?last updated 21 Jan 2019URI 2.1 url\({w}{string}{w}\)
|url\({w}([!#$%&*-\[\]-~]|{nonascii}|{escape})*{w}\)last updated 21 Jan 2019
Macro
Property NameDescriptionCSS LevelRefRemark badcomment 2.1 {badcomment1}|{badcomment2}last updated 21 Jan 2019badcomment1 2.1 \/\*[^*]*\*+([^/*][^*]*\*+)*last updated 21 Jan 2019badcomment2 2.1 \/\*[^*]*(\*+[^/*][^*]*)*last updated 21 Jan 2019badstring 2.1 {badstring1}|{badstring2}last updated 21 Jan 2019badstring1 2.1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\\?last updated 21 Jan 2019badstring2 2.1 \'([^\n\r\f\\']|\\{nl}|{escape})*\\?last updated 21 Jan 2019baduri 2.1 {baduri1}|{baduri2}|{baduri3}last updated 21 Jan 2019baduri1 2.1 url\({w}([!#$%&*-~]|{nonascii}|{escape})*{w}last updated 21 Jan 2019baduri2 2.1 url\({w}{string}{w}last updated 21 Jan 2019baduri3 2.1 url\({w}{badstring}last updated 21 Jan 2019escape 2.1 {unicode}|\\[^\n\r\f0-9a-f]last updated 21 Jan 2019ident 2.1 [-]?{nmstart}{nmchar}*last updated 21 Jan 2019name 2.1 {nmchar}+last updated 21 Jan 2019nl 2.1 \n|\r\n|\r|\flast updated 21 Jan 2019nmchar 2.1 [_a-z0-9-]|{nonascii}|{escape}last updated 21 Jan 2019nmstart 2.1 [_a-z]|{nonascii}|{escape}last updated 21 Jan 2019nonascii 2.1 [^\0-\237]last updated 21 Jan 2019num 2.1 [0-9]+|[0-9]*\.[0-9]+last updated 21 Jan 2019string 2.1 {string1}|{string2}last updated 21 Jan 2019string1 2.1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\"last updated 21 Jan 2019string2 2.1 \'([^\n\r\f\\']|\\{nl}|{escape})*\'last updated 21 Jan 2019unicode 2.1 \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?last updated 21 Jan 2019w 2.1 [ \t\r\n\f]*last updated 21 Jan 2019
Core Syntax
Property NameDescriptionCSS LevelRefRemark any 2.1 [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING
| DELIM | URI | HASH | UNICODE-RANGE | INCLUDES
| DASHMATCH | ':' | FUNCTION S* [any|unused]* ')'
| '(' S* [any|unused]* ')' | '[' S* [any|unused]* ']'
] S*;last updated 21 Jan 2019at-rule 2.1 ATKEYWORD S* any* [ block | ';' S* ];last updated 21 Jan 2019block 2.1 '{' S* [ any | block | ATKEYWORD S* | ';' S* ]* '}' S*;last updated 21 Jan 2019declaration 2.1 property S* ':' S* value;last updated 21 Jan 2019property 2.1 IDENT;last updated 21 Jan 2019ruleset 2.1 selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*;last updated 21 Jan 2019selector 2.1 any+;last updated 21 Jan 2019statement 2.1 ruleset | at-rule;last updated 21 Jan 2019stylesheet 2.1 [ CDO | CDC | S | statement ]*;last updated 21 Jan 2019unused 2.1 block | ATKEYWORD S* | ';' S* | CDO S* | CDC S*;last updated 21 Jan 2019value 2.1 [ any | block | ATKEYWORD S* ]+;last updated 21 Jan 2019
Vendor-specific Extension
Property NameDescriptionCSS LevelRefRemark - 2.1 '-' + vendor identifier + '-' + meaningful namelast updated 21 Jan 2019_ 2.1 '_' + vendor identifier + '-' + meaningful namelast updated 21 Jan 2019
Historical Prefix Keyword
Property NameDescriptionCSS LevelRefRemark -ah- 2.1 Antenna Houselast updated 21 Jan 2019-atsc- 2.1 Advanced Television Standards Committeelast updated 21 Jan 2019-hp- 2.1 Hewlett Packardlast updated 21 Jan 2019-khtml- 2.1 KDElast updated 21 Jan 2019-moz- 2.1 Mozillalast updated 21 Jan 2019-ms- 2.1 Microsoftlast updated 21 Jan 2019mso- 2.1 Microsoftlast updated 21 Jan 2019-o- 2.1 Opera Softwarelast updated 21 Jan 2019prince- 2.1 YesLogiclast updated 21 Jan 2019-rim- 2.1 Research In Motionlast updated 21 Jan 2019-ro- 2.1 Real Objectslast updated 21 Jan 2019-wap- 2.1 The WAP Forumlast updated 21 Jan 2019-webkit- 2.1 Applelast updated 21 Jan 2019-xv- 2.1 Opera Softwarelast updated 21 Jan 2019