You are previewing Beginning CSS: Cascading Style Sheets for Web Design, Second Edition.
O'Reilly logo
Beginning CSS: Cascading Style Sheets for Web Design, Second Edition

Book Description

Cascading style sheets (CSS) are the modern standard for website presentation. When combined with a structural markup language such as HTML, XHTML, or XML (though not limited to these), cascading style sheets provide Internet browsers with the information that enables them to present all the visual aspects of a web document. Cascading style sheets apply things such as borders, spacing between paragraphs, headings or images, control of font faces or font colors, background colors and images, textual effects such as underlined or strike-through text, layering, positioning, and a number of other presentational effects. CSS controls the presentational aspects of a web page's design, whereas HTML, XHTML, or XML controls the structure of a web page, which means little more than determining that certain text is a heading, other text is a paragraph, still other text is a list of hyperlinks, and so on. CSS provides enhanced and precise visual rendering; markup languages such as HTML provide meaning and structure.

Beginning CSS: Cascading Style Sheets for Web Design, Second Edition covers all the details required to combine CSS with HTML, XHTML, or XML to create rich, aesthetically powerful designs. Throughout the book, you'll focus on combining CSS with XHTML specifically because XHTML is the standard hailed by Internet standards bodies as the successor to HTML and the present and future of website design. CSS and XHTML allow a web document to be presented with less code, resulting in a significantly smaller file size and greatly increased ease of maintenance. CSS also enables the presentation of a web document to be centralized, which allows for the look and feel of an entire website to be written and centralized in one or a few simple documents, which makes updating a website a breeze. With only a few simple edits to a single document, the look and feel of an entire website can be completely changed.

By using modern standards like CSS and XHTML, you can drastically reduce the cost of building and maintaining a website when compared to legacy HTML-only pages. You can also greatly reduce the amount of physical bandwidth and hard disk space required, resulting in immediate long-term benefits for any website.

This book also discusses how to style XML documents with CSS—XML being a more advanced markup language with multipurpose applications. XML will play an increasingly larger role in the production of XHTML documents in the future.

This second edition of Beginning CSS features a near-complete overhaul of the content from the first edition. Changes based on what readers had to say about the first edition helped to create the most comprehensive introduction on CSS available on the market. Throughout this book, you see CSS broken down into simple examples that focus on a single concept at a time. This allows you to better understand how and why something works, since you aren't presented with a lot of irrelevant code, and you can better see the bits and pieces that come together that make something work. While these examples may not be particularly pretty, they are extremely valuable learning tools that will help you master cascading style sheets.

To enhance the learning experience, most of the source code examples are presented in syntax-colored code, a special feature in this book. Syntax coloring is a feature that you commonly see in fancy development software, such as Zend Studio (used to develop PHP), or Microsoft's Visual Studio (used to develop ASP, C#, and so on), and other software used by professional programmers every day. Syntax coloring is used in these software suites to make programming easier and more intuitive, and it offers tremendous benefits in teaching as well. It allows you to see what the different bits and pieces are in source code, since each of the different bits and pieces has a different coloring to identify its purpose. It helps you to distinguish the building blocks of code more easily, and if you use similar development software to write your CSS and HTML documents, you'll also find that you make fewer mistakes and typos, since syntax coloring also helps you to write code that is more bug free.

Many of the source code examples feature annotations to highlight important, not-to-be-forgotten bits of information, and to visually point out concepts that are discussed in the surrounding text.

This edition also features every screenshot from a browser in color, a first for Wrox. Presenting the browser screenshots in color makes it easier for you to compare your results with what you see in the book.

This book also approaches CSS development from a browser-neutral point of view, and provides all the information that you need to get a good healthy start on professional cross-browser, cross-platform website design with IE 6, IE 7, Firefox 2, Opera 9, and Safari 2, which will allow you to reach over 99 percent of the web browsing public.

You also see comprehensive coverage of bugs, and workarounds for the IE 6 and IE 7 web browsers. Long a thorn in the side of CSS developers, making CSS work in IE 6 can be quite a chore without detailed knowledge of its quirks and shortcomings. This book covers many of the hacks and nonstandard workarounds that you may need to develop compatible CSS content in IE 6. IE 7 features many great improvements to CSS support, and though they are much fewer than its predecessor, you still need a few tricks to make your web page shine in Microsoft's latest browser. It covers the workarounds that you'll need to make your pages work just as well in IE 7 as they do in all the other popular browsers. In addition, you'll find the quick reference in Appendix B updated to reflect all of IE 7's new CSS support.

Along with better coverage of Internet Explorer, there's greatly improved coverage of Mac OS X browsers, Safari, Firefox, and Opera. You'll see that Mac browsers are equally represented among their Windows brethren.

Whom Is This Book For? This book's primary audience is anyone seeking to learn how to use cascading style sheets to present web documents. Because cascading style sheets are used to control the presentational layout of a web document, people from backgrounds in art, graphic design, or those who prepare print layouts for publishing will feel at home using CSS. Regardless of your background, CSS is a simple and powerful language designed so that anyone can understand and use it.

To get the most out of this book, you need some experience with markup languages like HTML or XHTML. If you are completely new to website design and development, you should begin learning web programming with Jon Duckett's Beginning Web Programming with HTML, XHTML, and CSS. Jon Duckett's book provides a complete overview of website development and design for the complete beginner, whereas Beginning CSS: Cascading Style Sheets for Web Design, Second Edition focuses specifically on the role of CSS in website design.

This book presents all of the material you need to become comfortable with writing CSS from scratch.

What Does This Book Cover? This book covers portions of the CSS Level 1, 2, 2.1, and 3 specifications. These specifications are created by an independent, not-for-profit Internet standards organization called the World Wide Web Consortium (W3C) that plans and defines how Internet documents work. The majority of the book is written using what is defined in the CSS Level 2.1 specification.

This book leads you through how to write CSS so that it is compatible with all of the most popular web browsers, focused on all of the following popular browsers:

  • Microsoft Internet Explorer 6 for Windows

  • Windows Internet Explorer 7 for Windows XP Service Pack 2, Windows Server 2003, Windows XP Professional 64 bit, and Windows Vista

  • Safari 2 for Mac OS X 10.4 (Tiger)

  • Mozilla Firefox 2 for Mac OS X, Windows, and Linux

  • Opera 9 for Mac OS X, Windows, and Linux

The preceding browsers make up over 99 percent of the web browser market share at the time of this writing. For your convenience, this book also includes an integrated CSS feature reference throughout the book, as well as notes on browser compatibility. A CSS reference is also included in Appendix B.

How This Book Is Structured: This book is divided into three parts. The following explains each of these three parts in detail, and what each chapter covers.

Part I: The Basics: Throughout Chapters 1 through 4 you learn the founding principles of CSS-based web design.

  • Chapter 1, "Introducing Cascading Style Sheets": This chapter talks about what CSS is, why it exists, who created it, where it is maintained, and how it has evolved. It also discusses some of the basic differences among the various CSS specifications—CSS Level 1, CSS Level 2, CSS Level 2.1, and CSS Level 3—and how these specifications define what CSS is. You also learn more about each of the most popular browsers in use today, how to obtain them, and write your first CSS-enabled document. It also shows you how to install Internet Explorer 6 and Internet Explorer 7 side-by-side on the same computer for testing.

  • Chapter 2, "The Essentials": This chapter introduces the basics of CSS. Now that you have seen an example CSS document, this chapter introduces CSS rules and how selectors and declarations are combined to create rules. It demonstrates the various methods used to include CSS in a document. It explains how keywords are used in CSS to create predefined behavior, and how strings are used in CSS to refer to font names in a style sheet. It presents the various units of measurement that CSS supports. Finally, it talks about the different ways of specifying color.

  • Chapter 3, "Selectors": Chapter 2 introduced the concept of selectors. Chapter 3 talks about complex selectors, and how you apply style to a portion of a document based on its context within the document or user-initiated events.

  • Chapter 4, "The Cascade and Inheritance": In Chapter 4, you learn about how to override styles, how precedence works in a style sheet, and how some styles can be considered more important than others, concepts that come together to define the cascade in cascading style sheets. You also learn how once you set some styles in a document, those styles can be inherited to other parts of a document depending on the context in which they are applied.

Part II: Properties: Throughout Chapters 5 through 12, you learn about properties that are used to manipulate the presentation of a document.

  • Chapter 5, "Text Manipulation": Chapter 5, presents the various properties that CSS provides for text manipulation. These properties provide effects such as controlling the amount of space between the letters of words, controlling the amount of space between the words of a paragraph, controlling text alignment, underlining, overlining, or strike-through text. It also shows how to control the case of text by making text all lowercase, uppercase, or capitalized.

  • Chapter 6, "Fonts": After you have seen the properties that CSS provides for text manipulation in Chapter 5, Chapter 6 presents the CSS properties you can use to manipulate the presentation of fonts. These effects include applying bold text, setting a font face, setting the font size, setting an italic font, as well as learning to use a property that enables you to specify all CSS's font effects in one single property.

  • Chapter 7, "The Box Model": Chapter 7 elaborates on a design concept fundamental to CSS design: The Box Model. You learn how the box model plays an important role in determining layout dimensions. Using the margin, border, padding, width, and height properties, you can control how much space elements within a document occupy, how much space separates them, whether there are borders around them, whether scroll bars should be included. It also discusses a CSS phenomenon known as margin collapsing, which is what happens when top or bottom margins come into direct contact with other top or bottom margins in a web document.

  • Chapter 8, "CSS Buoyancy: Floating and Vertical Alignment": Chapter 8, discusses float and clear, two properties used to control the flow of layout in a web document and often used to flow text beside images. It also discusses the vertical-align property, which is used to create effects like subscript or superscript text, as well as to control vertical alignment in table cells.

  • Chapter 9, "List Properties": In this chapter, you'll look at the properties CSS provides to control presentation of ordered and unordered lists. This discussion includes the options CSS provides for predefined list markers, custom list markers, and the position of list markers.

  • Chapter 10, "Backgrounds": Chapter 10, presents the properties CSS provides to control backgrounds in a web page. This includes properties that set a background color or background image, as well as those that control the position of a background, the tiling of a background, and whether a background remains fixed in place as a web page is scrolled or remains static. Finally, the chapter shows you how to use a property that combines all these individual effects into a single property.

  • Chapter 11, "Positioning": You'll see four different types of positioning: static, relative, absolute, and fixed. You use positioning primarily to layer portions of a document. It also describes some of the practical uses for positioning, such as creating a multicolumn layout.

  • Chapter 12, "Tables": Chapter 12, presents the different properties that CSS provides for styling (X)HTML tables. The properties presented in this chapter let you control the spacing between the cells of a table, the placement of the table caption, and whether empty cells are rendered. It also looks in detail at the available tags and options that (X)HTML provides for structuring tabular data.

Part III: Advanced CSS and Alternative Media: Throughout Chapters 13, 14, and 15 you learn about how to use CSS to make documents for printing, and another kind of document altogether, XML.

  • Chapter 13, "Styling for Print": This chapter discusses what steps to take to use CSS to provide alternative style sheets to create a printer-friendly version of a web document.

  • Chapter 14, "XML": In this chapter, you see how you can use CSS to style XML content. This chapter focuses specifically on the CSS display property and how you use this property to change the behavior of tags in an XML or HTML/XHTML document.

  • Chapter 15, "The Cursor Property": Here you see how you can change the user's mouse cursor using CSS, how you can customize the mouse cursor, and what browsers support which cursor features.

  • Chapter 16, "Dean Edwards's 'IE7'": This chapter talks about one alternative to many of the hacks and workarounds that you need for IE6. It talks about how to install an HTTP server for your website, and how to install and use Dean Edwards's "IE7" JavaScript, which is a collection of IE6 hacks and workarounds designed to make "IE6" feature compatible with its successor. This chapter is available online only, on the Wrox website at

  • Appendixes: Appendix A contains the answers to chapter exercises. Appendix B, "CSS Reference," provides a place for you to look up CSS features and browser compatibility on the fly. Appendix C, "CSS Colors," provides a reference of CSS named colors. Appendix D, "Browser Rendering Modes," provides a reference for the browser rendering modes invoked by the presence or absence of a Document Type Declaration (discussed in Chapter 7).

Table of Contents

  1. Copyright
  2. About the Author
  3. Credits
  4. Acknowledgments
  5. Introduction
    1. What's New in the Second Edition
    2. Whom Is This Book For?
    3. What Does This Book Cover?
    4. How This Book Is Structured
      1. Part I: The Basics
      2. Part II: Properties
      3. Part III: Advanced CSS and Alternative Media
    5. What Do You Need to Use This Book?
    6. Conventions
    7. Source Code
    8. Errata
  6. I. The Basics
    1. 1. Introducing Cascading Style Sheets
      1. 1.1. Who Creates and Maintains CSS?
      2. 1.2. How the Internet Works
      3. 1.3. How CSS Came to Be
      4. 1.4. Browsers
        1. 1.4.1. Internet Explorer
          1. Internet Explorer 7
          2. Internet Explorer 6
          3. Installing Multiple Versions of Internet Explorer for Testing
            1. Installing Windows Using PC Virtualization/Emulation Software
          4. Internet Explorer for PowerPC Mac OS X
        2. 1.4.2. The Gecko Browsers: Mozilla Firefox, Netscape, Camino
        3. 1.4.3. Safari
        4. 1.4.4. Opera
      5. 1.5. Writing CSS
      6. 1.6. Your First CSS-Enabled Document
      7. 1.7. Advantages of Using CSS
      8. 1.8. Summary
    2. 2. The Essentials
      1. 2.1. CSS Rules
      2. 2.2. Selectors
      3. 2.3. Declarations
      4. 2.4. Grouping Selectors
      5. 2.5. CSS Comments
      6. 2.6. Values
        1. 2.6.1. Keywords
        2. 2.6.2. Strings
        3. 2.6.3. Length and Measurement
          1. Absolute Measurement
            1. The Pitfalls of Onscreen Absolute Measurement
          2. Relative Measurement
            1. Measurement Based on the Font Size
            2. Measurements Based on the Height of the Lowercase Letter x
            3. Pixel Measurements
            4. Percentage Measurements
        4. 2.6.4. Numbers
          1. Integers
          2. Real Numbers
        5. 2.6.5. Colors
          1. Color Keywords
          2. RGB Colors
          3. Hexadecimal Colors
          4. Short Hexadecimal and Web-Safe Colors
        6. 2.6.6. The URI
      7. 2.7. Including CSS in a Document
        1. 2.7.1. Including an Embedded Style Sheet
        2. 2.7.2. Linking to External Style Sheets
          1. How to Structure an External CSS Document
        3. 2.7.3. Importing Style Sheets
        4. 2.7.4. Inline Styles
      8. 2.8. Summary
      9. 2.9. Exercises
    3. 3. Selectors
      1. 3.1. Class and ID Selectors
        1. 3.1.1. Class Selectors
        2. 3.1.2. ID Selectors
      2. 3.2. The Universal Selector
      3. 3.3. Descendant Selectors
      4. 3.4. Direct Child Selectors
      5. 3.5. Next Sibling Selector
      6. 3.6. Attribute Selectors
        1. 3.6.1. Selection Based on the Value of an Attribute
        2. 3.6.2. Attribute Substring Selectors
          1. Selection Based on Attribute Values That Begin with a String
          2. Selection Based on Attribute Values That End with a String
          3. Selection Based on Attribute Values That Contain a String
      7. 3.7. Pseudo-Elements :first-letter and :first-line
      8. 3.8. Pseudo-Classes
        1. 3.8.1. Dynamic Pseudo-Classes
          1. :link and :visited
          2. :hover
          3. :active
        2. 3.8.2. The first-child Structural Pseudo-Class
      9. 3.9. Summary
      10. 3.10. Exercises
    4. 4. The Cascade and Inheritance
      1. 4.1. The Cascade
        1. 4.1.1. Calculating the Specificity of a Selector
        2. 4.1.2. !important Rules
      2. 4.2. Inheritance
      3. 4.3. Summary
      4. 4.4. Exercises
  7. II. Properties
    1. 5. Text Manipulation
      1. 5.1. The letter-spacing Property
      2. 5.2. The word-spacing Property
      3. 5.3. Indenting Paragraph Text Using text-indent
      4. 5.4. Aligning Text with the text-align Property
      5. 5.5. The text-decoration Property
      6. 5.6. The text-transform Property
      7. 5.7. The white-space Property
      8. 5.8. Summary
      9. 5.9. Exercises
    2. 6. Fonts
      1. 6.1. Specifying Fonts with the font-family Property
        1. 6.1.1. Font Families
        2. 6.1.2. Generic Font Families
      2. 6.2. The font-style Property
      3. 6.3. The font-variant Property
      4. 6.4. The font-weight Property
      5. 6.5. The font-size Property
        1. 6.5.1. Absolute Font Sizes
        2. 6.5.2. Relative Font Sizes
        3. 6.5.3. Percentage Font Sizes
      6. 6.6. The font Shorthand Property
        1. 6.6.1. The font Properties
        2. 6.6.2. System Fonts
      7. 6.7. Summary
      8. 6.8. Exercises
    3. 7. The Box Model
      1. 7.1. Overview
      2. 7.2. Margin
        1. 7.2.1. Margin Property with Four Values
        2. 7.2.2. Margin Property with Three Values
        3. 7.2.3. Margin Property with Two Values
        4. 7.2.4. Margin Property with One Value
        5. 7.2.5. Margin Collapsing
        6. 7.2.6. Horizontally Aligning Elements with the Margin Property
          1. Aligning Elements in IE 6 and IE 7 in Quirks Rendering Mode
      3. 7.3. Borders
        1. 7.3.1. border-width
        2. 7.3.2. border-style
        3. 7.3.3. border-color
        4. 7.3.4. Border Shorthand Properties
      4. 7.4. Padding
      5. 7.5. Setting Dimensions
        1. 7.5.1. width
        2. 7.5.2. height
        3. 7.5.3. Auto Values for width and height
        4. 7.5.4. Percentage Measurements
        5. 7.5.5. Quirks Mode width and height in Internet Explorer
          1. The box-sizing Property
          2. Conditional Comments
        6. 7.5.6. Minimum and Maximum Dimensions
          1. min-width
            1. min-width in IE 6 and IE 5.5
          2. max-width
          3. Hacking Both Minimum and Maximum Widths in IE 6
          4. min-height
          5. max-height
          6. The line-height property
      6. 7.6. Overflowing Content
        1. 7.6.1. CSS 3 overflow-x and overflow-y
      7. 7.7. Summary
      8. 7.8. Exercises
    4. 8. CSS Buoyancy: Floating and Vertical Alignment
      1. 8.1. The float Property
        1. 8.1.1. Floating Box Model
      2. 8.2. The clear Property
      3. 8.3. Float Bugs in IE 6
        1. 8.3.1. The Peek-A-Boo Bug
        2. 8.3.2. The Guillotine Bug
        3. 8.3.3. The Three-Pixel Jog
        4. 8.3.4. The Double-Margin Bug
      4. 8.4. The vertical-align Property
        1. 8.4.1. Subscript and Superscript Text
        2. 8.4.2. The top, middle, and bottom Keywords
        3. 8.4.3. The text-top and text-bottom Keywords
        4. 8.4.4. Percentage and Length Value
        5. 8.4.5. Vertically Aligning the Contents of Table Cells
      5. 8.5. Summary
      6. 8.6. Exercises
    5. 9. List Properties
      1. 9.1. The list-style-type Property
        1. 9.1.1. Styling Unordered Lists
        2. 9.1.2. Styling Ordered Lists
      2. 9.2. The list-style-image Property
      3. 9.3. The list-style-position Property
      4. 9.4. The list-style shorthand Property
      5. 9.5. Summary
      6. 9.6. Exercises
    6. 10. Backgrounds
      1. 10.1. The background-color Property
      2. 10.2. The background-image Property
      3. 10.3. The background-repeat Property
      4. 10.4. The background-position Property
        1. 10.4.1. Mixing Different Kinds of Position Values
        2. 10.4.2. Tiling and Position
      5. 10.5. The background-attachment Property
      6. 10.6. The background shorthand Property
      7. 10.7. Summary
      8. 10.8. Exercises
    7. 11. Positioning
      1. 11.1. Introduction to Positioning
        1. 11.1.1. Absolute Positioning
        2. 11.1.2. Relative Positioning
          1. Applying Offset Positioning to Relatively Positioned Elements
        3. 11.1.3. Fixed Positioning
          1. Emulating Fixed Positioning
          2. Creating the Illusion of Fixed Positioning
            1. Stretching Content by Using Offset Properties in Pairs
            2. A Fixed Heading
            3. A Fixed Footer
            4. A Fixed Heading and a Fixed Footer
            5. Fixed Side Columns
            6. A Fixed Heading, Footer, and Side Columns
      2. 11.2. The z-axis and the z-index Property
        1. 11.2.1. The z-index Property with an Integer Value
        2. 11.2.2. Layering Nested Elements
        3. 11.2.3. The IE 6/IE 7 z-index Bug
      3. 11.3. Other Ways to Apply Positioning
        1. 11.3.1. Horizontally and Vertically Aligning Positioned Content
        2. 11.3.2. Multicolumn Layout
          1. Multicolumn Layout with a Heading and Footer
      4. 11.4. Summary
      5. 11.5. Exercises
    8. 12. Tables
      1. 12.1. Optional Table Elements
      2. 12.2. Table Captions and the caption-side Property
      3. 12.3. Table Columns
      4. 12.4. Controlling Table Width with the table-layout Property
      5. 12.5. Removing Cell Spacing with the border-collapse Property
      6. 12.6. The border-spacing Property
      7. 12.7. Summary
      8. 12.8. Exercises
  8. III. Advanced CSS and Alternative Media
    1. 13. Styling for Print
      1. 13.1. Applying Styles Based on Media
      2. 13.2. The @media Rule
      3. 13.3. Controlling Page Breaks
      4. 13.4. Summary
      5. 13.5. Exercises
    2. 14. XML
      1. 14.1. Crash Course in XML
      2. 14.2. Creating an XML Schema
        1. 14.2.1. The XML Declaration
          1. XML Declaration Attributes
          2. The XML stylesheet Declaration
      3. 14.3. The display Property
        1. 14.3.1. Styling Inline Elements with display: inline
        2. 14.3.2. Styling Block Elements with display: block
        3. 14.3.3. Styling List Items with display: list-item
          1. Generating Numbered Lists
        4. 14.3.4. Table Display Values
          1. Applying display: table
          2. Adding a Caption with display: table-caption
          3. Applying display: table-column-group and display: table-column
          4. Styling Groupings, Table Rows, and Table Cells
      4. 14.4. Other Display Values
      5. 14.5. Summary
      6. 14.6. Exercises
    3. 15. The Cursor Property
      1. 15.1. Cursor Compatibility
      2. 15.2. Custom Cursors
      3. 15.3. Additional CSS Resources
      4. 15.4. Beginning CSS, Second Edition Online
      5. 15.5. Summary
      6. 15.6. Exercises
    4. 16. Using Dean Edwards's "IE7"
      1. 16.1. Approaching CSS Bugs in IE
      2. 16.2. How Dean Edwards's "IE7" Came to Be
      3. 16.3. What Dean Edwards's "IE7" Is
      4. 16.4. Getting the Source Code for Dean Edwards's "IE7"
      5. 16.5. CSS Features Provided by Dean Edwards's "IE7"
      6. 16.6. Installing an HTTP Server
        1. 16.6.1. Installing Apache for Windows
        2. 16.6.2. Apache for Mac OS X
        3. 16.6.3. IIS in Windows
      7. 16.7. Installing Dean Edwards's "IE7"
      8. 16.8. Applying Dean Edwards's "IE7"
      9. 16.9. Summary
  9. A. Answers to Exercises
    1. A.1. Chapter 2
    2. A.2. Chapter 3
    3. A.3. Chapter 4
    4. A.4. Chapter 5
    5. A.5. Chapter 6
    6. A.6. Chapter 7
    7. A.7. Chapter 8
    8. A.8. Chapter 9
    9. A.9. Chapter 10
    10. A.10. Chapter 11
    11. A.11. Chapter 12
    12. A.12. Chapter 13
    13. A.13. Chapter 14
    14. A.14. Chapter 15
  10. B. CSS Reference
    1. B.1. Reference Conventions
    2. B.2. Selectors
    3. B.3. Pseudo-Classes
    4. B.4. Pseudo-Elements
    5. B.5. Color Properties
    6. B.6. Font Properties
    7. B.7. Background Properties
    8. B.8. Text Properties
    9. B.9. Box Model Properties
    10. B.10. Visual Effects
    11. B.11. Positioning
    12. B.12. Table Properties
    13. B.13. User Interface
    14. B.14. Generated Content, Automatic Numbering, and Lists
    15. B.15. Paged Media
    16. B.16. Microsoft Proprietary Extensions
      1. B.16.1. Visual Effects
      2. B.16.2. User-Interface
      3. B.16.3. Backgrounds
    17. B.17. Gecko Proprietary Extensions
      1. B.17.1. Pseudo-Elements
      2. B.17.2. Visual Effects
      3. B.17.3. Box Model
      4. B.17.4. User-Interface
      5. B.17.5. CSS 3 Multicolumn Layout
    18. B.18. Webkit (Safari) Proprietary Extensions
  11. C. CSS Colors
    1. C.1. Colors Sorted Alphabetically
    2. C.2. Colors Sorted by Color
      1. C.2.1. Reds
      2. C.2.2. Blues
      3. C.2.3. Greens
      4. C.2.4. Yellows
      5. C.2.5. Browns
      6. C.2.6. Grays
    3. C.3. User-Interface Color Keywords
  12. D. Browser Rendering Modes