The biggest change that is currently planned with CSS level 3 is the introduction of modules. The advantage to modules is that it (supposedly) allows the specification to be completed and approved more quickly, because segments are completed and approved in chunks. This also allows browser and user-agent manufacturers to support sections of the specification but keep their code bloat to a minimum by only supporting those modules that make sense.
For example, a text reader wouldn’t need to include modules that only define how an element is going to display visually. But even if it only included the aural modules, it would still be a standards-compliant CSS 3 tool.
Some New Features of CSS 3
Selectors in CSS 3 are going to be very interesting. They will allow the designer/developer to select on much more specific levels of the document. One of the nice things about this module is that many browsers are already starting to support the advanced CSS 3 selectors, so you can start trying them out now. For example, some new selectors are:
- matching on attributes and attribute values, including partial matches
- structural pseudo-classes, such as the nth-child
- a target pseudo-class to style only elements that are targetted in the URL
- a checked pseudo-class to style any element that is checked such as radio or checkbox elements
- Text Effects and Layout
Making changes to the hyphenation, whitespace, and justification of text in documents.
- First-Letter and First-Line Pseudo-Classes
CSS 3 should allow properties to affect kerning and alignment of drop-caps.
- Paged Media and Generated Content
CSS 3 will now support more options in paged media, such as running headers and footers and page numbers. Plus there will be advanced properties for printing generated content including properties for footnotes and cross-references.
- Multi-Column Layout
Right now, the multi-column layout working draft provides properties to allow designers to display their content in multiple columns with definitions like the column-gap, column-count, and column-width.
- RubyCSS will now support the ability to add small annotations on top or next to words, most often used in Chines and Japanese. They are generally used to give the pronunciation or meaning of difficult ideograms.