CSS
Cascading Style Sheets (CSS) is a style sheet language used
for describing the presentation semantics (the look and formatting) of a
document written in a markup language. Its most common application is to style
web pages written in HTML and XHTML, but the language can also be applied to
any kind of XML document, including plain XML, SVG and XUL.
CSS is designed primarily to enable the separation of
document content (written in HTML or a similar markup language) from document
presentation, including elements such as the layout, colors, and fonts. This
separation can improve content accessibility, provide more flexibility and
control in the specification of presentation characteristics, enable multiple
pages to share formatting, and reduce complexity and repetition in the
structural content (such as by allowing for tableless web design). CSS can also
allow the same markup page to be presented in different styles for different
rendering methods, such as on-screen, in print, by voice (when read out by a
speech-based browser or screen reader) and on Braille-based, tactile devices.
It can also be used to allow the web page to display differently depending on
the screen size or device on which it is being viewed. While the author of a
document typically links that document to a CSS file, readers can use a
different style sheet, perhaps one on their own computer, to override the one
the author has specified.
CSS specifies a priority scheme to determine which style
rules apply if more than one rule matches against a particular element. In this
so-called cascade, priorities or weights are calculated and assigned to rules,
so that the results are predictable.
The CSS specifications are maintained by the World Wide Web
Consortium (W3C). Internet media type (MIME type) text/css is registered for
use with CSS by RFC 2318 (March 1998), and they also operate a free CSS
validation service.
Use
Prior to CSS, nearly all of the presentational attributes of
HTML documents were contained within the HTML markup; all font colors,
background styles, element alignments, borders and sizes had to be explicitly
described, often repeatedly, within the HTML. CSS allows authors to move much
of that information to another file, the style sheet, resulting in considerably
simpler HTML.
Headings (h1 elements), sub-headings (h2), sub-sub-headings
(h3), etc., are defined structurally using HTML. In print and on the screen,
choice of font, size, color and emphasis for these elements is presentational.
Prior to CSS, document authors who wanted to assign such
typographic characteristics to, say, all h2 headings had to repeat HTML
presentational markup for each occurrence of that heading type. This made
documents more complex, larger, and more difficult to maintain. CSS allows the
separation of presentation from structure. CSS can define color, font, text
alignment, size, borders, spacing, layout and many other typographic
characteristics, and can do so independently for on-screen and printed views.
CSS also defines non-visual styles such as the speed and emphasis with which
text is read out by aural text readers. The W3C has now deprecated the use of
all presentational HTML markup.
Sources
CSS
information can be provided from various sources. CSS style information can be
in a separate document or it can be embedded into an HTML document. Multiple
style sheets can be imported. Different styles can be applied depending on the
output device being used; for example, the screen version can be quite
different from the printed version, so that authors can tailor the presentation
appropriately for each medium.
The style
sheet with the highest priority controls the content display. Declarations not
set in the highest priority source are passed on to a source of lower priority,
such as the user agent style. This process is called cascading.
One of the
goals of CSS is also to allow users greater control over presentation. Someone
who finds red italic headings difficult to read may apply a different style
sheet. Depending on the browser and the web site, a user may choose from
various style sheets provided by the designers, or may remove all added styles
and view the site using the browser's default styling, or may override just the
red italic heading style without altering other attributes.
History
Style
sheets have existed in one form or another since the beginnings of Standard
Generalized Markup Language (SGML) in the 1980s. Cascading Style Sheets were
developed as a means for creating a consistent approach to providing style
information for web documents.
As HTML
grew, it came to encompass a wider variety of stylistic capabilities to meet
the demands of web developers. This evolution gave the designer more control
over site appearance, at the cost of more complex HTML. Variations in web
browser implementations, such as ViolaWWW and WorldWideWeb, made consistent
site appearance difficult, and users had less control over how web content was
displayed. Robert Cailliau wanted to separate the structure from the
presentation. The ideal way would be to give the user different options and
transferring three different kinds of style sheets: one for printing, one for
the presentation on the screen and one for the editor feature.
To improve
web presentation capabilities, nine different style sheet languages were
proposed to the World Wide Web Consortium's (W3C) www-style mailing list. Of
the nine proposals, two were chosen as the foundation for what became CSS:
Cascading HTML Style Sheets (CHSS) and Stream-based Style Sheet Proposal (SSP).
CHSS, a language that has some resemblance to today's CSS, was proposed by
HÃ¥kon Wium Lie in October 1994.
Bert Bos was working on a browser called Argo,
which used its own style sheet language called SSP. Lie and Yves Lafon joined Dave Raggett to
expand the Arena browser for supporting CSS as a testbed application for the
W3C. Lie and Bos worked together to develop the CSS standard (the 'H' was
removed from the name because these style sheets could also be applied to other
markup languages besides HTML).
Unlike
existing style languages like DSSSL and FOSI, CSS allowed a document's style to
be influenced by multiple style sheets. One style sheet could inherit or
"cascade" from another, permitting a mixture of stylistic preferences
controlled equally by the site designer and user.
Lie's
proposal was presented at the "Mosaic and the Web" conference (later
called WWW2) in Chicago, Illinois in 1994, and again with Bert Bos in 1995.
Around this time the W3C was already being established, and took an interest in
the development of CSS. It organized a workshop toward that end chaired by
Steven Pemberton. This resulted in W3C adding work on CSS to the deliverables
of the HTML editorial review board (ERB). Lie and Bos were the primary
technical staff on this aspect of the project, with additional members,
including Thomas Reardon of Microsoft, participating as well. In August 1996 Netscape
Communication Corporation presented an alternative style sheet language called
JavaScript Style Sheets (JSSS). The spec was never finished and is deprecated.
By the end of 1996, CSS was ready to become official, and the CSS level 1
Recommendation was published in December.
Development
of HTML, CSS, and the DOM had all been taking place in one group, the HTML
Editorial Review Board (ERB). Early in 1997, the ERB was split into three
working groups: HTML Working group, chaired by Dan Connolly of W3C; DOM Working
group, chaired by Lauren Wood of SoftQuad; and CSS Working group, chaired by
Chris Lilley of W3C.
The CSS
Working Group began tackling issues that had not been addressed with CSS level
1, resulting in the creation of CSS level 2 on November 4, 1997. It was
published as a W3C Recommendation on May 12, 1998. CSS level 3, which was
started in 1998, is still under development as of 2009.
In 2005 the
CSS Working Groups decided to enforce the requirements for standards more
strictly. This meant that already published standards like CSS 2.1, CSS 3
Selectors and CSS 3 Text were pulled back from Candidate Recommendation to
Working Draft level.
No comments:
Post a Comment