<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to css2-compliance</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/</link><description>Recent changes to css2-compliance</description><atom:link href="https://sourceforge.net/p/vbcssparser/css2-compliance/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 10 Aug 2005 16:51:49 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/vbcssparser/css2-compliance/feed.rss" rel="self" type="application/rss+xml"/><item><title>4.3.4 URL + URN = URI</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/14/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;URLs (Uniform Resource Locators, see [RFC1738] and &lt;br /&gt;
[RFC1808]) provide the address of a resource on the &lt;br /&gt;
Web. An expected new way of identifying resources is &lt;br /&gt;
called URN (Uniform Resource Name). Together they &lt;br /&gt;
are called URIs (Uniform Resource Identifiers, see &lt;br /&gt;
[URI]). This specification uses the term URI. &lt;/p&gt;
&lt;p&gt;URI values in this specification are denoted by &amp;lt;uri&amp;gt;. &lt;br /&gt;
The functional notation used to designate URIs in &lt;br /&gt;
property values is "url()", as in: &lt;/p&gt;
&lt;p&gt;Example(s):&lt;/p&gt;
&lt;p&gt;BODY { background: url&lt;br /&gt;
("http://www.bg.com/pinkish.gif") }&lt;/p&gt;
&lt;p&gt;The format of a URI value is 'url(' followed by optional &lt;br /&gt;
whitespace followed by an optional single quote (') or &lt;br /&gt;
double quote (") character followed by the URI itself, &lt;br /&gt;
followed by an optional single quote (') or double quote &lt;br /&gt;
(") character followed by optional whitespace followed &lt;br /&gt;
by ')'. The two quote characters must be the same. &lt;/p&gt;
&lt;p&gt;Example(s):&lt;/p&gt;
&lt;p&gt;An example without quotes: &lt;/p&gt;
&lt;p&gt;LI { list-style: url(http://www.redballs.com/redball.png) &lt;br /&gt;
disc }&lt;/p&gt;
&lt;p&gt;Parentheses, commas, whitespace characters, single &lt;br /&gt;
quotes (') and double quotes (") appearing in a URI must &lt;br /&gt;
be escaped with a backslash: '\(', '\)', '\,'. &lt;/p&gt;
&lt;p&gt;Depending on the type of URI, it might also be possible &lt;br /&gt;
to write the above characters as URI-escapes (where "(" &lt;br /&gt;
= %28, ")" = %29, etc.) as described in [URI]. &lt;/p&gt;
&lt;p&gt;In order to create modular style sheets that are not &lt;br /&gt;
dependent on the absolute location of a resource, &lt;br /&gt;
authors may use relative URIs. Relative URIs (as &lt;br /&gt;
defined in [RFC1808]) are resolved to full URIs using a &lt;br /&gt;
base URI. RFC 1808, section 3, defines the normative &lt;br /&gt;
algorithm for this process. For CSS style sheets, the &lt;br /&gt;
base URI is that of the style sheet, not that of the &lt;br /&gt;
source document. &lt;/p&gt;
&lt;p&gt;Example(s):&lt;/p&gt;
&lt;p&gt;For example, suppose the following rule:&lt;/p&gt;
&lt;p&gt;BODY { background: url("yellow") }&lt;/p&gt;
&lt;p&gt;is located in a style sheet designated by the URI:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.myorg.org/style/basic.css" rel="nofollow"&gt;http://www.myorg.org/style/basic.css&lt;/a&gt;&lt;br /&gt;
The background of the source document's BODY will be &lt;br /&gt;
tiled with whatever image is described by the resource &lt;br /&gt;
designated by the URI &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.myorg.org/style/yellow" rel="nofollow"&gt;http://www.myorg.org/style/yellow&lt;/a&gt;&lt;br /&gt;
User agents may vary in how they handle URIs that &lt;br /&gt;
designate unavailable or inapplicable resources.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Wed, 10 Aug 2005 16:51:49 -0000</pubDate><guid>https://sourceforge.netc0c9ff8ae8f7e4958d3e28495f820352b60d07bb</guid></item><item><title>4.3.3 Percentages</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/13/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The format of a percentage value (denoted by &lt;br /&gt;
&amp;lt;percentage&amp;gt; in this specification) is an optional sign &lt;br /&gt;
character ('+' or '-', with '+' being the default) &lt;br /&gt;
immediately followed by a &amp;lt;number&amp;gt; immediately &lt;br /&gt;
followed by '%'. &lt;/p&gt;
&lt;p&gt;Percentage values are always relative to another value, &lt;br /&gt;
for example a length. Each property that allows &lt;br /&gt;
percentages also defines the value to which the &lt;br /&gt;
percentage refers. The value may be that of another &lt;br /&gt;
property for the same element, a property for an &lt;br /&gt;
ancestor element, or a value of the formatting context &lt;br /&gt;
(e.g., the width of a containing block). When a &lt;br /&gt;
percentage value is set for a property of the root &lt;br /&gt;
element and the percentage is defined as referring to &lt;br /&gt;
the inherited value of some property, the resultant value &lt;br /&gt;
is the percentage times the initial value of that property. &lt;/p&gt;
&lt;p&gt;Example(s):&lt;/p&gt;
&lt;p&gt;Since child elements (generally) inherit the computed &lt;br /&gt;
values of their parent, in the following example, the &lt;br /&gt;
children of the P element will inherit a value of 12pt &lt;br /&gt;
for 'line-height', not the percentage value (120%): &lt;/p&gt;
&lt;p&gt;P { font-size: 10pt }&lt;br /&gt;
P { line-height: 120% }  /* 120% of 'font-size' */&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Wed, 10 Aug 2005 16:48:53 -0000</pubDate><guid>https://sourceforge.net1b21b982fd220edffa30265c54dc01faaf7b1d5b</guid></item><item><title>4.3.2 Lengths</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/12/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Lengths refer to horizontal or vertical measurements. &lt;/p&gt;
&lt;p&gt;The format of a length value (denoted by &amp;lt;length&amp;gt; in this &lt;br /&gt;
specification) is an optional sign character ('+' or '-', &lt;br /&gt;
with '+' being the default) immediately followed by a &lt;br /&gt;
&amp;lt;number&amp;gt; (with or without a decimal point) immediately &lt;br /&gt;
followed by a unit identifier (e.g., px, deg, etc.). After &lt;br /&gt;
the '0' length, the unit identifier is optional. &lt;/p&gt;
&lt;p&gt;Some properties allow negative length values, but this &lt;br /&gt;
may complicate the formatting model and there may be &lt;br /&gt;
implementation-specific limits. If a negative length value &lt;br /&gt;
cannot be supported, it should be converted to the &lt;br /&gt;
nearest value that can be supported. &lt;/p&gt;
&lt;p&gt;There are two types of length units: relative and &lt;br /&gt;
absolute. Relative length units specify a length relative &lt;br /&gt;
to another length property. Style sheets that use relative &lt;br /&gt;
units will more easily scale from one medium to another &lt;br /&gt;
(e.g., from a computer display to a laser printer). &lt;/p&gt;
&lt;p&gt;Relative units are: &lt;/p&gt;
&lt;p&gt;em: the 'font-size' of the relevant font &lt;br /&gt;
ex: the 'x-height' of the relevant font &lt;br /&gt;
px: pixels, relative to the viewing device &lt;br /&gt;
Example(s):&lt;/p&gt;
&lt;p&gt;H1 { margin: 0.5em }      /* em */&lt;br /&gt;
H1 { margin: 1ex }        /* ex */&lt;br /&gt;
P  { font-size: 12px }    /* px */&lt;/p&gt;
&lt;p&gt;The 'em' unit is equal to the computed value of the 'font-&lt;br /&gt;
size' property of the element on which it is used. The &lt;br /&gt;
exception is when 'em' occurs in the value of the 'font-&lt;br /&gt;
size' property itself, in which case it refers to the font &lt;br /&gt;
size of the parent element. It may be used for vertical or &lt;br /&gt;
horizontal measurement. (This unit is also sometimes &lt;br /&gt;
called the quad-width in typographic texts.) &lt;/p&gt;
&lt;p&gt;The 'ex' unit is defined by the font's 'x-height'. The x-&lt;br /&gt;
height is so called because it is often equal to the &lt;br /&gt;
height of the lowercase "x". However, an 'ex' is defined &lt;br /&gt;
even for fonts that don't contain an "x". &lt;/p&gt;
&lt;p&gt;Example(s):&lt;/p&gt;
&lt;p&gt;The rule: &lt;/p&gt;
&lt;p&gt;H1 { line-height: 1.2em }&lt;/p&gt;
&lt;p&gt;means that the line height of H1 elements will be 20% &lt;br /&gt;
greater than the font size of the H1 elements. On the &lt;br /&gt;
other hand: &lt;/p&gt;
&lt;p&gt;H1 { font-size: 1.2em }&lt;/p&gt;
&lt;p&gt;means that the font-size of H1 elements will be 20% &lt;br /&gt;
greater than the font size inherited by H1 elements. &lt;/p&gt;
&lt;p&gt;When specified for the root of the document tree &lt;br /&gt;
(e.g., "HTML" in HTML), 'em' and 'ex' refer to the &lt;br /&gt;
property's initial value. &lt;/p&gt;
&lt;p&gt;Pixel units are relative to the resolution of the viewing &lt;br /&gt;
device, i.e., most often a computer display. If the pixel &lt;br /&gt;
density of the output device is very different from that of &lt;br /&gt;
a typical computer display, the user agent should &lt;br /&gt;
rescale pixel values. It is recommended that the &lt;br /&gt;
reference pixel be the visual angle of one pixel on a &lt;br /&gt;
device with a pixel density of 90dpi and a distance from &lt;br /&gt;
the reader of an arm's length. For a nominal arm's &lt;br /&gt;
length of 28 inches, the visual angle is therefore about &lt;br /&gt;
0.0227 degrees. &lt;/p&gt;
&lt;p&gt;For reading at arm's length, 1px thus corresponds to &lt;br /&gt;
about 0.28 mm (1/90 inch). When printed on a laser &lt;br /&gt;
printer, meant for reading at a little less than arm's &lt;br /&gt;
length (55 cm, 21 inches), 1px is about 0.21 mm. On a &lt;br /&gt;
300 dots-per-inch (dpi) printer, that may be rounded up &lt;br /&gt;
to 3 dots (0.25 mm); on a 600 dpi printer, it can be &lt;br /&gt;
rounded to 5 dots. &lt;/p&gt;
&lt;p&gt;The two images below illustrate the effect of viewing &lt;br /&gt;
distance on the size of a pixel and the effect of a &lt;br /&gt;
device's resolution. In the first image, a reading distance &lt;br /&gt;
of 71 cm (28 inch) results in a px of 0.28 mm, while a &lt;br /&gt;
reading distance of 3.5 m (12 feet) requires a px of 1.4 &lt;br /&gt;
mm. &lt;/p&gt;
&lt;p&gt;[D] &lt;/p&gt;
&lt;p&gt;In the second image, an area of 1px by 1px is covered &lt;br /&gt;
by a single dot in a low-resolution device (a computer &lt;br /&gt;
screen), while the same area is covered by 16 dots in a &lt;br /&gt;
higher resolution device (such as a 400 dpi laser printer).&lt;/p&gt;
&lt;p&gt;[D]&lt;/p&gt;
&lt;p&gt;Child elements do not inherit the relative values &lt;br /&gt;
specified for their parent; they (generally) inherit the &lt;br /&gt;
computed values.&lt;/p&gt;
&lt;p&gt;Example(s):&lt;/p&gt;
&lt;p&gt;In the following rules, the computed 'text-indent' value of &lt;br /&gt;
H1 elements will be 36pt, not 45pt, if H1 is a child of the &lt;br /&gt;
BODY element. &lt;/p&gt;
&lt;p&gt;BODY {&lt;br /&gt;
font-size: 12pt;&lt;br /&gt;
text-indent: 3em;  /* i.e., 36pt */&lt;br /&gt;
}&lt;br /&gt;
H1 { font-size: 15pt }&lt;/p&gt;
&lt;p&gt;Absolute length units are only useful when the physical &lt;br /&gt;
properties of the output medium are known. The &lt;br /&gt;
absolute units are: &lt;/p&gt;
&lt;p&gt;in: inches -- 1 inch is equal to 2.54 centimeters. &lt;br /&gt;
cm: centimeters &lt;br /&gt;
mm: millimeters &lt;br /&gt;
pt: points -- the points used by CSS2 are equal to &lt;br /&gt;
1/72th of an inch. &lt;br /&gt;
pc: picas -- 1 pica is equal to 12 points. &lt;br /&gt;
Example(s):&lt;/p&gt;
&lt;p&gt;H1 { margin: 0.5in }      /* inches  */&lt;br /&gt;
H2 { line-height: 3cm }   /* centimeters */&lt;br /&gt;
H3 { word-spacing: 4mm }  /* millimeters */&lt;br /&gt;
H4 { font-size: 12pt }    /* points */&lt;br /&gt;
H4 { font-size: 1pc }     /* picas */&lt;/p&gt;
&lt;p&gt;In cases where the specified length cannot be &lt;br /&gt;
supported, user agents must approximate it in the &lt;br /&gt;
actual value.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Wed, 10 Aug 2005 16:43:00 -0000</pubDate><guid>https://sourceforge.netf95b132e1b71a4bd322918790653f3b0ffeff345</guid></item><item><title>4.3.1 Integers and real numbers</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/11/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Some value types may have integer values (denoted by &lt;br /&gt;
&amp;lt;integer&amp;gt;) or real number values (denoted by &lt;br /&gt;
&amp;lt;number&amp;gt;). Real numbers and integers are specified in &lt;br /&gt;
decimal notation only. An &amp;lt;integer&amp;gt; consists of one or &lt;br /&gt;
more digits "0" to "9". A &amp;lt;number&amp;gt; can either be an &lt;br /&gt;
&amp;lt;integer&amp;gt;, or it can be zero or more digits followed by a &lt;br /&gt;
dot (.) followed by one or more digits. Both integers and &lt;br /&gt;
real numbers may be preceded by a "-" or "+" to &lt;br /&gt;
indicate the sign. &lt;/p&gt;
&lt;p&gt;Note that many properties that allow an integer or real &lt;br /&gt;
number as a value actually restrict the value to some &lt;br /&gt;
range, often to a non-negative value.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Wed, 10 Aug 2005 16:39:16 -0000</pubDate><guid>https://sourceforge.netaf052a4c2107f99f4a04683cf9dff086fe29aed6</guid></item><item><title>4.2 Rules for handling parsing errors</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/10/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;In some cases, user agents must ignore part of an &lt;br /&gt;
illegal style sheet. This specification defines ignore to &lt;br /&gt;
mean that the user agent parses the illegal part (in order &lt;br /&gt;
to find its beginning and end), but otherwise acts as if it &lt;br /&gt;
had not been there. &lt;/p&gt;
&lt;p&gt;To ensure that new properties and new values for &lt;br /&gt;
existing properties can be added in the future, user &lt;br /&gt;
agents are required to obey the following rules when &lt;br /&gt;
they encounter the following scenarios:&lt;/p&gt;
&lt;p&gt;Unknown properties. User agents must ignore a &lt;br /&gt;
declaration with an unknown property. For example, if &lt;br /&gt;
the style sheet is: &lt;br /&gt;
H1 { color: red; rotation: 70minutes }&lt;/p&gt;
&lt;p&gt;the user agent will treat this as if the style sheet had &lt;br /&gt;
been &lt;/p&gt;
&lt;p&gt;H1 { color: red }&lt;/p&gt;
&lt;p&gt;Illegal values. User agents must ignore a declaration &lt;br /&gt;
with an illegal value. For example: &lt;br /&gt;
IMG { float: left }       /* correct CSS2 */&lt;br /&gt;
IMG { float: left here }  /* "here" is not a value of 'float' */&lt;br /&gt;
IMG { background: "red" } /* keywords cannot be quoted &lt;br /&gt;
in CSS2 */&lt;br /&gt;
IMG { border-width: 3 }   /* a unit must be specified for &lt;br /&gt;
length values */&lt;/p&gt;
&lt;p&gt;A CSS2 parser would honor the first rule and ignore the &lt;br /&gt;
rest, as if the style sheet had been: &lt;br /&gt;
IMG { float: left }&lt;br /&gt;
IMG { }&lt;br /&gt;
IMG { }&lt;br /&gt;
IMG { }&lt;/p&gt;
&lt;p&gt;A user agent conforming to a future CSS specification &lt;br /&gt;
may accept one or more of the other rules as well.&lt;/p&gt;
&lt;p&gt;Invalid at-keywords. User agents must ignore an invalid &lt;br /&gt;
at-keyword together with everything following it, up to &lt;br /&gt;
and including the next semicolon (;) or block ({...}), &lt;br /&gt;
whichever comes first. For example, consider the &lt;br /&gt;
following: &lt;br /&gt;
@three-dee {&lt;br /&gt;
@background-lighting {&lt;br /&gt;
azimuth: 30deg;&lt;br /&gt;
elevation: 190deg;&lt;br /&gt;
}&lt;br /&gt;
H1 { color: red }&lt;br /&gt;
}&lt;br /&gt;
H1 { color: blue }&lt;/p&gt;
&lt;p&gt;The '@three-dee' at-rule is not part of CSS2. Therefore, &lt;br /&gt;
the whole at-rule (up to, and including, the third right &lt;br /&gt;
curly brace) is ignored. A CSS2 user agent ignores it, &lt;br /&gt;
effectively reducing the style sheet to:&lt;/p&gt;
&lt;p&gt;H1 { color: blue }&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Wed, 10 Aug 2005 16:32:15 -0000</pubDate><guid>https://sourceforge.net5eccc3c39452b6e3a2a555f29082c91f6a3f57b8</guid></item><item><title>4.1.9 Comments</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/9/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Comments begin with the characters "/*" and end with &lt;br /&gt;
the characters "*/". They may occur anywhere between &lt;br /&gt;
tokens, and their contents have no influence on the &lt;br /&gt;
rendering. Comments may not be nested. &lt;/p&gt;
&lt;p&gt;CSS also allows the SGML comment delimiters ("&amp;lt;!--" &lt;br /&gt;
and "--&amp;gt;") in certain places, but they do not delimit CSS &lt;br /&gt;
comments. They are permitted so that style rules &lt;br /&gt;
appearing in an HTML source document (in the STYLE &lt;br /&gt;
element) may be hidden from pre-HTML 3.2 user &lt;br /&gt;
agents. See the HTML 4.0 specification ([HTML40]) for &lt;br /&gt;
more information. &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Sun, 07 Aug 2005 00:17:20 -0000</pubDate><guid>https://sourceforge.net00694f99bbd93fc6b5805400fb3c861420ded40c</guid></item><item><title>4.1.8 Declarations and properties</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/8/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;A declaration is either empty or consists of a property, &lt;br /&gt;
followed by a colon (:), followed by a value. Around each &lt;br /&gt;
of these there may be whitespace. &lt;/p&gt;
&lt;p&gt;Because of the way selectors work, multiple &lt;br /&gt;
declarations for the same selector may be organized &lt;br /&gt;
into semicolon (;) separated groups.&lt;/p&gt;
&lt;p&gt;Example(s):&lt;/p&gt;
&lt;p&gt;Thus, the following rules:&lt;/p&gt;
&lt;p&gt;H1 { font-weight: bold }&lt;br /&gt;
H1 { font-size: 12pt }&lt;br /&gt;
H1 { line-height: 14pt }&lt;br /&gt;
H1 { font-family: Helvetica }&lt;br /&gt;
H1 { font-variant: normal }&lt;br /&gt;
H1 { font-style: normal }&lt;/p&gt;
&lt;p&gt;are equivalent to:&lt;/p&gt;
&lt;p&gt;H1 {&lt;br /&gt;
font-weight: bold;&lt;br /&gt;
font-size: 12pt;&lt;br /&gt;
line-height: 14pt;&lt;br /&gt;
font-family: Helvetica;&lt;br /&gt;
font-variant: normal;&lt;br /&gt;
font-style: normal&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;A property is an identifier. Any character may occur in &lt;br /&gt;
the value, but parentheses ("( )"), brackets ("[ ]"), &lt;br /&gt;
braces ("{ }"), single quotes (') and double quotes (") &lt;br /&gt;
must come in matching pairs, and semicolons not in &lt;br /&gt;
strings must be escaped. Parentheses, brackets, and &lt;br /&gt;
braces may be nested. Inside the quotes, characters &lt;br /&gt;
are parsed as a string. &lt;/p&gt;
&lt;p&gt;The syntax of values is specified separately for each &lt;br /&gt;
property, but in any case, values are built from &lt;br /&gt;
identifiers, strings, numbers, lengths, percentages, &lt;br /&gt;
URIs, colors, angles, times, and frequencies. &lt;/p&gt;
&lt;p&gt;A user agent must ignore a declaration with an invalid &lt;br /&gt;
property name or an invalid value. Every CSS2 property &lt;br /&gt;
has its own syntactic and semantic restrictions on the &lt;br /&gt;
values it accepts. &lt;/p&gt;
&lt;p&gt;Illegal example(s):&lt;/p&gt;
&lt;p&gt;For example, assume a CSS2 parser encounters this &lt;br /&gt;
style sheet: &lt;/p&gt;
&lt;p&gt;H1 { color: red; font-style: 12pt }  /* Invalid value: 12pt */&lt;br /&gt;
P { color: blue;  font-vendor: any;  /* Invalid prop.: font-&lt;br /&gt;
vendor */&lt;br /&gt;
font-variant: small-caps }&lt;br /&gt;
EM EM { font-style: normal }&lt;/p&gt;
&lt;p&gt;The second declaration on the first line has an invalid &lt;br /&gt;
value '12pt'. The second declaration on the second line &lt;br /&gt;
contains an undefined property 'font-vendor'. The CSS2 &lt;br /&gt;
parser will ignore these declarations, effectively reducing &lt;br /&gt;
the style sheet to: &lt;/p&gt;
&lt;p&gt;H1 { color: red; }&lt;br /&gt;
P { color: blue;  font-variant: small-caps }&lt;br /&gt;
EM EM { font-style: normal }&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Sun, 07 Aug 2005 00:15:43 -0000</pubDate><guid>https://sourceforge.net3e2fec025042636d82cf4d57a280c8c89f58b707</guid></item><item><title>4.1.7 Rule sets, declaration blocks, and selectors</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/7/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;A rule set (also called "rule") consists of a selector &lt;br /&gt;
followed by a declaration block. &lt;/p&gt;
&lt;p&gt;A declaration-block (also called a {}-block in the &lt;br /&gt;
following text) starts with a left curly brace ({) and ends &lt;br /&gt;
with the matching right curly brace (}). In between there &lt;br /&gt;
must be a list of zero or more semicolon-separated (;) &lt;br /&gt;
declarations. &lt;/p&gt;
&lt;p&gt;The selector (see also the section on selectors) &lt;br /&gt;
consists of everything up to (but not including) the first &lt;br /&gt;
left curly brace ({). A selector always goes together with &lt;br /&gt;
a {}-block. When a user agent can't parse the selector &lt;br /&gt;
(i.e., it is not valid CSS2), it must ignore the {}-block as &lt;br /&gt;
well. &lt;/p&gt;
&lt;p&gt;CSS2 gives a special meaning to the comma (,) in &lt;br /&gt;
selectors. However, since it is not known if the comma &lt;br /&gt;
may acquire other meanings in future versions of CSS, &lt;br /&gt;
the whole statement should be ignored if there is an &lt;br /&gt;
error anywhere in the selector, even though the rest of &lt;br /&gt;
the selector may look reasonable in CSS2. &lt;/p&gt;
&lt;p&gt;Illegal example(s):&lt;/p&gt;
&lt;p&gt;For example, since the "&amp;amp;" is not a valid token in a &lt;br /&gt;
CSS2 selector, a CSS2 user agent must ignore the &lt;br /&gt;
whole second line, and not set the color of H3 to red: &lt;/p&gt;
&lt;p&gt;H1, H2 {color: green }&lt;br /&gt;
H3, H4 &amp;amp; H5 {color: red }&lt;br /&gt;
H6 {color: black }&lt;/p&gt;
&lt;p&gt;Example(s):&lt;/p&gt;
&lt;p&gt;Here is a more complex example. The first two pairs of &lt;br /&gt;
curly braces are inside a string, and do not mark the &lt;br /&gt;
end of the selector. This is a valid CSS2 statement. &lt;/p&gt;
&lt;p&gt;P[example="public class foo\
{\
private int x;\
\
foo(int x) {\
this.x = x;\
}\
\
}"] { color: red }&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Sat, 06 Aug 2005 21:53:24 -0000</pubDate><guid>https://sourceforge.net6f796382f52c7cf96ea6207544c0fe28c22635b6</guid></item><item><title>4.1.6 Blocks</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/6/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;A block starts with a left curly brace ({) and ends with &lt;br /&gt;
the matching right curly brace (}). In between there may &lt;br /&gt;
be any characters, except that parentheses (( )), &lt;br /&gt;
brackets ([ ]) and braces ({ }) must always occur in &lt;br /&gt;
matching pairs and may be nested. Single (') and &lt;br /&gt;
double quotes (") must also occur in matching pairs, &lt;br /&gt;
and characters between them are parsed as a string. &lt;br /&gt;
See Tokenization above for the definition of a string. &lt;/p&gt;
&lt;p&gt;Illegal example(s):&lt;/p&gt;
&lt;p&gt;Here is an example of a block. Note that the right brace &lt;br /&gt;
between the double quotes does not match the opening &lt;br /&gt;
brace of the block, and that the second single quote is &lt;br /&gt;
an escaped character, and thus doesn't match the first &lt;br /&gt;
single quote: &lt;/p&gt;
&lt;p&gt;{ causta: "}" + ({7} * '\'') }&lt;/p&gt;
&lt;p&gt;Note that the above rule is not valid CSS2, but it is still &lt;br /&gt;
a block as defined above.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Sat, 06 Aug 2005 21:45:54 -0000</pubDate><guid>https://sourceforge.netaaf26c7f260cb5603dffb66d6c8b79f547f91aec</guid></item><item><title>4.1.5 At-rules</title><link>https://sourceforge.net/p/vbcssparser/css2-compliance/5/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;At-rules start with an at-keyword, an '@' character &lt;br /&gt;
followed immediately by an identifier (for &lt;br /&gt;
example, '@import', '@page'). &lt;/p&gt;
&lt;p&gt;An at-rule consists of everything up to and including the &lt;br /&gt;
next semicolon (;) or the next block, whichever comes &lt;br /&gt;
first. A CSS user agent that encounters an &lt;br /&gt;
unrecognized at-rule must ignore the whole of the at-rule &lt;br /&gt;
and continue parsing after it. &lt;/p&gt;
&lt;p&gt;CSS2 user agents must ignore any '@import' rule that &lt;br /&gt;
occurs inside a block or that doesn't precede all rule &lt;br /&gt;
sets. &lt;/p&gt;
&lt;p&gt;Illegal example(s):&lt;/p&gt;
&lt;p&gt;Assume, for example, that a CSS2 parser encounters &lt;br /&gt;
this style sheet: &lt;/p&gt;
&lt;p&gt;@import "subs.css";&lt;br /&gt;
H1 { color: blue }&lt;br /&gt;
@import "list.css";&lt;/p&gt;
&lt;p&gt;The second '@import' is illegal according to CSS2. The &lt;br /&gt;
CSS2 parser ignores the whole at-rule, effectively &lt;br /&gt;
reducing the style sheet to: &lt;/p&gt;
&lt;p&gt;@import "subs.css";&lt;br /&gt;
H1 { color: blue }&lt;/p&gt;
&lt;p&gt;Illegal example(s):&lt;/p&gt;
&lt;p&gt;In the following example, the second '@import' rule is &lt;br /&gt;
invalid, since it occurs inside a '@media' block. &lt;/p&gt;
&lt;p&gt;@import "subs.css";&lt;br /&gt;
@media print {&lt;br /&gt;
@import "print-main.css";&lt;br /&gt;
BODY { font-size: 10pt }&lt;br /&gt;
}&lt;br /&gt;
H1 {color: blue }&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt</dc:creator><pubDate>Sat, 06 Aug 2005 21:40:47 -0000</pubDate><guid>https://sourceforge.netd356f30d6248ba89257793c006c46424fdeaa7d6</guid></item></channel></rss>