HTML5 is a language for structuring and presenting content for the World Wide Web, a core technology of the Internet. It is the latest revision of the HTMLstandard (originally created in 1990) and currently remains under development HP 448007-001 battery.
Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (web browsers, parsers etc.).
Following its immediate predecessors HTML 4.01 and XHTML 1.1 HP Pavilion DV7 battery ,
HTML5 is a response to the observation that the HTML and XHTML in common use on the World Wide Web is a mixture of features introduced by various specifications, along with those introduced by software products such as web browsers, those established by common practice, and the many syntax errors in existing web documents HP DV6-1120SA battery .
It is also an attempt to define a single markup languagethat can be written in either HTML or XHTML syntax. It includes detailed processing models to encourage more interoperable implementations; it extends, improves and rationalises the markup available for documents, and introduces markup and APIs for complex web applications HP DV6-1210SA battery .
In particular, HTML5 adds many new syntactical features. These include the
<canvas> elements, as well as the integration ofSVG content. These features are designed to make it easy to include and handle multimedia and graphical content on the web without having to resort to proprietary plugins and APIs Compaq CQ50 battery .
Other new elements, such as
<nav>, are designed to enrich the semanticcontent of documents. New attributes have been introduced for the same purpose, while some elements and attributes have been removed. Some elements, such as
<menu> have been changed, redefined or standardised HP Pavilion DV8 battery .
The APIs and DOM are no longer afterthoughts, but are fundamental parts of the HTML5 specification. HTML5 also defines in some detail the required processing for invalid documents, so that syntax errors will be treated uniformly by all conforming browsers and other user agents Sony VGP-BPS13 battery .
The Web Hypertext Application Technology Working Group (WHATWG) began work on the new standard in 2004, when the World Wide Web Consortium(W3C) was focusing future developments on XHTML 2.0, and HTML 4.01 had not been updated since 2000 HP DV9700 battery .
In 2009, the W3C allowed the XHTML 2.0 Working Group's charter to expire, and decided not to renew it. W3C and WHATWG are currently working together on the development of HTML5 Compaq CQ35-100 battery .
Even though HTML5 has been well-known among web developers for years, it became the topic of mainstream media in April 2010 after Apple Inc's CEO Steve Jobs issued a public letter titled "Thoughts on Flash" where he concludes that with the development of HTML5, Adobe Flash is no longer necessary to watch video or consume any kind of web content Sony VGP-BPS11 battery
This sparked a debate in web development circles where some suggested that while HTML5 provides enhanced functionality developers must consider the varying browser support of the different parts of the standard as well as other functionality differences between HTML5 and Flash HP Pavilion DV6-1223EO Battery .
W3C standardization process
WHATWG started work on the specification in June 2004 under the name Web Applications 1.0. As of January 2011, the specification is in the Draft Standard state at the WHATWG, and in Working Draft state at the W3C. Ian Hickson of Google, Inc., is the editor of HTML5 Sony Vaio VGN-CR190E/L Battery .
The HTML5 specification was adopted as the starting point of the work of the new HTML working group of the World Wide Web Consortium (W3C) in 2007. This working group published the First Public Working Draft of the specification on January 22, 2008Sony VGN-CR11M Battery .
The specification is an ongoing work, and is expected to remain so for many years, although parts of HTML5 are going to be finished and implemented in browsers before the whole specification reaches final Recommendation status.
According to the W3C timetable, it was estimated that HTML5 would reach W3C Recommendation by late 2010 Sony VGN-NR11Z Battery .
However, the First Public Working Draft estimate was missed by 8 months, and Last Call and Candidate Recommendation were expected to be reached in 2008, but as of January 2011 HTML5 is still at Working Draft stage in the W3C. HTML5 has been at Last Call in the WHATWG since October 2009 Sony VGN-NR11S Battery .
Ian Hickson, editor of the HTML5 specification, expects the specification to reach the Candidate Recommendation stage during 2012. The criterion for the specification becoming a W3C Recommendation is “two 100% complete and fully interoperable implementations” Sony VGN-NR110E Battery .
In an interview with TechRepublic, Hickson guessed that this would occur in the year 2022 or later. However, many parts of the specification are stable and may be implemented in products:
In December 2009, WHATWG switched to an unversioned development model for the HTML5 specification. W3C will still continue with publishing a snapshot of the HTML5 specification Sony VGN-NR110E/T Battery .
On 14 February 2011 W3C extended the charter of its HTML Working Group with clear milestones for HTML5. The Working Group is expected to advance HTML5 to "Last Call," an invitation to communities inside and outside W3C to confirm the technical soundness of the specification, in May 2011 Sony VGN-NR110E/S Battery .
The group will then shift focus to gathering implementation experience. W3C is also developing a comprehensive test suite to achieve broad interoperability for the full specification by 2014, which is now the target date for Recommendation
HTML5 introduces a number of new elements and attributes that reflect typical usage on modern websites Sony VGN-NR110E/W Battery .
Some of them are semantic replacements for common uses of generic block (
<div>) and inline (
<span>) elements, for example
<nav> (website navigation block),
<footer> (usually referring to bottom of web page or to last lines of HTML code), or
<video> instead of
<object> Sony VGN-CR11SR Battery .
Some deprecated elements from HTML 4.01 have been dropped, including purely presentational elements such as
The HTML5 syntax is no longer based on SGML despite the similarity of its markup. It has, however, been designed to be backward compatible with common parsing of older versions of HTML. It comes with a new introductory line that looks like an SGML document type declaration,
<!DOCTYPE html>, which triggers the standards-compliant rendering mode Sony VGN-CR11S Battery .
As of 5 January 2009, HTML5 also includes Web Forms 2.0, a previously separate WHATWG specification.
In addition to specifying markup, HTML5 specifies scripting application programming interfaces (APIs) Sony VGN-CR11M Battery .
Existing document object model (DOM) interfaces are extended and de facto features documented. There are also new APIs, such as:
- The canvas element for immediate mode 2D drawing. See Canvas 2D API Specification 1.0 specification
- Timed media playback Sony VGN-CR11E Battery
- Offline storage database (offline web applications)
- Document editing
- Cross-document messaging
- Browser history management Sony VGN-CR21E Battery
- MIME type and protocol handler registration
Not all of the above technologies are included in the W3C HTML5 specification, though they are in the WHATWG HTML specification Sony VGN-CR21S Battery .
Some related technologies, which are not part of either the W3C HTML5 or the WHATWG HTML specification, are as follows. The W3C publishes specifications for these separately.
- Web SQL Database, a local SQL Database Sony VGN-CR21Z Battery .
- The Indexed Database API, an indexed hierarchical key-value store (formerly WebSimpleDB).
- File API, Handle file uploads and file manipulation.
- Directories and System. This API is intended to satisfy client-side-storage use cases not well served by databases.
- File Writer. An API for writing to files from web applications Sony VGN-CR21SR Battery .
XHTML5 is the XML serialization of HTML5. XML documents must be served with an XML Internet media type such as
application/xml Sony VGN-CR31SR Battery .
XHTML5 requires XML’s strict, well-formed syntax. In XHTML5 the HTML5 doctype
html is optional and may simply be omitted.
An HTML5 (text/html) browser will be flexible in handling incorrect syntax. HTML5 is designed so that old browsers can safely ignore new HTML5 constructs Sony VGN-CR31S Battery .
In contrast to HTML 4.01, the HTML5 specification gives detailed rules for lexing and parsing, with the intent that different compliant browsers will produce the same result in the case of incorrect syntax. Although HTML5 now defines a consistent behavior for "tag soup" documents, those documents are not regarded as conforming to the HTML5 standard Sony VGN-CR31E Battery .
Differences with HTML 4.01 and XHTML 1.x
The following is a cursory list of differences and some specific examples.
- New parsing rules: oriented towards flexible parsing and compatibility; not based on SGML
- Ability to use inline SVG and MathML in
text/html Sony VGN-CR31Z Battery
- New elements:
- New types of form controls:
dates and times,
- New attributes:
script) Sony VGN-CR41Z Battery
- Global attributes (that can be applied for every element):
data-*(custom data attributes)
- Deprecated elements will be dropped altogether:
dev.w3.org provides the latest Editors Draft (last dated 13 January 2011) of HTML5 differences from HTML4,which provides a complete outline of additions, removals and changes between HTML5 Sony VGN-CR41S Battery .
On January 18, 2011, the W3C introduced a logo to represent the use of or interest in HTML5. Unlike other badges previously issued by the W3C, it does not imply validity or conformance to a certain standard. W3C hopes to make it the official logo for HTML5 in the first quarter of 2011 Sony VGN-CR41E Battery .
When initially presenting it to the public, the W3C announced the HTML5 logo as a "general-purpose visual identity for a broad set of open web technologies, including HTML5, CSS, SVG, WOFF, and others". Some web standard advocates, including The Web Standards Project, criticised that definition of "HTML5" as an umbrella term Sony VGN-CR41SR Battery ,
pointing out the blurring of terminology and the potential for miscommunication. Three days later, the W3C responded to community feedback and changed the logo's definition, dropping the enumeration of related technologies. The W3C then said the logo "represents HTML5, the cornerstone for modern Web applications Sony VGN-CR42ZR Battery ."
HTML5 video is an element introduced in the HTML5 draft specification for the purpose of playing videos or movies , partially replacing the object element.
Adobe Flash Player is widely used to embed video on web sites such as YouTube, since many web browsers have Adobe's Flash Player pre-installed (with exceptions such as the browsers on the Apple iPhone and iPad and on Android 2.1 or less) Sony VGN-CR42Z Battery .
HTML5 video is intended by its creators to become the new standard way to show video online, but has been hampered by lack of agreement as to which video formats should be supported in the video tag.
Supported video formats
The current HTML5 draft specification does not specify which video formats browsers should support in the video tag Sony VGN-CR42S Battery .
User agents are free to support any video formats they feel are appropriate.
User agents should support Theora video and Vorbis audio, as well as the Ogg container format.
In cases where decoders are not built into the browser, the format support will be dictated by the multimedia framework of the operating system Sony VGN-CR42E Battery .
Consequently, browser support for multimedia formats are influenced by the problem that DirectShow and QuickTime do not support free formats like Theora by default, whereas GStreamer and Phonon cannot safely support other than free formats by default on the free operating systems that they are intended to run on Sony Vaio VGN-CR11S/L Battery .
As of April 2010, in the wake of Apple iPad launch, a number of high-profile sites have started to serve H.264 HTML5 video instead of Flash for user-agents identifying as iPad Sony Vaio VGN-CR190E/P Battery .
As of May 2010, HTML5 video is not currently as widespread as Flash videos, though recent rollouts of experimental HTML5-based video players from DailyMotion (using Ogg Theora and Vorbis format), YouTube (using the H.264 and WebM formats) and Vimeo (using the H.264 format) suggest that interest in adopting HTML5 video is increasing Sony Vaio VGN-CR190E/R Battery .
Hulu also has not adopted HTML5 video due to the inability of providing the user with adaptive bandwidth videos, securing the producer's content, and providing advertisers with data.
On January 11, 2011, Google's Chromium Project announced on their blog that support for closed codecs (particularly H.264) would be removed from future releases of Chrome Sony Vaio VGN-CR21/B Battery .
The Chromium announcement specifically mentioned that this removal was an effort to increase the use of license-free HTML5 and the <video> tag, driving web-wide adoption of the open-source codecs VP8 and Theora.
Video providers and HTML5
Some major video-providing websites have announced decisions to continue using technologies other than HTML5 video Sony Vaio VGN-CR21E/L Battery .
Hulu stated that HTML5 video lacks the ability to "secure the content, handle reporting for our advertisers, render the video using a high performance codec to ensure premium visual quality, communicate back with the server to determine how long to buffer and what bitrate to stream, and dozens of other things that aren't necessarily visible to the end user Sony Vaio VGN-CR21E/P Battery ."
Netflix stated that there are a number of issues preventing them from using HTML5 video: acceptable A/V container formats; acceptable audio and video codecs; streaming protocol; a way for the streaming protocol to adapt to available bandwidth Sony Vaio VGN-CR21E/W Battery ;
a way of conveying information about available streams and other parameters to the streaming player module; a way of supporting protected content; and a way of exposing all this functionality into HTML5.
The following tables compare support of HTML5 differences from HTML 4 for a number of layout engines Sony Vaio VGN-CR21S/L Battery .
The specification is still a working draft, not a W3C recommendation, and thus not stable. Unless otherwise specified in footnotes, comparisons are based on the stable versions of the programs without any add-ons, extensions or external programs.
Microdata is a WHATWG HTML5 specification used to nest semantics within existing content on web pages Sony Vaio VGN-CR21S/P Battery .
Search engines, web crawlers, and browserscan extract and process Microdata from a web page and use it to provide a richer browsing experience for users. Microdata use a supporting vocabulary to describe an item and name-value pairs to assign values to its properties Sony Vaio VGN-CR21S/W Battery .
Microdata helps technologies such as search engines and web crawlers better understand what information is contained in a web page, providing better search results. Microdata is an attempt to provide a simpler way of annotating HTML elements with machine readable tags than the similar approaches of using RDFa and Microformats Sony Vaio VGN-CR21Z/N Battery .
Microdata vocabularies provide the semantics, or meaning of an Item. Web developers can design a custom vocabulary or use vocabularies available on the web. A collection of commonly used (and Google Supported) Microdata vocabularies located at http://data-vocabulary.org which include Sony Vaio VGN-CR21Z/R Battery :
Person, Event,Organization, Product, Review, Review-aggregate, Breadcrumb, Offer, Offer-aggregate. For some purposes, an ad-hoc vocabulary is adequate. For others, a vocabulary will need to be designed. Where possible, authors are encouraged to re-use existing vocabularies, as this makes content re-use easier Sony Vaio VGN-CR220E/R Battery .
Microdata Global Attributes
Itemscope– Creates the Item and indicates that descendants of this element contain information about it. This attribute precedes the
itemtypeattribute in the HTML element’s tag.
Itemtype– A valid URL of a vocabulary that describes the item and its properties context Sony Vaio VGN-CR23/B Battery .
ItemId– Indicates a unique identifier of the item in the vocabulary.
Itemprop– Indicates that its containing tag holds the value of the specified item property. The properties name and value context are described by the items vocabulary Sony Vaio VGN-CR23/P Battery .
- Properties values usually consist of string values, but can also use URL's using the a element and its
imgelement and its
srcattribute, or other elements that link to or embed external resources Sony Vaio VGN-CR23/R Battery .
Itemref- Properties that are not descendants of the element with the
itemscopeattribute can be associated with the item using this attribute. Provides a list of elements to web crawlers to find additional property values of the item elsewhere in the document Sony Vaio VGN-CR23/L Battery .
Cascading Style Sheets (CSS) is a style sheet language used to describe the presentation semantics (the look and formatting) of a document written in amarkup 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 XMLdocument, including plain XML, SVG and XUL HP Pavilion DM3 battery .
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 HP Pavilion DM4 battery ,
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 HP Pavilion DV6-1210SA battery ,
by voice (when read out by a speech-based browser or screen reader) and on Braille-based, tactile devices. While the author of a document typically links that document to a CSS style sheet, readers can use a different style sheet, perhaps one on their own computer, to override the one the author has specified Dell N3010 battery .
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) Dell Inspiron N4010 battery .
Internet media type (MIME type)
text/css is registered for use with CSS by RFC 2318 (March 1998).
CSS has a simple syntax and uses a number of English keywords to specify the names of various style properties Dell INSPIRON 9100 battery .
A style sheet consists of a list of rules. Each rule or rule-set consists of one or more selectors and a declaration block. A declaration-block consists of a list ofdeclarations in braces. Each declaration itself consists of a property, a colon (
:), a value. If there are multiple declarations in a block, a semi-colon (
;) must be inserted to separate each declaration Dell XPS 1340 battery .
In CSS, selectors are used to declare which of the markup elements a style applies to, a kind of match expression. Selectors may apply to all elements of a specific type, or only those elements that match a certain attribute; elements may be matched depending on how they are placed relative to each other in the markup code, or on how they are nested within the Document Object Model Dell Inspiron 1464 battery .
Pseudo-classes are another form of specification used in CSS to identify markup elements, and in some cases, specific user actions to which a particular declaration block applies. An often-used example is the
:hover pseudo-class that applies a style only when the user 'points to' the visible element, usually by holding the mouse cursor over it Dell Inspiron 1764 battery .
It is appended to a selector as in
#elementid:hover. Other pseudo-classes and pseudo-elements are, for example,
:before. A special pseudo-class is
A pseudo-class selects entire elements, such as
:visited, whereas a pseudo-element makes a selection that may consist of partial elements, such as
:first-letter Dell Inspiron 1564 battery .
Selectors may be combined in other ways too, especially in CSS 2.1, to achieve greater specificity and flexibility.
Here is an example summing up the rules above:
Prior to CSS, nearly all of the presentational attributes of HTML documents were contained within the HTML markup Dell Inspiron 1720 battery ;
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 a separate style sheet resulting in considerably simpler HTML markup Dell Inspiron Mini 12 battery .
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 use the HTML
font and other presentational elements for each occurrence of that heading type Dell LATITUDE D800 battery .
The additional presentational markup in the HTML made documents more complex, and generally more difficult to maintain. In CSS, presentation is separated from structure. In print, CSS can define color, font, text alignment, size, borders, spacing, layout and many other typographic characteristics Dell Inspiron 6400 AC Adapter .
It 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 now considers the advantages of CSS for defining all aspects of the presentation of HTML pages to be superior to other methods SONY VAIO VGN-FWZJ/H Battery .
It has therefore deprecated the use of all the original presentational HTML markup.
CSS information can be provided by various sources. CSS style information can be either attached as a separate document or embedded in the HTML document. Multiple style sheets can be imported SONY VAIO VGN-FW41M/H Battery .
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.
Priority scheme for CSS sources (from highest to lowest priority) SONY VAIO VGN-FW37J Battery :
- Author styles (provided by the web page author), in the form of:
- Inline styles, inside the HTML document, style information on a single element, specified using the "style" attribute
- Embedded style, blocks of CSS information inside the HTML itself
- External style sheets, i.e., a separate CSS file referenced from the document SONY VAIO VGN-FW90NS Battery
- User style:
- A local CSS file the user specifies with a browser option, which acts as an override applied to all documents
- User agent style
- Default styles applied by the user agent, i.e., the browser's default settings for element presentation SONY VAIO VGN-FW83XS Battery
The style sheet with the highest priority controls the content display. Declarations not set in the highest priority source are passed on by a source of lower priority such as the user agent style. This process is called cascading SONY VAIO VGN-FW83JS Battery .
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 their browser and the web site, a user may choose from various style sheets provided by the designers SONY VAIO VGN-FW30B Battery ,
may remove all added style and view the site using the browser's default styling, or may override just the red italic heading style without altering other attributes.
Such a file is stored locally and is applicable if that has been specified in the browser options. "!important" means that it prevails over the author specifications SONY VAIO VGN-AW41MF/H Battery .
Style sheets have existed in one form or another since the beginnings of SGML in the 1970s. Cascading Style Sheets were developed as a means for creating a consistent approach to providing style information for web documents SONY VAIO VGN-AW41MF Battery .
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 but at the cost of HTML becoming more complex to write and maintain. Variations in web browser implementations i.e SONY VAIO VGN-AW41JF/H Battery .
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 SONY VAIO VGN-FW38M Battery :
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 SONY VAIO VGN-FW31Z Battery .
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 SONY VAIO VGN-FW31M Battery .
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 SONY VAIO VGN-FW31B Battery
(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 SONY VAIO VGN-FW31E Battery .
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 SONY VAIO VGN-FW31J Battery .
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) Sony VGP-BPS21 Battery .
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) Sony VGP-BPS21/S Battery .
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 Sony VGP-BPS21A/B Battery .
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 SONY VGP-BPS21 Battery .
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.
Difficulty with adoption
Although the CSS1 specification was completed in 1996 and Microsoft's Internet Explorer 3 was released in that year featuring some limited support for CSS SONY VGP-BPS21A Battery ,
it was more than three years before any web browser achieved near-full implementation of the specification. Internet Explorer 5.0 for the Macintosh, shipped in March 2000, was the first browser to have full (better than 99 percent) CSS1 support, surpassing Opera, which had been the leader since its introduction of CSS support 15 months earlier SONY VGP-BPS21B Battery .
Other browsers followed soon afterwards, and many of them additionally implemented parts of CSS2. As of August 2010, no (finished) browser has fully implemented CSS2, with implementation levels varying (see Comparison of layout engines (CSS)) SONY VGP-BPS21/S Battery .
Even though early browsers such as Internet Explorer 3 and 4, and Netscape 4.x had support for CSS, it was typically incomplete and afflicted with serious bugs. This was a serious obstacle for the adoption of CSS.
When later 'version 5' browsers began to offer a fairly full implementation of CSS, they were still incorrect in certain areas and were fraught with inconsistencies, bugs and other quirks SONY VGP-BPS21A/B Battery .
The proliferation of such CSS-related inconsistencies and even the variation in feature support has made it difficult for designers to achieve a consistent appearance across platforms. Some authors resorted toworkarounds such as CSS hacks and CSS filters to obtain consistent results across web browsers and platforms SONY VGP-BPS13/Q Battery .
Problems with browsers' patchy adoption of CSS along with errata in the original specification led the W3C to revise the CSS2 standard into CSS2.1, which moved nearer to a working snapshot of current CSS support in HTML browsers SONY VGP-BPS13/Q Battery .
Some CSS2 properties that no browser successfully implemented were dropped, and in a few cases, defined behaviors were changed to bring the standard into line with the predominant existing implementations. CSS2.1 became a Candidate Recommendation on February 25, 2004 SONY VGP-BPS13B/Q Battery ,
but CSS2.1 was pulled back to Working Draft status on June 13, 2005, and only returned to Candidate Recommendation status on July 19, 2007.
In the past, some web servers were configured to serve all documents with the filename extension
.css as mime type
application/x-pointplus rather than
text/css SONY VGP-BPS13A/Q Battery .
At the time, the Net-Scene company was selling PointPlus Maker to convert PowerPoint files into Compact Slide Show files (using a
CSS has various levels and profiles. Each level of CSS builds upon the last, typically adding new features and typically denoted as CSS1, CSS2, and CSS3 SONY VGP-BPS13A/Q Battery .
Profiles are typically a subset of one or more levels of CSS built for a particular device or user interface. Currently there are profiles for mobile devices, printers, and television sets. Profiles should not be confused with media types, which were added in CSS2.
The first CSS specification to become an official W3C Recommendation is CSS level 1, published in December 1996 Toshiba Satellite M300 Battery .
Among its capabilities are support for:
- Font properties such as typeface and emphasis
- Color of text, backgrounds, and other elements Toshiba Satellite 1200 Battery
- 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 Toshiba Satellite A200 Battery
The W3C no longer maintains the CSS1 Recommendation.
CSS level 2 specification was developed by the W3C and published as a Recommendation in May 1998 Sony VGP-BPS21 battery .
A superset of CSS1, CSS2 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 and bidirectional text, and new font properties such as shadows. The W3C no longer maintains the CSS2 Recommendation Sony VGP-BPS14 battery .
CSS level 2 revision 1 or CSS 2.1 fixes errors in CSS2, removes poorly-supported or not fully interoperable features and adds already-implemented browser extensions to the specification. In order to comply with the W3C Process for standardizing technical specifications, CSS 2.1 goes back and forth between Working Draft status and Candidate Recommendation status Sony VGP-BPL8 battery .
CSS 2.1 first became aCandidate Recommendation, but it was reverted to a Working Draft on June 13, 2005 for further review. It was returned to Candidate Recommendation status on 19 July 2007 and was updated twice in 2009. However, since changes and clarifications were made to the prose it went back to Last Call Working Draft on 7 December 2010 Sony VGP-BPS22 battery .
Instead of defining all features in a single, large specification like CSS2, CSS3 is divided into several separate documents called "modules". Each module adds new capability or extends features defined in CSS2, over preserving backward compatibility Sony VGP-BPS11 battery .
Work on CSS level 3 started around the time of publication of the original CSS2 Recommendation. The earliest CSS3 drafts were published in June 1999.
Due to the modularization, different modules have different stability and are in different status. As of March 2011, there are over 40 CSS modules published from the CSS Working Group Sony VGP-BPS9 battery .
Some modules such as Selectors, Namespaces, Color, Media Queries are considered stable and are in either Candidate Recommendation or Proposed Recommendation status.Once CSS 2.1 is finalized and published as Recommendation, they are likely to go to Recommendation as well Sony VGP-BPS10 battery .
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) Toshiba PA3399U-2BRS battery .
The former can be defined as CSS filtering hacks and the later can be defined as CSS targeting hacks and both of which can be 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 Toshiba Satellite T4900 Battery .
Using CSS filters, some designers have gone as far as delivering different CSS to certain browsers to ensure designs render as expected. Because very early web browsers were either completely incapable of handling CSS, or render CSS very poorly, designers today often routinely use CSS filters that completely prevent these browsers from accessing any of the CSS Toshiba Satellite L305 Battery .
Internet Explorer support for CSS began with IE 3.0 and increased progressively with each version. By 2008, the first Beta of Internet Explorer 8 offered support for CSS 2.1 in its best web standards mode SONY VGN -FZ210CE Battery .
An example of a well-known CSS browser bug is the Internet Explorer box model bug, where box widths are interpreted incorrectly in several versions of the browser, resulting in blocks that are too narrow when viewed in Internet Explorer, but correct in standards-compliant browsers Dell Precision M70 Battery .
The bug can be avoided in Internet Explorer 6 by using the correct doctype in (X)HTML documents. CSS hacks and CSS filters are used to compensate for bugs such as this, just one of hundreds of CSS bugs that have been documented in various versions of Netscape, Mozilla Firefox, Opera, and Internet Explorer (including Internet Explorer 7) Acer Aspire One battery 10400mAh .
Even when the availability of CSS-capable browsers made CSS a viable technology, the adoption of CSS was still held back by designers' struggles with browsers' incorrect CSS implementation and patchy CSS support. Even today, these problems continue to make the business of CSS design more complex and costly than it was intended to be, and cross-browser testing remains a necessity Toshiba Satellite P10 Battery .
Other reasons for continuing non-adoption of CSS are: its perceived complexity, authors' lack of familiarity with CSS syntax and required techniques, poor support from authoring tools, the risks posed by inconsistency between browsers and the increased costs of testing Dell RM791 battery .
Currently there is strong competition between Mozilla's Gecko layout engine used in Firefox, the WebKit layout engine used in Apple Safari and Google Chrome, the similar KHTML engine used inKDE's Konqueror browser, and Opera's Presto layout engine—each of them is leading in different aspects of CSS Dell Inspiron E1505 battery .
As of August 2009, Internet Explorer 8, Firefox 2 and 3 have reasonably complete levels of implementation of CSS 2.1.
Some noted limitations of the current capabilities of CSS include:
- Poor controls for flexible layouts Dell Studio 1737 battery
- While new additions to CSS3 provide a stronger, more robust feature-set for layout, CSS is still at heart a styling language (for fonts, colours, borders and other decoration), not a layout language (for blocks with positions, sizes, margins, and so on) Dell Inspiron 300M Battery .
- These limitations mean that creating fluid layouts generally requires hand-coding of CSS, and has held back the development of a standards-based WYSIWYG editor.
- Selectors are unable to ascend Dell Latitude E4200 Battery
- CSS offers no way to select a parent or ancestor of an element that satisfies certain criteria. A more advanced selector scheme (such as XPath) would enable more sophisticated style sheets. However, the major reasons for the CSS Working Group rejecting proposals for parent selectors are related to browser performance and incremental rendering issues Dell Latitude E5400 Battery .
- Vertical control limitations
- While horizontal placement of elements is generally easy to control, vertical placement is frequently unintuitive, convoluted, or impossible. Simple tasks, such as centering an element vertically or getting a footer to be placed no higher than bottom of viewport, either require complicated and unintuitive style rules, or simple but widely unsupported rules Sony VGN-FW139E/H battery .
- Absence of expressions
- There is currently no ability to specify property values as simple expressions (such as
margin-left: 10% - 3em + 4px;). This would be useful in a variety of cases, such as calculating the size of columns subject to a constraint on the sum of all columns Sony VGN-FW11M Battery .
- However, a working draft with a calc() value to address this limitation has been published by the CSS WG. Internet Explorer versions 5 to 7 support a proprietary expression() statement, with similar functionality. This proprietary expression() statement is no longer supported from Internet Explorer 8 onwards, except in compatibility modes Sony VGN-FW11S Battery.
- This decision was taken for "standards compliance, browser performance, and security reasons".
- Lack of column declaration
- While possible in current CSS, layouts with multiple columns can be complex to implement. With the current CSS, the process is often done using floating elements, Dell Inspiron Mini 10 Battery
- which are often rendered differently by different browsers, different computer screen shapes, and different screen ratios set on standard monitors.
- Cannot explicitly declare new scope independently of position
- Scoping rules for properties such as z-index look for the closest parent element with a position:absolute or position:relative attribute Dell Latitude D620 Battery .
- This odd coupling has undesired effects such as it is impossible to avoid declaring a new scope when one is forced to adjust an element's position, preventing one from using the desired scope of a parent element.
- Pseudo-class dynamic behavior not controllable Dell Latitude D830 Battery
- but CSS has no ability for a client to disable it (no "disable"-like property) or limit its effects (no "nochange"-like values for each property).
- By combining CSS with the functionality of a Content Management System Toshiba Satellite M65 battery ,
- a considerable amount of flexibility can be programmed into content submission forms. This allows a contributor, who may not be familiar or able to understand or edit CSS or HTML code to select the layout of an article or other page they are submitting on-the-fly, in the same form Dell Latitude D610 Battery .
- For instance, a contributor, editor or author of an article or page might be able to select the number of columns and whether or not the page or article carries an image. This information is then passed to the Content Management System, and the program logic evaluates the information and determines
le="dell studio 1457 battery" href="http://www.gogeshop.com/dell-studio-1457-laptop-battery.htm">Dell Studio 1457 Battery,
- based on a certain number of combinations, how to apply classes and IDs to the HTML elements, therefore styling and positioning them according to the pre-defined CSS for that particular layout type. When working with large-scale, complex sites Dell Studio 1450 Battery ,
- with many contributors such as news and informational sites, this advantage weighs heavily on the feasibility and maintenance of the project.
- Separation of content from presentation
- CSS facilitates publication of content in multiple presentation formats based on nominal parameters Dell Inspiron 1320n Battery .
- Nominal parameters include explicit user preferences, different web browsers, the type of device being used to view the content (a desktop computer or mobile Internet device), the geographic location of the user and many other variables SONY VGP-BPS13AS Battery .
- Site-wide consistency
- When CSS is used effectively, in terms of inheritance and "cascading," a global style sheet can be used to affect and style elements site-wide. If the situation arises that the styling of the elements should need to be changed or adjusted, these changes can be made by editing rules in the global style sheet SONY VGP-BPS13A/S Battery .
- Before CSS, this sort of maintenance was more difficult, expensive and time-consuming.
- A stylesheet, whether internal to the source document or separate, will specify the style once for a range of HTML elements selected by
class, type or relationship to others SONY VGP-BPS13B/B Battery .
- This is much more efficient than repeating style information inline for each occurrence of the element. An external stylesheet is usually stored in the browser cache, and can therefore be used on multiple pages without being reloaded, further reducing data transfer over a network SONY VGP-BPS13A/B Battery .
- Page reformatting
- With a simple change of one line, a different style sheet can be used for the same page. This has advantages for accessibility, as well as providing the ability to tailor a page or site to different target devices. Furthermore, devices not able to understand the styling still display the content SONY VGP-BPS13/S Battery .
A CSS framework is a pre-prepared library that is meant to allow for easier, more standards-compliant styling of web pages using the Cascading Style Sheets language. Like programming and scripting language libraries, CSS frameworks are usually incorporated as external .css sheets referenced in the HTML
<head> SONY VGP-BPS8 Battery.
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, and prefer to 'handcraft' CSS that is appropriate to each published site without the design, maintenance and download overhead of having many unused features in the site's stylingSONY VAIO VGN-FZ38M Battery .
CSS 2.1 defines three positioning schemes:
- Normal flow
- Inline items are laid out in the same way as the letters in words in text, one after the other across the available space until there is no more room, then starting a new line below SONY VAIO VGN-FZ31Z Battery .
- Block items stack vertically, like paragraphs and like the items in a bulleted list. Normal flow also includes relative positioning of block or inline items, and run-in boxes.
- A floated item is taken out of the normal flow and shifted to the left or right as far as possible in the space available SONY VAIO VGN-FZ31M Battery .
- Other content then flows alongside the floated item.
- Absolute positioning
- An absolutely positioned item has no place in, and no effect on, the normal flow of other items. It occupies its assigned position in its container independently of other items SONY VAIO VGN-FZ31J Battery .
Position: top, bottom, left, and right
There are four possible values of the
positionproperty. If an item is positioned in any way other than
static, then the further properties
rightare used to specify offsets and positions. SONY VAIO VGN-FZ31B Battery
- The default value places the item in the normal flow
- The item is placed in the normal flow, and then shifted or offset from that position. Subsequent flow items are laid out as if the item had not been moved SONY VAIO VGN-FZ31E Battery
- Specifies absolute positioning
- The item is absolutely positioned in a fixed position on the screen even as the rest of the document is scrolled
Float and clear
floatproperty may have one of three values. Absolutely positioned or fixed items cannot be floated. Other elements normally flow around floated items, unless they are prevented from doing so by their
clearproperty SONY VAIO VGN-FZ4000 Battery .
- Floats to the left of the line that it would have appeared in; other items may flow around its right side
- Floats to the right of the line that it would have appeared in; other items may flow around its left side
- Removes the float property from an item SONY VAIO VGN-FZ480E Battery
The two primary stylesheet languages are Cascading Style Sheets (CSS) and the Extensible Stylesheet Language (XSL). While they are both called stylesheet languages, they have very different purposes and ways of going about their tasks SONY VAIO VGN-FZ460E Battery .
Cascading Style Sheets
CSS is designed around styling a document, structured in a markup language, HTML and XML (including XHTML and SVG) documents. It was created for that purpose. The code CSS is non-XML syntax to define the style information for the various elements of the document that it styles SONY VAIO VGN-FZ340E Battery .
The language to structure a document (markup language) is a prelimit to CSS. A markup language, like HTML and less XUL, may define some primitive elements to style a document, for example <emphasis> to bold. CSS post styles a document to "screen media" or "paged media" SONY VAIO VGN-FZ220E Battery .
Screen media, displayed as a single page (possibly with hyperlinks), that has a fixed horizontal width but a virtually unlimited vertical height. Scrolling is often the method of choice for viewing parts of screen media. This is in contrast to "paged media", which has multiple pages, each with specific fixed horizontal and vertical dimensions SONY VAIO VGN-FZ180E Battery .
To style paged media involves a variety of complexities that screen media does not. Since CSS was designed originally for screen media, its paged facilities lacked.
CSS version 3.0 provides new features that allow CSS to more adequately style documents for paged display Sony VAIO VGN-NR11Z/T Battery .
Extensible Stylesheet Language
XSL has evolved drastically from its initial design into something very different from its original purpose. The original idea for XSL was to create an XML-based styling language directed towards paged display media. The mechanism they used to accomplish this task was to divide the process into two distinct steps Sony VAIO VGN-NR11M/S Battery .
First, the XML document would be transformed into an intermediate form. The process for performing this transformation would be governed by the XSL stylesheet, as defined by the XSL specification. The result of this transformation would be an XML document in an intermediate language, known as XSL-FO (also defined by the XSL specification) Sony VAIO VGN-NR11Z/S Battery .
However, in the process of designing the transformation step, it was realized that a generic XML transformation language would be useful for more than merely creating a presentation of an XML document. As such, a new working group was split off from the XSL working group Sony VAIO VGN-NR11S/S Battery ,
and the XSL Transformations (XSLT) language became something that was considered separate from the styling information of the XSL-FO document. Even that split was expanded when XPath became its own separate specification, though still strongly tied to XSLT Sony VAIO VGN-FW21E Battery .
The combination of XSLT and XSL-FO creates a powerful styling language, though much more complex than CSS. XSLT is a Turing complete language, while CSS is not; this demonstrates a degree of power and flexibility not found in CSS. Additionally, XSLT is capable of creating content SONY VAIO VGN-NR11Z/T Battery ,
such as automatically creating a table of contents just from chapters in a book, or removing/selecting content, such as onlygenerating a glossary from a book. XSLT version 1.0 with the EXSLT extensions, or XSLT version 2.0 is capable of generating multiple documents as well, such as dividing the chapters in a book into their own individual pages SONY VAIO VGN-NR11Z/S Battery .
By contrast, a CSS can only selectively remove content by not displaying it.
XSL-FO is unlike CSS in that the XSL-FO document stands alone. CSS modifies a document that is attached to it, while the XSL-FO document (usually the result of the transformation by XSLT of the original document) contains all of the content to be presented in a purely presentational format SONY VAIO VGN-NR11M/S Battery .
It has a wide range of specification options with regard to paged formatting and higher-quality typesetting. But it does not specify the pages themselves. The XSL-FO document must be passed through an XSL-FO processor utility that generates the final paged media, much like HTML+CSS must pass through a web browser to be displayed in its formatted state SONY VAIO VGN-NR11S/S Battery .
The complexity of XSL-FO is a problem, largely because implementing an FO processor is very difficult. CSS implementations in web browsers are still not entirely compatible with one another, and it is much simpler to write a CSS processor than an FO processor SONY VAIO VGN-FW21E Battery .
However, for richly specified paged media, such complexity is ultimately required in order to be able to solve various typesettingproblems.
The CSS Zen Garden is a World Wide Web development resource. The goal of the site is to showcase what is possible with CSS-based design SONY VAIO VGN-FW31J Battery .
Style sheets contributed by graphic designers from around the world are used to change the visual presentation of a single HTML file, producing hundreds of different designs. Aside from reference to an external CSS file, the HTML markup itself never changes. All visual differences are the result of the CSS (and supporting imagery) SONY VAIO VGN-FW31J Battery .
The site has been translated into multiple languages.
When it launched in May 2003, it contained only five designs.
In February 2005, The Zen of CSS Design (Peachpit Press) was published by CSS Zen Garden creator Dave Shea and web designer Molly Holzschlag SONY VAIO VGN-FZ21E Battery .
The book is based on 36 designs featured at the Zen Garden site.
CSS Zen Garden has inspired similar sites in other languages.
"The Garden" itself was inspired, according to Shea, by an experiment by Chris Casciano called "Daily CSS Fun", and a CSS-related contest from HotBot SONY VAIO VGN-FZ18 Battery .
The CSS Zen Garden website is no longer active and was last updated in April, 2008.
CSSTidy is an open source Cascading Style Sheets parser and optimiser written by Florian Schmitz. C++ and PHP versions are available. The name derives fromHTML Tidy, since CSSTidy is supposed to be its counterpart for CSS HP Pavilion DV8000 battery .
Currently CSSTidy is able to fix some common errors (like missing units or semicolons), reformat and compress CSS code.
The current version of CSSTidy is 1.3. This version was noted in the changelog as the last version — the project was abandoned and the author is seeking a new maintainer for the project HP Pavilion DV6000 battery .
However, the PHP version has continued to get bug fixes and improved unit tests.
If the test is successful, the results of the Acid3 test will display a gradually increasing fraction counter with colored rectangles in the background. The number of subtests passed will indicate the percentage that will be displayed on the screen HP Pavilion DV6000 battery .
This percentage does not represent an actual percentage of conformance as the test does not really keep track of the subtests that were actually started (100 is assumed). Moreover, the browser also has torender the page exactly as the reference page is rendered in the same browser SONY VAIO VGN-FZ Battery .
Like the text of the Acid2 test, the text of the Acid3 reference rendering is not a bitmap, in order to allow for certain differences in font rendering.
Acid3 was in development from April 2007, and released on 3 March 2008. The main developer was Ian Hickson, a Google employee who also wrote the Acid2 test HP PAVILION DV8000 Battery .
Acid2 focused primarily on Cascading Style Sheets (CSS), but this third Acid test also focuses on technologies used on modern, highly interactive websites characteristic of Web 2.0, such as ECMAScript and DOM Level 2. A few subtests also concern Scalable Vector Graphics(SVG), Extensible Markup Language (XML), and data URIs HP PAVILION DV6000 Battery .
Controversially, it includes several elements from the CSS2 recommendation that were later removed in CSS2.1 but reintroduced in World Wide Web Consortium (W3C) CSS3 working drafts that have not made it to candidate recommendations yet HP Pavilion dv8000 battery .
- Bucket 1: DOM Traversal, DOM Range, HTTP
- Bucket 2: DOM2 Core and DOM2 Events
- Bucket 3: DOM2 Views, DOM2 Style, CSS 3 selectors and Media Queries
- Bucket 4: Behavior of HTML tables and forms when manipulated by script and DOM2 HTML
- Bucket 5: Tests from the Acid3 Competition (SVG, HTML, SMIL, Unicode, …)
- Bucket 6: ECMAScript Dell Inspiron E1505 battery
The compliance criteria require that the test is run with a browser's default settings. The final rendering must have a 100/100 score and must be pixel-identical with the reference rendering. On browsers designed for personal computers, the animation has to be smooth Sony VGP-BPL15 battery
(taking no more than 33 ms for each subtest on reference hardware equivalent to a top-of-the-line Apple laptop) as well,though slower performance on a slow device does not imply non-conformance.
To pass the test the browser must also display a generic favicon in the browser toolbar, not the favicon image from the Acid3 web server Sony VGP-BPS13B/B battery .
The Acid3 server when asked for
favicon.icogives a 404 response code but with image data in the body. This tests that the web browser correctly handles the 404 error code when fetching the favicon, by treating this as a failure and displaying the generic icon instead Sony VGP-BPL9 battery .
When the test is running, the rectangles will be added to the rendered image; the number of subtests passed in the bucket will determine the color of the rectangles.
- 0 subtests passed: No rectangle shown.
- 1–5 subtests passed: Black rectangle. Sony VGP-BPS13B/B battery
- 6–10 subtests passed: Grey rectangle.
- 11–15 subtests passed: Silver rectangle.
- All 16 subtests passed: Colored rectangle (left to right: red, orange, yellow, lime, blue, purple).
Note that Acid3 does not display exactly how many subtests passed in a bucket Sony VGP-BPS13A/B battery .
For example, 3 subtests passing and 4 subtests passing in bucket 2 would both render a black rectangle.
After the Acid3 test page is completely rendered, the capital A in the word Acid3 can be clicked to see an alert (or shift-click for a new window) explaining exactly which subtests have failed and what the error message was Sony VGP-BPS13/S battery .
In case some of the 100 tests passed but took too much time, the report includes timing results for that single test. The alert reports the total time of the whole Acid3 test.
In order to render the test correctly, user agents need to implement the CSS 3 Text Shadows and the CSS 2.x Downloadable Fonts specifications, which are currently under consideration by W3C to be standardized Sony VGP-BPS13/B battery .
This is required as the test uses a custom TrueType font, called "AcidAhemTest" to cover up a 20x20 red square. Supporting Truetype fonts however is not required by the CSS specification. A browser supporting only OpenType fonts with CFF outlines or Embedded OpenType fonts could support the CSS standard but fail the test in the Acid3 test Sony VGP-BPS13 battery .
The glyph, when rendered by the downloaded font, is just a square, made white with CSS, and thus invisible.
In addition, the test also uses Base64 encoded images, some more advanced selectors, CSS 3 color values (HSLA) as well as bogus selectors and values that should be ignored Dell Studio 1555 battery .
Development and impact
Ian Hickson started working on the test in April 2007, but development progressed slowly. In December 2007, work restarted and the project received public attention on 10 January 2008, when it was mentioned in blogs by Anne van Kesteren Dell KM958 battery.
At the time the project resided at a URL clearly showing its experimental nature: "http://www.hixie.ch/tests/evil/acid/003/NOT_READY_PLEASE_DO_NOT_USE.html" That notice did not stop the test from receiving widespread attention within the web development community. At that time only 84 subtests had been done, and on 14 January Ian Hickson announced a competition to fill in the missing 16 Dell XPS M1210 Battery .
The following developers contributed to the final test through this competition:
- Sylvain Pasche: subtests 66 and 67: DOM.
- David Chan: subtest 68: UTF-16/UCS-2. SONY VAIO VGN-FW33GW Battery
- Simon Pieters (Opera) and Anne van Kesteren (Opera): subtest 71: HTML parsing.
- Jonas Sicking (Mozilla) and Garrett Smith: subtest 72: dynamic modification of style blocks' text nodes.
- Jonas Sicking (Mozilla): subtest 73: Nested events.
- Erik Dahlström (Opera): subtests 74 to 78: SVG and SMIL.
- Cameron McCormack (Batik SVG library): subtest 79: SVG fonts SONY VAIO VGN-FW33G/E1 Battery .
Even before its official release, Acid3's impact on browser development was dramatic. WebKit in particular made progress; in less than a month their score rose from 60 to 87.
The test was officially released on 3 March 2008 SONY VAIO VGN-FW290JTH Battery .
A guide and commentary was expected to follow within a few months, but, as of March 2011, only the commentary had been released. The announcement that the test is complete means only that it is to be considered "stable enough" for actual use. A few problems and bugs were found with the test, and it was modified to fix them SONY VAIO VGN-FW290JTB Battery .
On 26 March 2008—the day both Opera and WebKit teams announced a 100/100 score—developers of WebKit contacted main Acid3 developer Ian Hickson about a critical bug in the Acid3 that presumably may have forced a violation of the SVG 1.1 standard to pass. Hickson proceeded to fix it with the help of Cameron McCormack, member of W3C's SVG Working Group SONY VAIO VGN-FW29/B Battery .
By the end of March 2008, early development versions of the Presto and WebKit layout engines (used by Opera and Safari respectively, among others) scored 100/100 on the test and rendered the test page correctly. At the time, no browser using the Presto or WebKit layout engines passed the performance aspect of the test SONY VAIO VGN-FW27T/H Battery .
On 14 March 2009, Iris Browser 1.1.4, a WebKit-based mobile browser, became the first public release of a web browser to pass Acid3, and on 7 June, iCab 4.6 for Mac OS X was unofficially announced as the first official release of a desktop browser to pass the test SONY VAIO VGN-FW31ZJ Battery ;
Safari 4, also based on WebKit, passed the next day, although a development version had already passed the previous September. By October, Epiphany, another WebKit-based browser, also passed. In May and June, Google Chrome 2.0 and Opera Mobile 9.7 beta displayed a score of 100/100 SONY VAIO VGN-FW27/W Battery ,
but did not actually pass; release versions of these browsers passed fully later in the year. Security concerns over downloadable fonts delayed Chrome from passing.
At the time of Acid3's release, Mozilla Firefox developers had been preparing for the imminent release of Firefox 3, focusing more on stability than Acid3 success SONY VAIO VGN-FW27/B Battery .
The resulting 3.0 release consequently gained a score of 71. The performance of Firefox was improved in version 3.5, which scores 93/100, andversion 3.6, which scores 94/100. Firefox 4 scores 97/100 because it does not support SVG fonts SONY VAIO VGN-FW26T/B Battery .
According to Mozilla employee Robert O'Callahan, Firefox does not support SVG fonts because Mozilla considers WOFF a superior alternative to SVG fonts. Another Mozilla engineer Boris Zbarsky claims that the subset of the specification implemented in Webkit and Opera gives no benefits to web authors or users over WOFF SONY VAIO VGN-FW25T/B Battery ,
and asserts that implementing SVG Fonts fully in a web browser is hard because it was "not designed with integration with HTML in mind".
Microsoft, developers of the Internet Explorer (IE) browser, said that Acid3 does not map to the goal of Internet Explorer 8 and that IE8 would improve only some of the standards being tested by Acid3 SONY VAIO VGN-FW21Z Battery .
IE8 scores 20/100, which is much worse than all relevant competitors in their versions from the test's release, and has some problems with rendering the Acid3 test page. On 18 November 2009, the Internet Explorer team posted a blog entry about the early development of Internet Explorer 9 from the PDC presentation SONY VAIO VGN-FW21M Battery ,
showing that an internal build of the browser could score 32/100 for the Acid3 test.
On 2 April 2010, Ian Hickson made minor changes to the test after Mozilla, due to privacy concerns, altered the way Gecko handles the
:visitedpseudo-class SONY VAIO VGN-FW21L Battery .
Throughout 2010, several public Developer Previews gradually improved Internet Explorer 9's test scores from 55/100 (on 16 March) to 95/100 (as of 4 August). General Manager of the IE team Dean Hachamovich argues that striving for 100/100 on the Acid3 test isn't necessary or desirable SONY VAIO VGN-FW21J Battery .
He claims the two Acid3 failures are on features (SVG fonts and SMIL animation) that are "in transition".
The current iteration of the test has been criticized for being a cherry-picked collection of features that are rarely used, as well as those that are still in a W3C working draft Dell Latitude E6400 ATG Battery .
Eric Meyer, a notable web standards advocate, writes, "The real point here is that the Acid3 test isn't a broad-spectrum standards-support test. It's a showpiece, and something of a Potemkin village at that. Which is a shame, because what's really needed right now is exhaustive test suites for specifications– XHTML, CSS, DOM, SVG Asus M52N Battery ."
"Implementing just enough of the standard to pass a test is disingenuous, and has nothing to do with standards compliance," argues Mozilla UX lead Alex Limi, in his article "Mythbusting: Why Firefox 4 won’t score 100 on Acid3." Limi argues that some of the tests, particularly those for SVG fonts, have no relation to real usage SONY VAIO VGN-FW21E Battery ,
and implementations in some browsers are created solely for the point of raising scores.
XSLT (Extensible Stylesheet Language Transformations) is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed Ibm THINKPAD X200 Battery ;
rather, a new document is created based on the content of an existing one. The new document may be serialized(output) by the processor in standard XML syntax or in another format, such as HTML or plain text. XSLT is most often used to convert data between different XML schemas or to convert XML data into web pages or PDF documents Ibm THINKPAD X200 Battery .
Applications often use XSLT to convert XML data into HTML or XHTML documents for display as a web page. The transformation may happen dynamically either on a client or on a server, or it may be done as part of the publishing process. It is also used to create output for printing or direct video display Ibm THINKPAD X200 Battery ,
typically by transforming the original XML into XSL Formatting Objects to create formatted output which can then be converted to a variety of formats, including PDF, PostScript and PNG. XSLT can also translate XML messages between different XML schemas, or make changes to documents within the scope of a single schema HP Pavilion DV7 battery ,
for example by removing the parts of a message that are not needed.
XSLT is developed by the World Wide Web Consortium (W3C). The most recent version is XSLT 2.0,which reached W3C recommendation status on 23 January 2007 Dell Latitude E6500 battery .
As of 2010, however, XSLT 1.0 is still widely used, as there are no products that support XSLT 2.0 running in the browser, nor on some important server environments such as LAMP.
Originally, XSLT was part of the W3C's Extensible Stylesheet Language (XSL) development effort of 1998–1999, a project that also produced XSL Formatting Objects and the XML Path Language, XPath Dell Latitude E6500 battery .
The editor of the first version was James Clark. XSLT 1.0 was published as a Recommendation by the W3C on 16 November 1999. After an abortive attempt to create a version 1.1 in 2001, the XSL working group joined forces with the XQuery working group to create XPath 2.0,with a richer data model and type system based on XML Schema Dell Latitude E6500 battery .
XSLT 2.0, developed under the editorship of Michael Kay, was built on this foundation in 2002–2006.
As a language, XSLT is influenced by functional languages,and by text-based pattern matching languages in the tradition of SNOBOL and awk Dell Latitude E6500 battery .
Its most direct predecessor was ISO DSSSL, a language that performed the same function for full SGML that XSLT performs for XML (Some members of the standards committee that developed XSLT, including James Clark, had previously worked on DSSSL.)Dell Latitude E6400 Battery
Unlike DSSSL, however, XSLT code uses the syntax of its target language, XML, which means that it can also be viewed as a Turing-complete template processor.
Most of this article is applicable to both XSLT versions; any differences are noted in the text Dell Latitude E6400 Battery .
The XSLT processing model involves:
- one or more XML source documents;
- one or more XSLT stylesheet modules; Dell Latitude E6400 battery
- the XSLT template processing engine (the processor); and
- one or more result documents.
The XSLT processor ordinarily takes two input documents —an XML source document, and an XSLT stylesheet—and produces an output document Dell Vostro 1310 battery .
The XSLT stylesheet contains a collection of template rules: instructions and other directives that guide the processor in the production of the output document.
Template rule processing
The XSLT language is declarative : Rather than listing an imperative sequence of actions to perform in a stateful environment Dell Studio 1735 battery ,
template rules only define how to handle a node matching a particular XPath-like pattern, if the processor should happen to encounter one, and the contents of the templates effectively comprise functional expressions that directly represent their evaluatedform: the result tree, which is the basis of the processor's output Dell Studio 1535 battery .
The processor follows a fixed algorithm : Assuming a stylesheet has already been read and prepared, the processor builds a source tree from the input XML document. It then starts by processing the source tree's root node, finding in the stylesheet the best-matching template for that node, and evaluating the template's contents Dell Vostro A860 battery .
Instructions in each template generally direct the processor to either create nodes in the result tree, or process more nodes in the source tree in the same way as the root node. Output is derived from the result tree.
XSLT processor implementations fall into two main categories: server-side, and client-side Dell Vostro A840 battery .
Although client-side XSLT processing has been available in Microsoft's Internet Explorer 6.x since 2001 (W3C draft in Internet Explorer 5.x since 1999, or even earlier, but in a form that was incompatible with the final W3C specifications) and in Netscape 7.x since 2002 (partially in Netscape 6.x since 2000) Dell Studio XPS 1640 battery ,
adoption has been slower because of the widespread deployment of older and alternative browsers without XSLT support. For similar reasons, adoption of XSLT 2.0 in such environments remains limited. See the Comparison of layout engines (XML)#XSL technologiesDell Vostro 1720 battery .
XSLT processors may be delivered as standalone products, or as components of other software including web browsers, application servers, frameworks such as Java and .NET, or even operating systems. For example, Windows XP comes with the MSXML3 library, which includes an XSLT 1.0 processor Dell Vostro 1710 battery .
Earlier versions may be upgraded and there are many alternatives. See the external linkssection. Another example is GNOME desktop environment 2.x which includes libxslt, an open source and complete implementation of the XSLT 1.0 specification. The libxslt library is also used in other software, such as WebKit layout engine Dell Inspiron 1320n battery .
The Apache Xalan project produces another open source XSLT 1.0 processor.
XSLT processor performance has steadily improved as the technology matures, although the very first processor, James Clark's xt, was unbeaten for several years Dell Inspiron 1320 battery .
Most of the earlier XSLT processors were interpreters; in more recent products, code generation is increasingly common, using portable intermediate languages such as Java bytecode or .NET Common Intermediate Language as the target. However, even the interpretive products generally offer separate analysis and execution phases Dell Inspiron 1764 battery ,
allowing an optimized expression tree to be created in memory and reused to perform multiple transformations: this gives substantial performance benefits in online publishing applications where the same transformation is applied many times per second to different source documents Dell Inspiron 1564 battery .
This separation is reflected in the design of XSLT processing APIs such as JAXP (Java API for XML Processing).
Early XSLT processors had very few optimizations; stylesheet documents were read into Document Object Models and the processor would act on them directly. XPath engines were also not optimized Dell Inspiron 1464 battery .
Increasingly, however, XSLT processors use the kind of optimization techniques found in functional programming languages and database query languages, notably static rewriting of the expression tree for example to move calculations out of loops Dell Inspiron N7010 battery ,
and lazy pipelined evaluation to reduce the use of memory for intermediate results and allow "early exit" when the processor can evaluate an expression such as
following-sibling::*without a complete evaluation of all subexpressions. Many processors also use tree representations that are much more efficient (in both space and time) than general purpose DOM implementations Dell Inspiron N5010 battery .
XSLT and XPath
XSLT relies upon the W3C's XPath language for identifying subsets of the source document tree, as well as for performing calculations. XPath also provides a range of functions, which XSLT itself further augments. This reliance upon XPath adds a great deal of power and flexibility to XSLT Dell Inspiron N3610 battery .
XSLT 1.0 uses XPath 1.0. Similarly, XSLT 2.0 relies on XPath 2.0; both specifications were published on the same date.
XSLT and XQuery compared
XSLT capabilities overlap with XQuery, which was initially conceived as a query language for large collections of XML documents Dell Inspiron N4010 battery .
The XSLT 2.0 and XQuery 1.0 standards were developed by separate working groups within W3C, working together to ensure a common approach where appropriate. They share the same data model, type system, and function library, and both include XPath 2.0 as a sublanguage Dell Inspiron 9100 battery .
The two languages, however, are rooted in different traditions and serve the needs of different communities. XSLT was primarily conceived as a stylesheet language whose primary goal was to render XML for the human reader on screen, on the web (as web template language), or on paper Dell Studio XPS 1340 battery .
XQuery was primarily conceived as a database query language in the tradition of SQL.
Because the two languages originate in different communities, XSLT is stronger in its handling of narrative documents with more flexible structure, while XQuery is stronger in its data handling, for example when performing relational joins Dell XPS M2010 battery .
XSLT media types
As of 2009, there is no MIME/Internet media type registered for XSLT.
The XSLT 1.0 Recommendation (1999) says "The MIME media types
application/xmlshould be used for XSLT stylesheets Dell XPS M1730 battery .
It is possible that a media type will be registered specifically for XSLT stylesheets; if and when it is, that media type may also be used." It goes on to use
text/xmlin an example of how to embed a stylesheet with the
xml-stylesheetprocessing instruction Dell Inspiron Mini 12 battery .
RFC 3023 points out potential technical problems with
text/*types in general, and proposes
application/xslt+xmlas an ideal media type for XSLT. The XSLT 2.0 Recommendation (January 2007) includes a formal application to register this media type Hp 2230 Battery .
However, at the time of writing (January 2009) the process of registration has not yet been completed, and RFC 3023 warns that "... this media type should not be used until such registration has been completed Hp cq20 Battery ."
Pre-1.0 working drafts of XSLT used
text/xslin their embedding examples, and this type was implemented and continues to be promoted by Microsoft in Internet Explorer and MSXML Hp Pavilion cq72 Battery .
It is also widely recognized in the
xml-stylesheetprocessing instruction by other browsers. In practice, therefore, users wanting to control transformation in the browser using this processing instruction are obliged to use this unregistered media type Hp Pavilion cq42 Battery .