History of CSS
CSS Version History
CSS1: the first version of CSS (CSS level 1) was officially realeased and published on the 7th of December 1996. Håkon Wium Lie and Bas Bos are credited as the original developers. The capabilities supported are:
- Font properties such as typeface and emphasis
- Color of text, backgrounds, and other elements
- Text attributes such as spacing between words, letters, and lines of text
- Alignment of text, images, tables and other elements
- Margin, border, padding, and positioning for most elements
- Unique identification and generic classification of groups of attributes
The W3C no longer maintains the CSS 1 Recommendation.
CSS 2: (CSS level 2) CSS level 2 specification was developed by the W3C and published as a recommendation in May 1998. CSS 2 was released as a superset of CSS 1 and it includes a number of new capabilities like:
- absolute, relative, and fixed positioning of elements and z-index
- the concept of media types, support for aural style sheets (which were later replaced by the CSS 3 speech modules)
- and bidirectional text, and new font properties such as shadows.
CSS 2.1: (CSS level 2 revision 1) CSS 2.1 recommendations was proposed on 12 April 2011 and was finally published as a W3C Recommendation on 7 June 2011. It fixes errors in CSS 2, removes poorly supported or not fully interoperable features and adds already-implemented browser extensions to the specification and preservation for backward compatibility.
CSS 3: (CSS level 3) CSS3, work on CSS 3 started in 1999 around the time CSS level 2 was published. CSS 3 is divided into several separate documents called "modules". Four of these modules have been published, and they are:
- 2012-06-19: Media Queries
- 2011-09-29: Namespaces
- 2011-09-29: Selectors Level 3
- 2011-06-07: Color
Some modules (including Backgrounds and Borders and Multi-column Layout among others) have Candidate Recommendation (CR) status and are considered moderately stable. At CR stage, implementations are advised to drop vendor prefixes.
Summary of all module-specifications:
|Module||Specification Title||Status & Date|
|css3-background||CSS Backgrounds and Borders Module Level 3||Candidate Recommendation, September 2014|
|css3-box||CSS basic box model||Working Draft, August 2007|
|css3-cascade-3||CSS Cascading and Inheritance Level 3||Candidate Recommendation, October 2013|
|css3-color||CSS Color Module Level 3||Recommendation, June 2011|
|css3-content||CSS3 Generated and Replaced Content Module||Working Draft, May 2003|
|css-fonts-3||CSS Fonts Module Level 3||Candidate Recommendation, October 2013|
|css3-gcpm||CSS Generated Content for Paged Media Module||Working Draft, May 2014|
|css3-layout||CSS Template Layout Module||Working Draft, November 2011|
|css3-marquee||CSS Marquee Module Level 3||Candidate Recommendation, December 2008|
|css3-mediaqueries||Media Queries||Recommendation, June 2012|
|css3-page||CSS Paged Media Module||Level 3 Working Draft, March 2013|
|css3-selectors||Selectors Level 3||Recommendation, September 2011|
|css3-ui||CSS Basic User Interface Module Level 3 (CSS3 UI)||Working Draft, January 2012|
Because not all browsers correctly parse CSS code, developed coding techniques known as CSS hacks can either filter specific browsers or target specific browsers (generally both are known as CSS filters). The former can be defined as CSS filtering hacks and the latter can be defined as CSS targeting hacks. Both can be used to hide or show parts of the CSS to different browsers. This is achieved either by exploiting CSS-handling quirks or bugs in the browser, or by taking advantage of lack of support for parts of the CSS specifications. Using CSS filters, some designers have gone as far as delivering different CSS to certain browsers to ensure designs render as expected.
CSS frameworks are pre-prepared libraries that are meant to allow for easier, more standards-compliant styling of web pages using the Cascading Style Sheets language. CSS frameworks include
- and Cascade Framework.
Like programming and scripting language libraries, CSS frameworks are usually incorporated as external .css sheets referenced in the HTML <head>. They provide a number of ready-made options for designing and laying out the web page. While many of these frameworks have been published, some authors use them mostly for rapid prototyping, or for learning from.