CSS Resources (Cascading Style Sheets: The Definitive Guide)

 Cascading Style Sheets: The Definitive GuideSearch this book

Appendix A. CSS Resources

Contents:

General Information
Tips, Pointers, and Other Practical Advice
Online Communities
Bug Reporting

There are a number of very good CSS-related resources available on the Web. Here are some of them.

A.1. General Information

These resources provide a good overview of what's happening in the world of CSS or otherwise provide you with a broad look at CSS.

A.1.1. CSS Recommendations

http://www.w3.org/TR/REC-CSS1

http://www.w3.org/TR/REC-CSS2

When all else fails, you can always use the source, Luke. The specifications contain, albeit in a somewhat terse and not always easily decipherable form, the complete description of how conforming user agents should handle CSS. They also contain a complete CSS parsing grammar and forward-compatible parsing rules, both of which are invaluable to the people who write user agents but of minimal interest to almost everyone else.

A.1.2. W3C CSS Activity Page

http://www.w3.org/Style/CSS

This is, officially speaking, the online center of the CSS universe. There are links to the CSS Recommendations, to new ideas under consideration, and to other sites about CSS. There are links to historical style sheet proposals, to information about current usage and implementations of CSS, and more. There are also lists of books about CSS, news of new CSS tools, and many other useful bits of information.

A.1.3. W3C CSS Test Suite

http://www.w3.org/Style/CSS/Test/

This presents a fairly complete set of pages designed to test any CSS implementation. Each page of the suite tests various aspects of CSS properties, one property per page. The tests were largely developed by the author of this book, Håkon Lie (Opera Software), and Tim Boland (NIST), with many contributions from the CSS community and even the browser vendors themselves. If you're wondering how good your browser is at handling CSS1, this is the place to find out. As of this writing, the Test Suite covers only CSS1, but a CSS2 Test Suite is expected in the near future.

A.1.4. Error Checkers

You can save a lot of time and effort simply by running your CSS through a validity checker. This is particularly recommended if you're thinking about asking for help online, because if your CSS contains errors, the first thing the experts will tell you to do is to use a validator. May as well get into the practice first.

A.1.4.1. W3C CSS Validator

http://jigsaw.w3.org/css-validator/

If you're having trouble getting your style sheets to work, it might be the result of a typographical error, or some other basic error that is difficult to diagnose. You could spend a long time combing through your styles, exhaustively checking each rule for correctness -- and that's a good exercise, of course -- but you could also have a program do it for you, and simply tell you if it found any errors. The W3C CSS Validator will do exactly that. You can supply it with the URL of a style sheet or document containing styles, or simply paste a block of styles into an input field, and let the validator tell you if your problems are the result of a misspelled color name (or something similar). The chief drawback, for most people, is the technical nature of its reporting. Unless you're already familiar with HTML and CSS, the results you get back may be somewhat confusing.

A.1.4.2. WDG CSScheck

http://www.htmlhelp.com/tools/csscheck/

Similar in nature to the W3C's validator, CSScheck offers much friendlier error messages, which makes it more useful to the beginning author. In addition to indicating the severity of the error with whimsical icons (American-style traffic signals, at last check), CSScheck provides a message detailing each problem, as well as the reason it is a problem. It is possible to learn a great deal about good document authoring practices simply by running a few style sheets through CSScheck and carefully reading its responses.

Previous | Home | Next
11.2. Tips & Tricks | Book Index | A.2. Tips, Pointers, and Other Practical Advice
Library Navigation Links

Copyright © 2002 O'Reilly & Associates. All rights reserved.


Tips, Pointers, and Other Practical Advice (Cascading Style Sheets: The Definitive Guide)

A.2. Tips, Pointers, and Other Practical Advice

Once you've gotten through all the general information and checked your documents for errors, you'll probably be looking for some real-world advice on how to use CSS, where some pitfalls may be, and why your letter-perfect CSS isn't displaying in quite the way you think it should.

A.2.1. Style Sheets Reference Guide (SSRG)

http://www.webreview.com/style/index.shtml

This site is home of the Browser Compatibility Charts, which is its main claim to fame. The Chart is a listing of every property and value in CSS1 and the status of its support in each of several major browsers, with notes explaining the ratings. As of this writing, the Chart covered 10 major browser versions, with more expected, and there were plans afoot to add CSS2 support tracking to the charts as well.

The SSRG is also the home of the Web Review column "A Sense of Style," with archives of all the articles, and sections devoted to CSS question and answers, common mistakes with CSS, cool ways to use styles, and more. (Disclaimer: the SSRG is edited and maintained by the author of this book.)

A.2.2. CSS Pointers Group (CPG)

http://css.nu/

Maintained by CSS gurus Sue Sims and Jan Roland Eriksson, the CPG is a wonderful collection of articles, bug reports, workarounds, and literally hundreds of other resources. Many of the pointers listed are simply links to material generated by various people throughout the Web, but some of the best articles are the work of Sue and Roland themselves. The site can be a little difficult to navigate at first, but the enormous wealth of information available through these pages makes the effort well worth it.

A.2.3. WSP CSS Samurai Reports

http://www.webstandards.org/css/

A series of documents detailing the major failings in CSS support in available web browsers, written by the CSS Action Committee -- or, as they are sometimes called, the "CSS Samurai" -- of the Web Standards Project (WSP). As of this writing, there were reports covering Internet Explorer for both Windows and Macintosh, and Opera for Windows. These reports offer an interesting insight into what can go wrong in browser support, what designers want to see, and how to test for CSS support problems.

A.2.3.1. Agitprop

http://style.cleverchimp.com/

A small collection of articles and observations written by Todd Fahrner, this site is a gold mine of detailed information. Each and every one of the articles here contains information CSS authors can use and should know by heart, from "The Amazing em Unit" to "Why Points Suck." This site should be visited by anyone serious about understanding the design trade-offs inherent in any design project, and the special issues surrounding CSS design in particular.

Previous | Home | Next
A. CSS Resources | Book Index | A.3. Online Communities


Online Communities (Cascading Style Sheets: The Definitive Guide)

A.3. Online Communities

One can read only so much before it comes time to join a discussion and ask some questions. There are two major venues for discussions about CSS, but each is concerned with a specific type of discussion -- so make sure you go to the right place.

A.3.1. comp.infosystems.www.authoring.stylesheets

This Usenet group, often abbreviated as ciwas (pronounced "see-wass"), is the gathering place for CSS authors. A number of experts in the field check this newsgroup regularly, this author among them, and all are there for one primary reason: to help new CSS authors over the hurdles that learning any new language will generate. The secondary reason is for the spirited debates that occasionally erupt over some aspect of CSS, or a browser's implementation thereof. Rather unusually for a newsgroup, the signal-to-noise ratio stayed fairly high for the last few years of the 1990s, and will with any luck continue in that vein.

A.3.2. www-style@w3.org

Anyone who wishes to be involved in discussing the future course of CSS, and to clearing up ambiguities in the specifications, should subscribe to this list. The members of the list are all, in one fashion or another, interested in making CSS better than it is already. Please note: www-style is not the place to ask for assistance with writing CSS. For help with CSS authoring problems, visit ciwas instead. Questions beginning with "How do I ... ?" are frowned upon by the regulars of www-style and are usually redirected to a more appropriate forum such as ciwas. On the other hand, questions that begin "Why can't I ... ?" or "Wouldn't it be cool if ... ?" are generally welcome, so long as they relate to some ability that appears to be missing from CSS.

Messages to www-style are only accepted if the sender is already subscribed to the list. In order to subscribe, send email to www-style-request@w3.org with the word subscribe in the subject of the message; to unsubscribe, send email to www-style-request@w3.org with the word unsubscribe in the subject of the message.

Previous | Home | Next
A.2. Tips, Pointers, and Other Practical Advice | Book Index | A.4. Bug Reporting


Bug Reporting (Cascading Style Sheets: The Definitive Guide)

A.4. Bug Reporting

So you've validated your styles, checked for browser support, talked with experts, and it turns out that you've found a new bug in your web browser -- one that nobody has yet mentioned online, and that you suspect may have been previously unknown. Here's how to let the browser manufacturer know.

Vendor | Reporting page
Microsoft | http://register.microsoft.com/contactus/contactus.asp (Select "Reporting a product bug" from the Microsoft Products menu.)
Netscape | http://help.netscape.com/forms/bug-client.html
Opera | http://www.operasoftware.com/bugreport.html
Previous | Home | Next
A.3. Online Communities | Book Index | B. HTML 2.0 Style Sheet


HTML 2.0 Style Sheet (Cascading Style Sheets: The Definitive Guide)

Appendix B. HTML 2.0 Style Sheet

The style sheet provided in this chapter was excerpted from the CSS1 specification and is included here to give authors an idea of how legacy browser behavior in handling HTML can be reproduced, or at least approximated, using CSS1 rules. A thorough understanding of this style sheet is a good first step to understanding how CSS1 operates. The simpler HTML 2.0 style sheet is reproduced here in order to minimize complexity and possible confusion. A suggested style sheet for HTML 3.2 is also available on the W3C web site, as part of the CSS2 specification.

This HTML 2.0 style sheet was written by Todd Fahrner, in accordance with the suggested rendering in the HTML 2.0 specification:

 BODY {
  margin: 1em;
  font-family: serif;
  line-height: 1.1;
  background: white;
  color: black;
 }

 H1, H2, H3, H4, H5, H6, P, UL, OL, DIR, MENU, DIV,
 DT, DD, ADDRESS, BLOCKQUOTE, PRE, BR, HR { display: block }

 B, STRONG, I, EM, CITE, VAR, TT, CODE, KBD, SAMP,
 IMG, SPAN { display: inline }

 LI { display: list-item }

 H1, H2, H3, H4 { margin-top: 1em; margin-bottom: 1em }
 H5, H6 { margin-top: 1em }
 H1 { text-align: center }
 H1, H2, H4, H6 { font-weight: bold }
 H3, H5 { font-style: italic }

 H1 { font-size: xx-large }
 H2 { font-size: x-large }
 H3 { font-size: large }

 B, STRONG { font-weight: bolder } /* relative to the parent */
 I, CITE, EM, VAR, ADDRESS, BLOCKQUOTE { font-style: italic }
 PRE, TT, CODE, KBD, SAMP { font-family: monospace }

 PRE { white-space: pre }

 ADDRESS { margin-left: 3em }
 BLOCKQUOTE { margin-left: 3em; margin-right: 3em }

 UL, DIR { list-style: disc }
 OL { list-style: decimal }
 MENU { margin: 0 }      /* tight formatting */
 LI { margin-left: 3em }

 DT { margin-bottom: 0 }
 DD { margin-top: 0; margin-left: 3em }

 HR { border-top: solid }   /* 'border-bottom' could also have been used */

 A:link { color: blue }    /* unvisited link */
 A:visited { color: red }   /* visited links */
 A:active { color: lime }   /* active links */

 /* setting the anchor border around IMG elements
   requires contextual selectors */

 A:link IMG { border: 2px solid blue }
 A:visited IMG { border: 2px solid red }
 A:active IMG { border: 2px solid lime }
Previous | Home | Next
A.4. Bug Reporting | Book Index | C. CSS1 Properties


CSS1 Properties (Cascading Style Sheets: The Definitive Guide)

Appendix C. CSS1 Properties

This appendix lists all CSS1 properties, plus the CSS1 pseudo-elements and pseudo-classes. The values to the right of a property name show the browser compatibility information for that property. They will look something like this:

IE4 Y/N IE5 Y/Y NN4 N/N Op3 Y/-

The browsers listed are:

NN4

Netscape Navigator 4

IE4

Internet Explorer 4 (IE4.5 for Macintosh)

IE5

Internet Explorer 5

Op3

Opera 3.6

The first value in each pair is for the Windows version; the second value is for the Macintosh version. (Sorry, Macintosh folks, but we are in the minority.) For instance, IE4 Y/N means that the property is supported in IE4 for Windows, but not IE4 for Macintosh. The possible support values are:

Y

Supported

N

Not Supported

P

Partial Support (may mean that some values are supported and others are not)

Q

Quirky Support (close to the letter of the specification)

B

Buggy Support (may mangle display, or even crash the browser)

-

Not Applicable (browser doesn't exist)

For more detailed information about browser support, including notes on the support ratings, see Appendix D, "CSS Support Chart".

:active IE4 Y/Y IE5 Y/Y NN4 N/N Op3 N/-

This pseudo-class applies to hyperlinks, but not named anchors. It sets the styles to be used at the moment a hyperlink is being selected (e.g., clicked).

Example

A:active {color: red; background: yellow;}

Values

n/a

Default

n/a

Inherited

yes

Applies to

anchor elements with an HREF attribute

:first-letter IE4 N/N IE5 N/Y NN4 N/N Op3 Y/-

Applies styles to the first letter of an element. This pseudo-class can be used to generate drop-cap effects, among other things.

Example

P:first-letter {color: purple;}
    <P>The capital 'T' at the beginning of this paragraph is purple.</P>

Values

n/a

Default

n/a

Inherited

yes

Applies to

block

:first-line IE4 N/N IE5 N/Y NN4 N/N Op3 Y/-

Applies styles to the first line of an element. The styles are applied even if the window is resized; the text is simply restyled to encompass only the first line of the element.

Example

P:first-line {color: red;}
    <P>The first line of this paragraph is red. blah blah blah...</P>

Values

n/a

Default

n/a

Inherited

yes

Applies to

block

!important IE4 Y/N IE5 Y/Y NN4 N/N Op3 Y/-

Style declaration is made important, thereby raising its weight in the cascade. Important declarations override all others. In CSS1, important author styles override all reader styles, even important ones. In CSS2, this is reversed, so that important reader styles always win out over the author's styles, important or otherwise.

Example

H1 {color: maroon !important;}
P.warning {color: rgb(100%,20%,20%) !important; font-weight: bold;}

Values

n/a

Default

n/a

Inherited

yes

Applies to

style rules

:link IE4 Y/Y IE5 Y/Y NN4 Y/Y Op3 Y/-

This pseudo-class applies to hyperlinks, but not named anchors. It sets the styles to be used for a hyperlink that points to a URI that has not yet been visited (i.e., is not listed in the browser's history).

Example

A:link {color: blue;}

Values

n/a

Default

n/a

Inherited

yes

Applies to

anchor elements with an HREF attribute

:visited IE4 Y/Y IE5 Y/Y NN4 N/N Op3 Y/-

This pseudo-class applies to hyperlinks, but not named anchors. It sets the styles to be used for a hyperlink that points to a URI that has already been visited (i.e., is listed in the browser's history).

Example

A:visited {color: navy;}

Values

n/a

Default

n/a

Inherited

yes

Applies to

anchor elements with an HREF attribute

background IE4 P/Y IE5 Y/Y NN4 P/P Op3 P/-

A shorthand way of expressing the various background properties using a single rule. Use of this property is encouraged over the other background properties because it is more widely supported and doesn't take as long to type.

Example

BODY {background: white url(bg41.gif) fixed center repeat-x;}
P {background: #555 url(http://www.pix.org/stone.png);}
PRE {background: yellow;}

Values

<background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position>

Default

refer to individual properties

Inherited

no

Applies to

all elements

Percentage values allowed on <background-position>.

background-attachment IE4 Y/Y IE5 Y/Y NN4 N/N Op3 N/-

This property defines whether or not the background image scrolls along with the element. This is generally applied to BODY only, and in fact is largely supported only for that element. It is theoretically possible to create "aligned" backgrounds in multiple elements using this property; see Chapter 6, "Colors and Backgrounds", for more details.

Example

BODY {background-attachment: scroll;}
DIV.fixbg {background-attachment: fixed;}

Values

scroll | fixed

Default

scroll

Inherited

no

Applies to

all elements

background-color IE4 Y/Y IE5 Y/Y NN4 B/B Op3 Y/-

This sets the background color of an element. The color fills the content area and padding, and extends out to the outer edge of the element's border. The value transparent trips across a nasty bug in Navigator 4.x, which interprets it as black.

Example

H4 {background-color: white;}
P {background-color: rgb(50%,50%,50%);}
PRE {background-color: #FFFF99;}

Values

<color> | transparent

Default

transparent

Inherited

no

Applies to

all elements

background-image IE4 Y/Y IE5 Y/Y NN4 Y/Y Op3 Y/-

Sets an image to be the background pattern. Depending on the value of background-repeat, the background image may tile indefinitely, or only along one axis, or not at all, and the starting position of the tiling is dependent on the value of background-position.

Example

BODY {background-image: url(bg41.gif);}
H2 {background-image: url(http://www.pix.org/dots.png);}

Values

<url> | none

Default

none

Inherited

no

Applies to

all elements

background-position IE4 Y/Y IE5 Y/Y NN4 N/N Op3 Y/-

This sets the starting position of a background image (defined by the value of background-image). background-position is used to set the origin of the background's tiling, or its position if there is no tiling. Percentage values define not only a point within the element, but also the same point in the origin image itself; see Chapter 6, "Colors and Backgrounds" for more details.

Example

BODY {background-position: top center;}

Values

[<percentage> | <length>]{1,2} | [top | center | bottom] || [left | center | right]

Default

0% 0%

Inherited

no

Applies to

block-level and replaced

Percentage values refer to the size of the element itself as well as the size of the origin image.

background-repeat IE4 P/Y IE5 Y/Y NN4 P/B Op3 Y/-

Sets the repeat style for a background image. Note that the axis-related repeats actually repeat in both directions along the specified axis. The repeating of a background image begins with the origin image, whose position is defined by the value of background-position.

Example

BODY {background-repeat: no-repeat;}

Values

repeat | repeat-x | repeat-y | no-repeat

Default

repeat

Inherited

no

Applies to

all elements

border IE4 P/P IE5 P/Y NN4 P/P Op3 P/-

This is a shorthand property that defines the width, color, and style of the border of an element. Note that while none of the values are required, omitting the <border-style> value will result in no border being applied, since the default of border-style is none.

Example

H1 {border: 2px dashed maroon;}

Values

<border-width> || <border-style> || <color>

Default

not defined for shorthand properties

Inherited

no

Applies to

all elements

border-bottom IE4 P/P IE5 P/Y NN4 N/N Op3 P/-

This shorthand property defines the width, color, and style of the bottom border of an element. The same caveats about border-style apply.

Example

UL {border-bottom: 0.5in inset green;}

Values

<border-bottom> || <border-style> || <color>

Default

not defined for shorthand properties

Inherited

no

Applies to

all elements

border-bottom-width IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

Sets the width of the bottom border of an element, which will inherit the element's background, and may have a foreground of its own (see border-style). Negative length values are not permitted.

Example

UL {border-bottom-width: 0.5in;}

Values

thin | medium | thick | <length>

Default

medium

Inherited

no

Applies to

all elements

border-color IE4 Y/Y IE5 Y/Y NN4 P/P Op3 Y/-

Sets the color of the foreground of the overall border of an element (see border-style).

Example

H1 {border-color: purple; border-style: solid;}

Values

<color>{1,4}

Default

the value of color for the element itself

Inherited

no

Applies to

all elements

border-left IE4 P/P IE5 P/Y NN4 N/N Op3 P/-

This shorthand property defines the width, color, and style of the left border of an element. The usual caveats about border-style apply.

Example

P {border-left: 3em solid gray;}

Values

<border-left> || <border-style> || <color>

Default

not defined for shorthand properties

Inherited

no

Applies to

all elements

border-left-width IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

Sets the width of the left border of an element, which will inherit the element's background, and may have a foreground of its own (see border-style). Negative length values are not permitted.

Example

P {border-left-width: 3em;}

Values

thin | medium | thick | <length>

Default

medium

Inherited

no

Applies to

all elements

border-right IE4 P/P IE5 P/Y NN4 N/N Op3 P/-

This shorthand property defines the width, color, and style of the right border of an element. The usual caveats about border-style apply.

Example

IMG {border-right: 30px dotted blue;}

Values

<border-right> || <border-style> || <color>

Default

not defined for shorthand properties

Inherited

no

Applies to

all elements

border-right-width IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

Sets the width of the right border of an element, which will inherit the element's background, and may have a foreground of its own (see border-style). Negative length values are not permitted.

Example

IMG {border-right-width: 30px;}

Values

thin | medium | thick | <length>

Default

medium

Inherited

no

Applies to

all elements

border-style IE4 P/Y IE5 P/Y NN4 P/P Op3 Y/-

Sets the style of the overall border of an element, using the color set by border-color or the foreground of the element itself if no border-color has been defined. CSS1 does not require recognition of any values besides none and solid. Any unrecognized value from the list of values should be reinterpreted as solid.

Example

H1 {border-style: solid; border-color: purple;}

Values

none | dotted | dashed | solid | double | groove | ridge | inset | outset

Default

none

Inherited

no

Applies to

all elements

border-top IE4 P/P IE5 P/Y NN4 N/N Op3 P/-

This shorthand property defines the width, color, and style of the top border of an element. The usual caveats about border-style apply.

Example

UL {border-top: 0.5in solid black;}

Values

<border-top> || <border-style> || <color>

Default

not defined for shorthand properties

Inherited

no

Applies to

all elements

border-top-width IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

Sets the width of the top border of an element, which will inherit the element's background, and may have a foreground of its own (see border-style). Negative length values are not permitted.

Example

UL {border-top-width: 0.5in;}

Values

thin | medium | thick | <length>

Default

medium

Inherited

no

Applies to

all elements

border-width IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

Sets the width of the overall border of an element, which will inherit the element's background, and may have a foreground of its own (see border-style). Negative length values are not permitted.

Example

H1 {border-width: 2ex;}

Values

[ thin | medium | thick | <length> ]{1,4}

Default

not defined for shorthand properties

Inherited

no

Applies to

all elements

clear IE4 P/Y IE5 P/Y NN4 P/P Op3 B/-

Defines the sides of an element on which no floating images may be placed. The effect of this is to move the element downward until the top of its border-edge is below the bottom edge of the floated element.

Example

H1 {clear: right;}

Values

none | left | right | both

Default

none

Inherited

no

Applies to

all elements

color IE4 Y/Y IE5 Y/Y NN4 Y/Y Op3 Y/-

Sets the foreground color of a given element. For text, this sets the text color. The value of color is inherited by any borders of an element, unless they have had a color set border-color.

Example

STRONG {color: rgb(255,128,128);}

Values

<color>

Default

UA specific

Inherited

yes

Applies to

all elements

display IE4 P/P IE5 P/Y NN4 P/P Op3 P/-

Used to classify elements into broad categories. The most popular value is probably none, which suppresses the display of an element altogether. Gratuitous use of display with a document type such as HTML can be dangerous, since HTML already has a display hierarchy defined. However, in the case of XML, which has no such hierarchy, display is indispensable.

In CSS2, the range of values for display is dramatically expanded. See Chapter 10, "CSS2: A Look Ahead", for more details.

Example

.hide {display: none;}

Values

block | inline | list-item | none

Default

block

Inherited

no

Applies to

all elements

float IE4 P/B IE5 P/Q NN4 P/P Op3 B/-

Sets the float direction for an element. This is generally applied to images in order to allow text to flow around them, but under CSS1 any element may be floated. Note that, for elements such as paragraph, floating the element will cause its width to tend toward zero unless an explicit width is assigned; thus, width assignment is a crucial part of floating any nonreplaced element.

Example

IMG {float: left;}

Values

left | right | none

Default

none

Inherited

no

Applies to

all elements

font IE4 P/Q IE5 P/Y NN4 P/P Op3 Y/-

This is a shorthand property for the other font properties. Any of these values may be omitted except for font-size and font-family, which are always required for a valid font declaration. Note the following incorrect examples.

Example

P {font: bold 12pt/14pt Helvetica,sans-serif;}
P.wrong {font: bold Helvetica,sans-serif;} /* missing a font-size */
P.wrong {font: 12pt Times,serif bold;}   /* font-weight must come before others */
P.wrong {font: 12pt italic Times;}   /* font-style must come before font-size */
P.fancy {font: 14pt Author;}   /* technically correct, although generic font-families are encouraged for fallback purposes */

Values

[ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height> ] ? <font-family>

Default

refer to individual properties

Inherited

yes

Applies to

all elements

font-family IE4 Y/Y IE5 Y/Y NN4 Y/Y Op3 Y/-

This is used to declare a specific font to be used, or a generic font family, or both. Note that the use of a specific font family is dependent on the user having said font installed on the system. Thus the use of generic font families is strongly encouraged, since this will cause the user agent to attempt to substitute a similar font.

Example

P {font-family: Helvetica,sans-serif;}

Values

[[<family-name> | <generic-family>],]* [<family-name> | <generic-family>]

Default

UA specific

Inherited

yes

Applies to

all elements

font-size IE4 P/Q IE5 P/Y NN4 Y/Y Op3 Y/-

This sets the size of the font. This can be defined as an absolute size, a relative size, a length value, or a percentage value. Negative length and percentage values are not permitted. The dangers of font-size assignment are many and varied. Some of these dangers are covered in Chapter 4, "Text Properties".

Example

H2 {font-size: 200%;}
H3 {font-size: 36pt;}

Values

xx-small | x-small | small | medium | large | x-large | xx-large | larger | smaller | <length> | <percentage>

Default

medium

Inherited

yes

Applies to

all elements

Percentage values are relative to the parent element's font size.

font-style IE4 Y/Y IE5 Y/Y NN4 P/P Op3 Y/-

This set the font to use either italic, oblique, or normal text. Italic text is generally a defined font face within the font itself, whereas oblique text is less often so. In the latter case, the user agent can compute a slanted font face.

Example

EM {font-style: oblique;}

Values

normal | italic | oblique

Default

normal

Inherited

yes

Applies to

all elements

font-variant IE4 Q/Y IE5 Q/Y NN4 N/N Op3 Y/-

This property currently has two values: small-caps and normal. The small-caps variant can either be applied as a face of the selected font or computed by the user agent.

Example

H3 {font-variant: small-caps;}

Values

normal | small-caps

Default

normal

Inherited

yes

Applies to

all elements

font-weight IE4 Y/Y IE5 Y/Y NN4 P/P Op3 Y/-

This is used to set the weight of a font, making it heavier or lighter. The numeric value 400 is equivalent to the value normal, and 700 is equal to bold. Each numeric value is at least as heavy as the next-lower value, and at least as light as the next-higher number.

Example

B {font-weight: 700;}

Values

normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900

Default

normal

Inherited

yes

Applies to

all elements

height IE4 Y/Y IE5 Y/Y NN4 N/N Op3 Y/-

This is used to set the height of an element. Height is most often applied to images, but can be used on any block-level or replaced element, although support for such behavior is not widespread as of this writing. Negative length values are not permitted.

Example

IMG.icon {height: 50px;}

Values

<length> | auto

Default

auto

Inherited

no

Applies to

block-level and replaced

letter-spacing IE4 Y/Y IE5 Y/Y NN4 N/N Op3 Y/-

Used to set the amount of whitespace between letters. A letter is defined as any displayed character, including numbers, symbols, and other font glyphs. Length values are used to define a modifier to the usual spacing, not the entire space itself; thus, normal is synonymous with 0 (zero). Negative values are permitted, and cause the letters to bunch closer together.

Example

P {letter-spacing: 0.5em;}

Values

normal | <length>

Default

normal

Inherited

yes

Applies to

all elements

line-height IE4 P/P IE5 P/Y NN4 P/P Op3 Q/-

This influences the layout of line boxes. The difference between the value of line-height and the value of font-size is called leading, and half of the leading (otherwise known as half-leading) is applied above and below the content of an element or line of text. Negative values are not permitted. Using a number defines a scaling factor that is multiplied by the font-size, and the number itself is inherited, not the computed value. This allows for much more intelligent page layout, and is strongly preferred over other methods of setting line-height.

The drawback to using a number value is that IE3 will interpret it as a number of pixels. See Chapter 8, "Visual Formatting" for a detailed discussion of line-height and line boxes.

Example

P {line-height: 18pt;}
H2 {line-height: 200%;}

Values

normal | <number> | <length> | <percentage>

Default

normal

Inherited

yes

Applies to

all elements

Percentage values relative to the font size of the element itself

list-style IE4 P/P IE5 Y/Y NN4 P/P Op3 Y/-

A shorthand property condensing all other list-style properties. It applies to all elements with a display value of list-item ; in ordinary HTML, this is any <LI> element.

Example

UL {list-style: square url(bullet3.gif) outer;}  /* values are inherited by LI elements */

Values

[disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none] || [inside | outside] || [<url> | none]

Default

not defined for shorthand properties

Inherited

yes

Applies to

elements with display of list-item

list-style-image IE4 Y/Y IE5 Y/Y NN4 N/N Op3 Y/-

Used to declare an image which is to be used as the "bullet" in an unordered or ordered list. This style applies to elements with a display value of list-item (e.g., <LI> elements). The position of the image with respect to the content of the list item is defined using list-style-position.

Example

UL {list-style-image: url(bullet3.gif);}

Values

<url> | none

Default

none

Inherited

yes

Applies to

elements with display of list-item

list-style-position IE4 Y/Y IE5 Y/Y NN4 N/N Op3 Y/-

This property is used to declare the position of the bullet or number in an unordered or ordered list with respect to the content of the list item. Applies to elements with a display value of list-item. If the bullet is set to be outside, then it is placed in the margin of the list-item element. The exact behavior in this circumstance is not defined in CSS.

Example

LI {list-style-position: outer;}

Values

inside | outside

Default

outside

Inherited

yes

Applies to

elements with display of list-item

list-style-type IE4 Y/Y IE5 Y/Y NN4 Y/P Op3 Y/-

This is used to declare the type of bullet numbering system to be used in either an unordered or ordered list, depending on the value specified. This property applies to elements with a display value of list-item.

Example

UL {list-style-type: square;}
OL {list-style-type: lower-roman;}

Values

disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none

Default

disc

Inherited

yes

Applies to

elements with display of list-item

margin IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

This sets the size of the overall margin of an element. Vertically adjacent margins of block-level elements are collapsed to be as large as the largest margin, whereas inline elements effectively do not take margins (they are allowed, but have no effect on page layout). Only the left and right margins of inline elements have any effect, and are not collapsed. Margins set on floated elements are not collapsed with other margins under any circumstance. Negative values are permitted, but caution is recommended.

Example

H1 {margin: 2ex;}

Values

[ <length> | <percentage> | auto ]{1,4}

Default

not defined for shorthand properties

Inherited

no

Applies to

all elements

Percentage values refer to width of the closest block-level ancestor.

margin-bottom IE4 P/P IE5 P/Y NN4 N/N Op3 Y/-

This sets the size of the bottom margin of an element. Negative values are permitted, but caution is recommended.

Example

UL {margin-bottom: 0.5in;}

Values

<length> | <percentage> | auto

Default

0

Inherited

no

Applies to

all elements

Percentage values refer to the width of the closest block-level ancestor.

margin-left IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

This sets the size of the left margin of an element. Negative values are permitted, but caution is recommended.

Example

P {margin-left: 3em;}

Values

<length> | <percentage> | auto

Default

0

Inherited

no

Applies to

all elements

Percentage values refer to width of the closest block-level ancestor.

margin-right IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

This sets the size of the right margin of an element. Negative values are permitted, but caution is recommended.

Example

IMG {margin-right: 30px;}

Values

<length> | <percentage> | auto

Default

0

Inherited

no

Applies to

all elements

Percentage values refer to width of the closest block-level ancestor.

margin-top IE4 P/P IE5 P/Y NN4 P/P Op3 Y/-

This sets the size of the top margin of an element. Negative values are permitted, but caution is recommended.

Example

UL {margin-top: 0.5in;}

Values

<length> | <percentage> | auto

Default

0

Inherited

no

Applies to

all elements

Percentage values refer to the width of the closest block-level ancestor.

padding IE4 P/P IE5 P/Y NN4 B/B Op3 B/-

This sets the size of the overall padding of an element. The padding will "inherit" the element's background; in other words, the background of an element fills its content area and padding. Padding set on inline elements does not affect line-height calculations, but will be applied to the right and left ends of the element. If an inline element has both padding and a background, the background may be extended above and below the edges of the line-box in which the inline element appears, but user agents are not required to support this behavior. There is also no defined behavior to say whether the foreground content of a previous line appears above the background of a succeeding line, or is overwritten by that background. Negative values are not permitted.

Example

H1 {padding: 2ex;}

Values

[ <length> | <percentage> ]{1,4}

Default

not defined for shorthand properties

Inherited

no

Applies to

all elements

Percentage values refer to the width of closest block-level ancestor.

padding-bottom IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

This property sets the size of the bottom padding of an element, and this padding will "inherit" the element's background. Negative values are not permitted.

Example

UL {padding-bottom: 0.5in;}

Values

<length> | <percentage>

Default

0

Inherited

no

Applies to

all elements

Percentage values refer to the width of closest block-level ancestor.

padding-left IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

This property sets the size of the left padding of an element, and this padding will "inherit" the element's background. Negative values are not permitted.

Example

P {padding-left: 3em;}

Values

<length> | <percentage>

Default

0

Inherited

no

Applies to

all elements

Percentage values refer to the width of closest block-level ancestor.

padding-right IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

This property sets the size of the right padding of an element, and this padding will "inherit" the element's background. Negative values are not permitted.

Example

IMG {padding-right: 30px;}

Values

<length> | <percentage>

Default

0

Inherited

no

Applies to

all elements

Percentage values refer to the width of closest block-level ancestor.

padding-top IE4 P/P IE5 P/Y NN4 B/B Op3 Y/-

This property sets the size of the top padding of an element, and this padding will "inherit" the element's background. Negative values are not permitted.

Example

UL {padding-top: 0.5in;}

Values

<length> | <percentage>

Default

0

Inherited

no

Applies to

all elements

Percentage values refer to the width of the closest block-level ancestor.

text-align IE4 Y/P IE5 Y/Y NN4 Y/P Op3 Y/-

This sets the horizontal alignment of the text in an element, or more precisely, defines to which side of the element the line-boxes are aligned. The value justify is supported by programmatically adjusting the letter- and word-spacing of the line's content, and results may vary by user agent.

Example

P {text-align: justify;}
H4 {text-align: center;}

Values

left | right | center | justify

Default

UA specific

Inherited

yes

Applies to

block

text-decoration IE4 P/P IE5 P/P NN4 Q/Q Op3 P/-

This property sets certain effects on the text, such as underline and blink. These decorations will "span" child elements that do not have text decoration defined; see Chapter 4, "Text Properties" for more details. Combinations of the values are legal.

User agents are not required to support the value blink, and in fact only Netscape Navigator 4.x does so.

Example

U {text-decoration: underline;}
.old {text-decoration: line-through;}
U.old {text-decoration: line-through underline;}

Values

none | [ underline ||
overline || line-through
|| blink ]

Default

none

Inherited

no

Applies to

all elements

text-indent IE4 Y/Y IE5 Y/Y NN4 Y/Y Op3 Y/-

Used to set the indentation of the first line of an element. This is most often used to create a tab effect for Negative values are permitted, and cause "hanging indents."

Example

P {text-indent: 5em;}
H2 {text-indent: -25px;}

Values

<length> | <percentage>

Default

0

Inherited

yes

Applies to

block

Percentage values refer to parent element's width.

text-transform IE4 Y/Y IE5 Y/Y NN4 Y/Y Op3 P/-

This property changes the case of the letters in the element, regardless of the case of the original text. The selection of letters to be capitalized by the value capitalize is not a precisely defined behavior, depending as it does on "words," which are difficult to define in a programmatic way.

Example

H1 {text-transform: uppercase;}
.title {text-transform: capitalize;}

Values

capitalize | uppercase | lowercase | none

Default

none

Inherited

yes

Applies to

all elements

vertical-align IE4 P/P IE5 P/Y NN4 N/N Op3 P/-

Used to set the vertical alignment of an element's baseline with respect to its line-height. Negative percentage values are permitted, and will cause the element to be lowered, not raised.

Example

SUP {vertical-align: super;}
.fnote {vertical-align: 50%;}

Values

baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage>

Default

baseline

Inherited

no

Applies to

inline

Percentage values refer to the line height of the element itself.

white-space IE4 N/N IE5 N/Y NN4 P/P Op3 N/-

This property defines how whitespace within the element is treated. normal acts like traditional web browsers, in that it reduces any sequence of whitespace to a single space. pre causes whitespace to be treated as it is in the HTML element PRE, with whitespace and returns preserved. nowrap prevents an element from line breaking.

Example

TD {white-space: nowrap;}
TT {white-space: pre;}

Values

normal | pre | nowrap

Default

normal

Inherited

yes

Applies to

block

width IE4 P/Y IE5 P/Y NN4 P/P Op3 Q/-

Used to set the width of an element. This is most often applied to images, but can be used on any block-level or replaced element. Negative values are not permitted.

Example

TABLE {width: 80%;}

Values

<length> | <percentage> | auto

Default

auto

Inherited

no

Applies to

block-level and replaced

Percentage values refer to the parent element's width.

word-spacing IE4 N/Y IE5 N/Y NN4 N/N Op3 Y/-

Used to set the amount of whitespace between words. A "word" is defined as a string of characters surrounded by whitespace. Length values are used to define a modifier to the usual spacing, not the entire space itself; thus, normal is synonymous with 0 (zero). Negative values are permitted, and cause the words to bunch closer together.

Example

P {word-spacing: 0.5em;}

Values

normal | <length>

Default

normal

Inherited

yes

Applies to

all elements

Previous | Home | Next
B. HTML 2.0 Style Sheet | Book Index | D. CSS Support Chart


CSS Support Chart (Cascading Style Sheets: The Definitive Guide)

Appendix D. CSS Support Chart

Contents:

Notes

As we've seen, browser compatibility -- or a lack thereof -- is the biggest obstacle to adoption of CSS. This appendix provides a comprehensive guide to how the browsers have implemented support for CSS1. Check this master list to get a rough idea of how well a given property and its values are supported.

This appendix uses the following key:

Y

Yes

N

No

P

Partial

B

Buggy

Q

Quirky

"Buggy" can refer to anything from mangled display to an actual browser crash. "Quirky" means that, while the browser is technically compliant with the specification, it acts in a fashion which authors may not expect.

This list and the notes that follow are current as of April 2000. For the latest information, please visit http://www.webreview.com/style/index.shtml.

Spec Reference | Property or Value | Windows 95 |  |  |  |  | Macintosh |  |  |  | Notes
 |  | NN4 | IE3 | IE4 | IE5 | Op3 | NN4 | IE3 | IE4 | IE5
1.1 | Containment in HTML | P | P | P | P | Y | P | B | Y | Y |
 | LINK | Y | Y | Y | Y | Y | Y | B | Y | Y |
 | <STYLE>...</STYLE> | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | @import | N | N | Q | Q | Y | N | N | Y | Y | *
 | <x STYLE="dec;" > | B | Y | Y | Y | Y | B | Y | Y | Y | *
1.2 | Grouping | Y | N | Y | Y | Y | Y | Y | Y | Y |
 | x, y, z {dec;} | Y | N | Y | Y | Y | Y | Y | Y | Y |
1.3 | Inheritance | B | P | Y | Y | Y | B | B | Y | Y | *
 | (inherited values) | B | P | Y | Y | Y | B | B | Y | Y |
1.4 | Class selector | Y | B | Q | Q | Y | Y | B | Y | Y | *
 | .class | Y | B | Q | Q | Y | Y | B | Y | Y |
1.5 | ID selector | B | B | B | B | Y | B | B | B | Y | *
 | #ID | B | B | B | B | B | B | B | B | Y |
1.6 | Contextual selectors | Y | Y | Y | Y | Y | B | P | Y | Y |
 | x y z {dec;} | Y | Y | Y | Y | Y | B | P | Y | Y | *
1.7 | Comments | Y | B | Y | Y | Y | Y | Y | Y | Y |
 | /* comment */ | Y | B | Y | Y | Y | Y | Y | Y | Y |
2.1 | anchor | P | N | Y | Y | P | P | B | Y | Y |
 | A:link | Y | N | Y | Y | Y | Y | B | Y | Y |
 | A:active | N | N | Y | Y | N | N | N | Y | Y |
 | A:visited | N | N | Y | Y | Y | N | B | Y | Y |
2.3 | first-line | N | N | N | N | Y | N | B | N | Y | *
 | :first-line | N | N | N | N | Y | N | B | N | Y |
2.4 | first-letter | N | N | N | N | Y | N | B | N | Y | *
 | :first-letter | N | N | N | N | Y | N | B | N | Y |
3.1 | important | N | N | Y | Y | Y | N | N | N | Y |
 | !important | N | N | Y | Y | Y | N | N | N | Y |
3.2 | Cascading Order | B | P | Y | Y | Y | B | P | Y | Y | *
 | Weight sorting | B | Y | Y | Y | Y | B | Y | Y | Y |
 | Origin sorting | B | Y | Y | Y | Y | B | B | Y | Y |
 | Specificity sorting | B | P | Y | Y | Y | B | B | Y | Y |
 | Order sorting | B | N | Y | Y | Y | B | N | Y | Y |
5.2.2 | font-family | Y | P | Y | Y | Y | Y | P | Y | Y |
 | <family-name> | Y | Y | Y | Y | Y | Y | P | Y | Y |
 | <generic-family> | P | P | Y | Y | P | Y | P | Y | Y |
 | serif | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | sans-serif | Y | Y | Y | Y | Y | Y | N | Y | Y |
 | cursive | N | B | Y | Y | N | Y | N | Y | Y | *
 | fantasy | N | B | Y | Y | Y | Y | N | Y | Y |
 | monospace | Y | Y | Y | Y | Y | Y | Y | Y | Y |
5.2.3 | font-style | P | P | Y | Y | Y | P | P | Y | Y |
 | normal | Y | Y | Y | Y | Y | Y | N | Y | Y |
 | italic | Y | N | Y | Y | Y | Y | Y | Y | Y |
 | oblique | N | N | Y | Y | Y | N | N | Y | Y |
5.2.4 | font-variant | N | N | P | P | Y | N | N | Y | Y |
 | normal | N | N | Y | Y | Y | N | N | Y | Y |
 | small-caps | N | N | Q | Q | Y | N | N | Q | Y | *
5.2.5 | font-weight | P | P | Y | Y | Y | P | P | Y | Y |
 | normal | Y | N | Y | Y | Y | Y | N | Y | Y |
 | bold | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | bolder | Y | Y | Y | Y | Y | N | N | Y | Y |
 | lighter | N | Y | Y | Y | Y | N | N | Y | Y |
 | 100-900 | Y | N | Y | Y | Y | Y | N | Y | Y |
5.2.6 | font-size | Y | P | P | P | Y | Y | P | Q | Y |
 | <absolute-size> | Y | Y | Q | Q | Y | Y | B | Q | Y |
 | xx-small - xx-large | Y | Y | Q | Q | Y | Y | B | Q | Y | *
 | <relative-size> | Y | Y | Y | Y | Y | Y | N | Y | Y |
 | larger | Y | Y | Y | Y | Y | Y | N | Y | Y |
 | smaller | Y | Y | Y | Y | Y | Y | N | Y | Y |
 | <length> | Y | P | Y | Y | Y | Y | B | Y | Y |
 | <percentage> | Y | Y | Y | Y | Y | Y | P | Y | Y |
5.2.7 | font | P | P | P | P | Y | P | P | Q | Y |
 | <font-family> | P | Y | Y | Y | Y | Y | P | Y | Y |
 | <font-style> | P | P | Y | Y | Y | Y | P | Y | Y |
 | <font-variant> | N | N | P | P | Y | N | N | Q | Y |
 | <font-weight> | P | Y | Y | Y | Y | Y | N | Y | Y |
 | <font-size> | Y | B | Q | Q | Y | Y | B | Y | Y |
 | <line-height> | B | Y | Y | Y | Y | B | B | Y | Y |
5.3.1 | color | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | <color> | Y | Y | Y | Y | Y | Y | Y | Y | Y |
5.3.2 | background-color | B | P | Y | Y | Y | B | N | Y | Y |
 | <color> | B | B | Y | Y | Y | B | N | Y | Y | *
 | transparent | B | N | Y | Y | Y | B | N | Y | Y | *
5.3.3 | background-image | Y | N | Y | Y | Y | Y | N | Y | Y |
 | <url> | Y | N | Y | Y | Y | Y | N | Y | Y |
 | none | Y | N | Y | Y | Y | Y | N | Y | Y |
5.3.4 | background-repeat | P | N | P | Y | Y | B | N | Y | Y |
 | repeat | Y | N | B | Y | Y | Y | N | Y | Y | *
 | repeat-x | P | N | B | Y | Y | P | N | Y | Y | *
 | repeat-y | P | N | B | Y | Y | P | N | Y | Y | *
 | no-repeat | Y | N | Y | Y | Y | Y | N | Y | Y |
5.3.5 | background-attachment | N | N | Y | Y | N | N | N | Y | Y |
 | scroll | N | N | Y | Y | N | N | N | Y | Y |
 | fixed | N | N | Y | Y | N | N | N | Y | Y |
5.3.6 | background-position | N | N | Y | Y | Y | N | N | Y | Y |
 | <percentage> | N | N | Y | Y | Y | N | N | Y | Y |
 | <length> | N | N | Y | Y | Y | N | N | Y | Y |
 | top | N | N | Y | Y | Y | N | N | Y | Y |
 | center | N | N | Y | Y | Y | N | N | Y | Y |
 | bottom | N | N | Y | Y | Y | N | N | Y | Y |
 | left | N | N | Y | Y | Y | N | N | Y | Y |
 | right | N | N | Y | Y | Y | N | N | Y | Y |
5.3.7 | background | P | P | P | Y | P | P | P | Y | Y |
 | <background-color> | B | P | Y | Y | Y | P | P | Y | Y |
 | <background-image> | P | Y | Y | Y | Y | P | Y | Y | Y |
 | <background-repeat> | P | B | B | Y | Y | P | B | Y | Y |
 | <background-attachment> | N | N | Y | Y | N | N | Y | Y | Y |
 | <background-position> | N | N | Y | Y | Y | N | P | Y | Y |
5.4.1 | word-spacing | N | N | N | N | Y | N | N | Y | Y |
 | normal | N | N | N | N | Y | N | N | Y | Y |
 | <length> | N | N | N | N | Y | N | N | Y | Y |
5.4.2 | letter-spacing | N | N | Y | Y | Y | N | N | Y | Y |
 | normal | N | N | Y | Y | Y | N | N | Y | Y |
 | <length> | N | N | Y | Y | Y | N | N | Y | Y |
5.4.3 | text-decoration | Q | P | P | P | P | Q | P | P | P |
 | none | Q | N | Q | Q | Y | Q | Y | Q | Y | *
 | underline | Q | B | Q | Q | Y | Q | B | Q | Y |
 | overline | N | N | Y | Y | Y | N | N | Y | Y |
 | line-through | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | blink | Y | N | N | N | N | Y | N | N | N | *
5.4.4 | vertical-align | N | N | P | P | P | N | N | P | Y |
 | baseline | N | N | Y | Y | Y | N | N | Y | Y |
 | sub | N | N | Y | Y | Y | N | N | Y | Y |
 | super | N | N | Y | Y | Y | N | N | Y | Y |
 | top | N | N | N | N | B | N | N | Y | Y |
 | text-top | N | N | N | N | N | N | N | Y | Y |
 | middle | N | N | B | N | B | N | N | Y | Y |
 | bottom | N | N | N | N | B | N | N | B | Y |
 | text-bottom | N | N | N | N | N | N | N | B | Y |
 | <percentage> | N | N | N | N | Y | N | N | B | Y |
5.4.5 | text-transform | Y | N | Y | Y | P | Y | N | Y | Y |
 | capitalize | Y | N | Y | Y | Y | Y | N | Y | Y |
 | uppercase | Y | N | Y | Y | B | Y | N | Y | Y | *
 | lowercase | Y | N | Y | Y | Y | Y | N | Y | Y |
 | none | Y | N | Y | Y | Y | Y | N | Y | Y |
5.4.6 | text-align | Y | P | Y | Y | Y | P | P | P | Y |
 | left | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | right | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | center | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | justify | B | N | Y | Y | Y | B | N | N | Y | *
5.4.7 | text-indent | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | <length> | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | <percentage> | Y | Y | Y | Y | Y | Y | Y | Y | Y |
5.4.8 | line-height | P | P | Y | Y | Q | P | P | Y | Y | *
 | normal | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | <number> | P | N | Y | Y | Y | P | B | Y | Y |
 | <length> | B | Y | Y | Y | Y | B | B | Y | Y | *
 | <percentage> | P | Y | Y | Y | Y | P | B | Y | Y |
5.5.01 | margin-top | P | B | P | P | Y | P | B | P | Y | *
 | <length> | P | B | P | P | Y | P | B | P | Y |
 | <percentage> | P | Y | P | P | Y | P | B | P | Y |
 | auto | P | Y | P | P | Y | P | B | P | Y |
5.5.02 | margin-right | B | P | P | P | Y | B | P | P | Y | *
 | <length> | B | Y | P | P | Y | B | Y | P | Y |
 | <percentage> | B | N | P | P | Y | B | Y | P | Y |
 | auto | N | N | N | N | Y | N | N | P | Y |
5.5.03 | margin-bottom | N | Y | P | P | Y | N | N | P | Y | *
 | <length> | N | N | P | P | Y | N | N | P | Y |
 | <percentage> | N | N | P | P | Y | N | N | P | Y |
 | auto | N | N | P | P | Y | N | N | P | Y |
5.5.04 | margin-left | B | P | P | P | Y | B | P | P | Y | *
 | <length> | B | Y | P | P | Y | Y | Y | P | Y |
 | <percentage> | B | Y | P | P | Y | B | Y | P | Y |
 | auto | N | N | N | N | Y | B | N | P | Y |
5.5.05 | margin | B | B | P | P | Y | B | B | P | Y | *
 | <length> | B | B | P | P | Y | B | B | P | Y |
 | <percentage> | B | Y | P | P | Y | B | B | P | Y |
 | auto | N | Y | P | P | Y | N | B | P | Y |
5.5.06 | padding-top | B | N | P | P | Y | B | N | P | Y | *
 | <length> | B | N | P | P | Y | B | N | P | Y |
 | <percentage> | B | N | P | P | Y | B | N | P | Y |
5.5.07 | padding-right | B | N | P | P | Y | B | N | P | Y | *
 | <length> | B | N | P | P | Y | B | N | P | Y |
 | <percentage> | B | N | P | P | Y | B | N | P | Y |
5.5.08 | padding-bottom | B | N | P | P | Y | B | N | P | Y | *
 | <length> | B | N | P | P | Y | B | N | P | Y |
 | <percentage> | B | N | P | P | Y | B | N | P | Y |
5.5.09 | padding-left | B | N | P | P | Y | B | N | P | Y | *
 | <length> | B | N | P | P | Y | B | N | P | Y |
 | <percentage> | B | N | P | P | Y | B | N | P | Y |
5.5.10 | padding | B | N | P | P | B | B | N | P | Y | *
 | <length> | B | N | P | P | B | B | N | P | Y |
 | <percentage> | B | N | P | P | B | B | N | P | Y |
5.5.11 | border-top-width | B | N | P | P | Y | B | N | P | Y | *
 | thin | Y | N | P | P | Y | Y | N | P | Y |
 | medium | Y | N | P | P | Y | Y | N | P | Y |
 | thick | Y | N | P | P | Y | Y | N | P | Y |
 | <length> | Y | N | P | P | Y | Y | N | P | Y |
5.5.12 | border-right-width | B | N | P | P | Y | B | N | P | Y | *
 | thin | Y | N | P | P | Y | Y | N | P | Y |
 | medium | Y | N | P | P | Y | Y | N | P | Y |
 | thick | Y | N | P | P | Y | Y | N | P | Y |
 | <length> | Y | N | P | P | Y | Y | N | P | Y |
5.5.13 | border-bottom-width | B | N | P | P | Y | B | N | P | Y | *
 | thin | B | N | P | P | Y | B | N | P | Y |
 | medium | B | N | P | P | Y | B | N | P | Y |
 | thick | B | N | P | P | Y | B | N | P | Y |
 | <length> | B | N | P | P | Y | B | N | P | Y |
5.5.14 | border-left-width | B | N | P | P | Y | B | N | P | Y | *
 | thin | Y | N | P | P | Y | Y | N | P | Y |
 | medium | Y | N | P | P | Y | Y | N | P | Y |
 | thick | Y | N | P | P | Y | Y | N | P | Y |
 | <length> | Y | N | P | P | Y | Y | N | P | Y |
5.5.15 | border-width | B | N | P | P | Y | B | N | P | Y | *
 | thin | Y | N | P | P | Y | Y | N | P | Y |
 | medium | Y | N | P | P | Y | Y | N | P | Y |
 | thick | Y | N | P | P | Y | Y | N | P | Y |
 | <length> | Y | N | P | P | Y | Y | N | P | Y |
5.5.16 | border-color | P | N | Y | Y | Y | P | N | Y | Y | *
 | <color> | P | N | Y | Y | Y | P | N | Y | Y |
5.5.17 | border-style | P | N | P | P | Y | P | N | Y | Y |
 | none | Y | N | Y | Y | Y | Y | N | Y | Y |
 | dotted | N | N | N | N | Y | N | N | Y | Y |
 | dashed | N | N | N | N | Y | N | N | Y | Y |
 | solid | Y | N | Y | Y | Y | Y | N | Y | Y |
 | double | Y | N | Y | Y | Y | Y | N | Y | Y |
 | groove | Y | N | Y | Y | Y | Y | N | Y | Y |
 | ridge | Y | N | Y | Y | Y | Y | N | Y | Y |
 | inset | Y | N | Y | Y | Y | Y | N | Y | Y |
 | outset | Y | N | Y | Y | Y | Y | N | Y | Y |
5.5.18 | border-top | N | N | P | P | Y | N | N | P | Y | *
 | <border-top-width> | N | N | P | P | Y | N | N | P | Y |
 | <border-style> | N | N | P | P | Y | N | N | P | Y |
 | <color> | N | N | P | P | Y | N | N | P | Y |
5.5.19 | border-right | N | N | P | P | Y | N | N | P | Y | *
 | <border-right-width> | N | N | P | P | Y | N | N | P | Y |
 | <border-style> | N | N | P | P | Y | N | N | P | Y |
 | <color> | N | N | P | P | Y | N | N | P | Y |
5.5.20 | border-bottom | N | N | P | P | Y | N | N | P | Y | *
 | <border-bottom-width> | N | N | P | P | Y | N | N | P | Y |
 | <border-style> | N | N | P | P | Y | N | N | P | Y |
 | <color> | N | N | P | P | Y | N | N | P | Y |
5.5.21 | border-left | N | N | P | P | Y | N | N | P | Y | *
 | <border-left-width> | N | N | P | P | Y | N | N | P | Y |
 | <border-style> | N | N | P | P | Y | N | N | P | Y |
 | <color> | N | N | P | P | Y | N | N | P | Y |
5.5.22 | border | P | N | P | P | Y | P | N | P | Y | *
 | <border-width> | B | N | P | P | Y | B | N | P | Y |
 | <border-style> | P | N | P | P | Y | P | N | P | Y |
 | <color> | Y | N | P | P | Y | Y | N | P | Y |
5.5.23 | width | P | N | P | P | Q | P | N | Y | Y | *
 | <length> | P | N | P | P | Q | P | N | Y | Y |
 | <percentage> | P | N | P | P | Q | P | N | Y | Y |
 | auto | P | N | P | P | Q | P | N | Y | Y |
5.5.24 | height | N | N | Y | Y | Y | N | N | Y | Y |
 | <length> | N | N | Y | Y | Y | N | N | Y | Y |
 | auto | N | N | Y | Y | Y | N | N | Y | Y |
5.5.25 | float | P | N | P | P | B | P | N | B | Q | *
 | left | B | N | B | B | Y | B | N | Y | Y |
 | right | B | N | B | B | Y | B | N | Y | Y |
 | none | Y | N | Y | Y | Y | Y | N | Y | Y |
5.5.26 | clear | P | N | P | P | B | P | N | Y | Y | *
 | none | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | left | B | N | B | B | N | B | N | Y | Y |
 | right | B | N | B | B | Y | B | N | Y | Y |
 | both | Y | N | Y | Y | Y | Y | N | Y | Y |
5.6.1 | display | P | N | P | P | P | P | N | P | Y |
 | block | B | N | N | Y | Y | B | N | P | Y |
 | inline | N | N | N | Y | B | N | N | N | Y | *
 | list-item | B | N | N | N | N | P | N | P | Y |
 | none | Y | N | Y | Y | Y | Y | N | Y | Y |
5.6.2 | white-space | P | N | N | N | N | P | N | N | Y |
 | normal | Y | N | N | N | N | Y | N | N | Y |
 | pre | Y | N | N | N | N | Y | N | N | Y |
 | nowrap | N | N | N | N | N | N | N | N | Y |
5.6.3 | list-style-type | Y | N | Y | Y | Y | P | N | Y | Y |
 | disc | Y | N | Y | Y | Y | Y | N | Y | Y |
 | circle | Y | N | Y | Y | Y | Y | N | Y | Y |
 | square | Y | N | Y | Y | Y | Y | N | Y | Y |
 | decimal | Y | N | Y | Y | Y | Y | N | Y | Y |
 | lower-roman | Y | N | Y | Y | Y | Y | N | Y | Y |
 | upper-roman | Y | N | Y | Y | Y | Y | N | Y | Y |
 | lower-alpha | Y | N | Y | Y | Y | Y | N | Y | Y |
 | upper-alpha | Y | N | Y | Y | Y | Y | N | Y | Y |
 | none | Y | N | Y | Y | Y | B | N | Y | Y | *
5.6.4 | list-style-image | N | N | Y | Y | Y | N | N | Y | Y |
 | <url> | N | N | Y | Y | Y | N | N | Y | Y |
 | none | N | N | Y | Y | Y | N | N | Y | Y |
5.6.5 | list-style-position | N | N | Y | Y | Y | N | N | Y | Y |
 | inside | N | N | Y | Y | Y | N | N | Q | Y | *
 | outside | N | N | Y | Y | Y | N | N | Y | Y |
5.6.6 | list-style | P | N | P | Y | Y | P | N | P | Y |
 | <keyword> | Y | N | Y | Y | Y | P | N | Y | Y |
 | <position> | N | N | Q | Q | Y | N | N | Q | Y |
 | <url> | N | N | Y | Y | Y | N | N | Y | Y |
6.1 | Length Units | P | P | Y | Y | Y | Y | B | Y | Y |
 | em | Y | N | Y | Y | Y | Y | Y | Y | Y |
 | ex | Q | N | Q | Q | Q | Q | Q | Q | Y | *
 | px | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | in | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | cm | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | mm | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | pt | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | pc | Y | Y | Y | Y | Y | Y | Y | Y | Y |
6.2 | Percentage Units | Y | Y | Y | Y | Y | Y | Y | Y | Y |
 | <percentage> | Y | Y | Y | Y | Y | Y | Y | Y | Y |
6.3 | Color Units | P | P | Y | Y | Y | P | P | Y | Y |
 | #000 | Y | Y | Y | Y | Y | Y | B | Y | Y |
 | #000000 | Y | Y | Y | Y | Y | Y | B | Y | Y |
 | (RRR,GGG,BBB) | Y | N | Y | Y | Y | Y | N | Y | Y |
 | (R%,G%,B%) | Y | N | Y | Y | Y | Y | N | Y | Y |
 | <keyword> | B | Y | Y | Y | Y | B | Y | Y | Y | *
6.4 | URLs | B | Y | Y | Y | Y | B | B | Y | Y |
 | <url> | B | Y | Y | Y | Y | B | B | Y | Y | *

D.1. Notes

1.1 Containment in HTML: @import

WinIE4 and WinIE5 both import files even when the @import statement is at the end of the document style sheet. This is technically in violation of the CSS1 specification, although not a major failing; thus the "Quirk" rating.

1.1 Containment in HTML: <x STYLE="dec;" >

Navigator 4 has particular trouble with list items, which is most of the reason for the "Buggy" rating.

1.3 Inheritance

Navigator 4's inheritance is unstable at best, and fatally flawed at worst. It would take too long to list all occurrences, but particularly troublesome areas include tables and lists.

1.4 Class selector

WinIE4/5 allows class names to begin with digits; this is not permitted under CSS1. It is allowed in CSS2.

1.5 ID selector

WinIE4/5 allows ID names to begin with digits; this is not permitted under CSS1. All browsers apply the style for a given ID to more than one instance of that ID in an HTML document, which is not permitted. This is properly an error-checking problem, not a failing of the CSS implementations, but I feel it is significant enough to warrant the ratings shown.

1.6 Contextual selectors: x y z {dec;}

MacNav4 has the most trouble with contextual selectors involving tables. For example, HTML BODY TABLE P is not properly handled.

2.3 :first-line

IE3 incorrectly applies styles to the entire element.

2.4 :first-letter

IE3 incorrectly applies styles to the entire element.

3.2 Cascading Order

Again, there are simply far too many instances of problems to list here.

5.2.2 font-family: cursive

Despite a preferences setting for cursive fonts, Opera does not seem to apply the preference, but instead substitutes another font. This may vary by system, as others have reported no trouble with this feature.

5.2.4 font-variant: small-caps

IE4/5 approximates the small-caps style by making all such text uppercase. While this can be justified under the CSS1 specification, visually, it does not render the text in small caps.

5.2.6 font-size: xx-small through xx-large

IE4/5's values for absolute sizes assigns small to be the same size as unstyled text, instead of medium , as one might expect. Thus, declaring an absolute font size (such as font-size: medium ) will almost certainly lead to different size fonts in Navigator and Explorer. While this is not incorrect under the specification, it is confusing to many authors.

5.3.2 background-color:<color>

Nav4 does not apply the background color to the entire content box and padding, but rather just to the text in the element. This can be worked around by declaring a near-zero-width border.

5.3.2 background-color: transparent

Nav4 insists on applying this value to the parent of an element, not the element itself. This can lead to "holes" in the parent element's background.

5.3.4 background-repeat: repeat

WinIE4 only repeats down and to the right. The correct behavior is for the background image to be tiled in both vertical directions for repeat-y, and both horizontal for repeat-x. Nav4 gets this property correct on a technicality: since it does not support background-position, there is no way to know whether or not it would tile in all four directions if given the chance, or instead emulate WinIE4's behavior. Opera 3.6, MacIE4.5, and WinIE5 all behave correctly.

5.3.4 background-repeat: repeat-x

WinIE4 only repeats to the right, instead of both left and right.

5.3.4 background-repeat: repeat-y

WinIE4 only repeats down, instead of both up and down.

5.4.3 text-decoration: none

According to the specification, if an element is decorated, but one of its children is not, the parent's effect will still be visible on the child; in a certain sense, it "shines through." Thus, if a paragraph is underlined, but a STRONG element within it is set to have no underlining, the paragraph underline will still "span" the STRONG element. This also means that the underlining of child elements should be the same color as the parent element, unless the child element has also been set to be underlined. In practice, however, setting an inline element to none will turn off all decorations, regardless of the parent's decoration. The only exception to this is Opera, which implements the specification correctly.

5.4.3 text-decoration: blink

Since this value is not required under CSS1, only Navigator supports it (surprise).

5.4.5 text-transform: uppercase

Opera 3.6 uppercases the first letter in each inline element within a word, which (according to the CSS1 Test Suite) it should not do.

5.4.6 text-align: justify

In Nav4, this value has a tendency to break down in tables, but generally works in other circumstances.

5.4.8 line-height: <length>

Nav4 incorrectly permits negative values for this property.

5.4.8 line-height

Opera 3.6 applies background colors to the space between lines, as opposed to just the text itself, when the background is set for an inline element within the text. (See the CSS1 Test Suite for more details.)

5.5.01 margin-top

All margin properties seem to be problematic, or else completely unsupported, on inline elements. In the case of margin-top, support is pretty good on block-level elements in Nav4 and IE4/IE5, and appears to be perfect in Opera 3.6.

5.5.02 margin-right

All margin properties seem to be problematic, or else completely unsupported, on inline elements. In the case of margin-right, support is pretty good on block-level elements in IE4 and IE5, while with inline elements, IE4 and IE5 ignore this property completely. Navigator does fairly well so long as margins are not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.03 margin-bottom

All margin properties seem to be problematic, or else completely unsupported, on inline elements. In the case of margin-bottom, support is pretty good on block-level elements in IE4 and IE5, while with inline elements, IE4 and IE5 ignore this property completely. Navigator does fairly well so long as margins are not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.04 margin-left

All margin properties seem to be problematic, or else completely unsupported, on inline elements. In the case of margin-left, support is pretty good on block-level elements in IE4 and IE5, while with inline elements, IE4 and IE5 ignore this property completely. Navigator does fairly well so long as margins are not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.05 margin

All margin properties seem to be problematic, or else completely unsupported, on inline elements. In the case of margin, support is pretty good on block-level elements in IE4 and IE5, while with inline elements, IE4 and IE5 ignore this property completely. Navigator does fairly well so long as margins are not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.06 padding-top

All padding properties seem to be problematic, or else completely unsupported, on inline elements. In the case of padding-top, support is pretty good on block-level elements in IE4 and IE5. Navigator does fairly well so long as margins are not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.07 padding-right

All padding properties seem to be problematic, or else completely unsupported, on inline elements. In the case of padding-right, support is pretty good on block-level elements in IE4 and IE5. Navigator does fairly well so long as margins are not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.08 padding-bottom

All padding properties seem to be problematic, or else completely unsupported, on inline elements. Navigator does fairly well so long as padding is not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.09 padding-left

All padding properties seem to be problematic, or else completely unsupported, on inline elements. Navigator does fairly well so long as padding is not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.10 padding

All padding properties seem to be problematic, or else completely unsupported, on inline elements. Opera correctly ignores negative padding values (although Opera 3.5 applied negative padding), but will alter the line height based on values of padding applied to inline elements, which is incorrect. Navigator does fairly well so long as padding is not applied to floating or inline elements, in which case major bugs can be tripped.

5.5.11 border-top-width

Navigator will create visible borders even when no border-style is set, and does not set borders on all sides when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines.

5.5.12 border-right-width

Navigator will create visible borders even when no border-style is set, and does not set borders on all sides when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines.

5.5.13 border-bottom-width

Navigator will create visible borders even when no border-style is set, and does not set borders on all sides when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines.

5.5.14 border-left-width

Navigator will create visible borders even when no border-style is set, and does not set borders on all sides when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines.

5.5.15 border-width

Navigator will create visible borders even when no border-style is set, and does not set borders on all sides when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines.

5.5.16 border-color

Nav4 and Opera do not set colors on individual sides, as in border-color: red blue green purple;. Explorer cannot apply border colors to inline elements, since it does not apply borders to inlines, but this is not penalized here.

5.5.18 border-top

IE4 and IE5 do not apply borders to inline elements.

5.5.19 border-right

IE4 and IE5 do not apply borders to inline elements.

5.5.20 border-bottom

IE4 and IE5 do not apply borders to inline elements.

5.5.21 border-left

IE4 and IE5 do not apply borders to inline elements.

5.5.22 border

IE4 and IE5 do not apply borders to inline elements.

5.5.23 width

Navigator applies width in an inconsistent fashion, but appears to honor it on most simple text elements and images. WinIE4/5 applies it to images and tables, but ignores it for most text elements like P and headings. Opera 3.6, weirdly, seems to set the width of images to 100%, but this is largely an illusion, since minimizing the window and then maximizing it again will reveal correctly sized images.

5.5.25 float

float is one of the most complicated and hardest-to-implement aspects of the entire CSS1 specification. Basic floating is generally supported by all browsers, especially on images, but when the specification is closely tested, or the document structure becomes complicated, floating most often happens incorrectly, or not at all. The floating of text elements is especially inconsistent, although IE5 and Opera have cleaned up their act to a large degree, leaving WinIE4 and Nav4 the major transgressors in this respect. Authors should use float with some care, and thoroughly test any pages employing it with great care.

5.5.26 clear

Like float, clear is not a simple thing to support. Again, basic support is there, but as things get more complicated, browser behavior breaks down. Thoroughly test pages using this property.

5.6.1 display: inline

Opera 3.6 almost gets inline right, but seems to honor the occasional carriage return as though it were a BR element, instead of plain whitespace.

5.6.3 list-style-type: none

MacNav4 displays question marks for bullets when using this value.

5.6.5 list-style-position: inside

The positioning and formatting of list-items when set to this value are a bit odd under MacIE4.

6.1 Length Units: ex

All supporting browsers appear to calculate ex as one-half em. This is arguably a reasonable approximation, but it is technically incorrect.

6.3 Color Units :<keyword>

Navigator will generate a color for any apparent keyword. For example, color: invalidValue will yield a dark blue, and color: inherit (a valid declaration under CSS2) comes out as a vaguely nauseous green.

6.4 URLs:<url>

Navigator determines relative URLs with respect to the HTML document, not the style sheet.

Previous | Home | Next
C. CSS1 Properties | Book Index | Index


Preface (Cascading Style Sheets: The Definitive Guide)

Preface

The subject of this book is, as you might have guessed by the cover, Cascading Style Sheets (CSS). There are two "levels" to CSS; these are referred to as CSS1 and CSS2. The difference between the two is that CSS2 is all of CSS1, plus a lot more. This book attempts to cover all of CSS1, and CSS positioning, which is a part of CSS2. The rest of CSS2 is excluded because, at the time of this writing, nobody had implemented most of it. Rather than cover a lot of theoretical territory, we chose to stick to what was currently usable.

If you are a web designer or document author interested in sophisticated page styling, improved accessibility, and saving time and effort, then this book is for you. All you really need before starting the book is a decent knowledge of HTML 4.0. The better you know HTML, of course, the better prepared you'll be. You will need to know very little else in order to follow this book.

It is important to remember something about web standards and books: the former are continually evolving, while the latter are frozen in time (until the next edition comes out, anyway). In the case of HTML and CSS, there are a great many changes afoot even as these words are being written. The recent formalization of XHTML 1.0 as a full W3C Recommendation, for example, is a major milestone in the evolution of the World Wide Web. There are likely to be even more levels to CSS, further extending the ability to style documents; major web browsers are approaching full CSS1 support, and robust CSS2 implementations can be seen lurking on the horizon. This is an exciting time to be a designer, and learning CSS now will give you a leg up on the future.

0.1. Typographical Conventions

The following typographical conventions are used in this book:

Constant width

is used to indicate code examples, HTML tags and CSS elements.

Constant width italic

is used for replaceables that appear in text.

Italic

is used to introduce new terms and to indicate URLs, filenames, and pathnames.

TIP

indicates a note or tip relating to the nearby text.

WARNING

indicates a warning.

Previous | Home | Next
Copyright Page | Book Index | 0.2. Property Conventions


Property Conventions (Cascading Style Sheets: The Definitive Guide)

0.2. Property Conventions

Throughout this book, there are boxes that break down a given CSS property. These have been reproduced practically verbatim from the CSS specifications, but some explanation of the syntax is in order.

Throughout, the allowed values for each property are listed with a syntax like the following:

Value: [ <length> | thick | thin ]{1,4}

Value: [<family-name> , ]* <family-name>

Value: <url>? <color> [ / <color> ]?

Value: <url> || <color>

Any words between < and > give a type of value, or a reference to another property. For example, the property font will accept values which actually belong to the property font-family. This is denoted by using the text "<font-family>." Any words presented in constant width text are keywords that must appear literally, without quotes. The forward slash ( / ) and the comma ( , ) must also be used literally.

Several keywords strung together means that all of them must occur -- in the given order. For example, help me would mean that the property must use those keywords in that exact order.

If a vertical bar ( X | Y ) separates alternatives, then any one of them must occur. A vertical double bar ( X || Y ) means that either X or Y, or both, must occur, but they may appear in any order. Brackets ( [...] ) are for grouping things together. Juxtaposition is stronger than the double bar, and the double bar is stronger than the bar. Thus "V W | X || Y Z" is equivalent to " [ V W ] | [ X || [ Y Z ]] ."

Every word or bracketed group may be followed by one of the following modifiers:

  • An asterisk (*) indicates that the preceding value or bracketed group is repeated zero or more times. Thus, bucket* means that the word bucket can be used any number of times, including zero. There is no defined upper limit on the number of times it can be used.

  • A plus (+) indicates that the preceding value or bracketed group is repeated one or more times. Thus, mop+ means that the word mop must be used at least once, and potentially many more times.

  • A question mark (?) indicates that the preceding value or bracketed group is optional. For example, [ pine tree ]? means that the words pine tree need not be used (although they must appear in that exact order if they are used).

  • A pair of numbers in curly braces ({M,N}) indicates that the preceding value or bracketed group is repeated at least M and at most N times. For example, ha{1,3} means that there can be one, two, or three instances of the word ha.

Following are some examples:

give|| me|| liberty

At least one of the three words must be used, and all of them can be used in any order. For example, give liberty, give me, liberty me give, and give me liberty are all valid interpretations of this example.

[ I| am] ? the|| walrus

Either, but not both, of the words I or am may be used, but use of either is optional. In addition, either the or walrus, or both, must follow. Thus, you could construct I the walrus, am walrus the, am the, I walrus, walrus the, and so forth.

koo+ ka-choo

One or more instances of koo must be followed by ka-choo. Therefore, koo koo ka-choo, koo koo koo ka-choo, and koo ka-choo are all legal. The number of koos is potentially infinite, although there are bound to be implementation-specific limits.

I really {1,4}* [ love| hate] [ Microsoft| Netscape ]

The all-purpose web designer's opinion-expresser. This can be interpreted as I love Netscape, I really love Microsoft, and similar expressions. Anywhere from zero to four really s may be used. You also get to pick between love and hate, even though only love was shown in this example.

[[[ Alpha|| Baker|| Cray ] ,]{2,3} and ] Delphi

This is a potentially long and complicated expression. One possible result would be Alpha, Cray, and Delphi. Another is Alpha Baker, Cray Alpha, Baker Cray Alpha, and Delphi. The comma is placed due to its position within the nested bracket groups.

Previous | Home | Next
0. Preface | Book Index | 0.3. How to Contact Us


How to Contact Us (Cascading Style Sheets: The Definitive Guide)

0.3. How to Contact Us

We have tested and verified the information in this book to the best of our ability, but you may find that features have changed (or even that we have made mistakes!). Please let us know about any errors you find, as well as your suggestions for future editions, by writing to:

O'Reilly & Associates, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

(800) 998-9938 (in the U.S. or Canada)

(707) 829-0515 (international/local)

(707) 829-0104 (fax)

You can also send us messages electronically. To be put on the mailing list or request a catalog, send email to:

info@oreilly.com

To ask technical questions or comment on the book, send email to:

bookquestions@oreilly.com

We have a web site for the book, where we'll list examples, errata, and any plans for future editions. You can access this page at:

http://www.oreilly.com/catalog/css/

For more information about this book and others, see the O'Reilly web site:

http://www.oreilly.com/

Previous | Home | Next
0.2. Property Conventions | Book Index | 0.4. Acknowledgments


Acknowledgments (Cascading Style Sheets: The Definitive Guide)

0.4. Acknowledgments

This book was written with a single goal: to make Cascading Style Sheets (CSS) easy to learn, understand, and use. Of course, there is much more to this goal than meets the eye. Trying to translate tersely defined algorithms into comprehensible English isn't always as easy as it sounds.

In my work on this book, I found myself crawling through the various nooks and crannies of CSS, creating test suites, and banging my head against myriad problems, not to mention the aforementioned web browser limitations. Along the way, I encountered a number of people whom I'd like to thank.

First, of course, are Håkon Wium Lie of Opera Software and Bert Bos of the W3C for their efforts in creating Cascading Style Sheets, and for answering many of my questions on the www-style mailing list, even the foolish ones. I'd also like to thank Chris Lilley, also of the W3C, for encouraging my attempts to help make the web more stylish. His words of praise for some of my earliest efforts came at exactly the right moment to spur me on, and it was he who made it possible for me to join the World Wide Web Consortium's CSS&FP Working Group.

Tim O'Reilly took a big chance in giving me my first shot at a major professional publication, for which I will always be grateful. My editor at O'Reilly, Richard Koman, was more than patient with me during the writing process, and I probably should have shown my gratitude by sending in more rough drafts. Tara McGoldrick, also of O'Reilly, was a great help in sorting out figures, smoothing out communications, and generally making my life much easier. Dale Dougherty of Songline Studios gave me my first real break into professional writing, and Chuck Toporek (now at O'Reilly) was my long-suffering first editor at Web Review, managing to weather my totally random article submission schedule with good grace. My friend and colleague Peter Murray was gracious enough to contribute some of his time and expertise to assist me in the creation of one of the Case Studies, and Ron Ryan gets a gold star and a whole bucket of "attaboys" for being the best supervisor I've ever known.

The gang from the Usenet group comp.infosystems.www.authoring.stylesheets has been a huge help over the years, both in answering questions and providing feedback. Within that group, Todd Fahrner, Alan Flavell, Anthony Boyd, and Jan Roland Eriksson have been generally clueful and helpful, and Sue Sims deserves special mention for being just as helpful plus willing to assist (and occasionally defend) someone she'd never met -- namely, me. Ian Hickson and David Baron deserve thanks for not only being as expert on the subject of CSS as anyone else I know, but also for applying their raw energy to interpreting the specification, ferreting out browser bugs, and generally being helpful in spreading the CSS gospel. Their comments and insights were extraordinarily helpful in the writing of this work.

And, of course, a hearty "hikeeba!" to the CSS Samurai: Todd Fahrner, Liam Quin, David Baron, Ian Hickson, Sue Sims, Jan Roland Eriksson, John Alsopp, and Braden McDaniel. Yes, many of those names are repeats. What can I say? It's a small web.

Please note that none of these people should be blamed for any errors contained herein. They should instead be credited for helping me correct a vast number of mistakes, even if they didn't always know they were doing so.

At this point, I believe it's appropriate for me to thank Tim Berners-Lee for inventing the World Wide Web. I don't know Tim, and he doesn't know me, but it's pretty much required that authors of books related to the Web thank Tim for his fundamental contribution. I think this might actually be an international law by now; call it the Berners Convention.

And, finally, personal thanks to: Michelle, for being a friend through thick and thin; Randy, who has always gladly been both teacher and confidant; Steve, who helped me survive college and the years succeeding it; Dave, for all the years of making me laugh, especially when I most needed it, and for being the voice of sanity when I least expected it; and Tina, who helped me to stand when I wanted to stay down.

I'd also like to thank my wonderful wife, Kathryn, for her boundless support and for meritorious valor in putting up with me, particularly when my deadlines loomed, and for her inexhaustible belief in me and my abilities; and humble thanks to my parents, Art and Carol, and my sister, Julie, all of whom have always been there for me and never did learn to tell me when to quit. Well, guys, I guess it's too late now.

Thanks for everything.

Eric A. Meyer
23 February 2000

Previous | Home | Next
0.3. How to Contact Us | Book Index | 1. HTML and CSS


HTML and CSS (Cascading Style Sheets: The Definitive Guide)

Chapter 1. HTML and CSS

Contents:

The Web's Fall from Grace
CSS to the Rescue
Limitations of CSS
Bringing CSS and HTML Together
Summary

In many ways, the Cascading Style Sheets (CSS) specification represents a unique development in the history of the World Wide Web. In its inherent ability to allow richly styled structural documents, CSS is both a step forward and a step backward -- but it's a good step backward, and a needed one. To see what is meant by this, it is first necessary to understand how the Web got to the point of desperately needing something like CSS, and how CSS makes the web a better place for both page authors and web surfers.

1.1. The Web's Fall from Grace

Back in the dimly remembered early years of the Web (1990 -1993), HTML was a fairly lean little language. It was almost entirely composed of structural elements that were useful for describing things like paragraphs, hyperlinks, lists, and headings. It had nothing even remotely approaching tables, frames, or the complex markup we assume is a necessary part of creating web pages. The general idea was that HTML would be a structural markup language, used to describe the various parts of a document. There was very little said about how these parts should be displayed. The language wasn't concerned with appearance. It was just a clean little markup scheme.

Then came Mosaic.

Suddenly, the power of the World Wide Web was obvious to almost anyone who spent more than ten minutes playing with it. Jumping from one document to another was no harder than pointing the mouse cursor at a specially colored bit of text, or even an image, and clicking the mouse button. Even better, text and images could be displayed together, and all you needed to create a page was a plain text editor. It was free, it was open, and it was cool.

Web sites began to spring up everywhere. There were personal journals, university sites, corporate sites, and more. As number of sites increased, so did the demand for new HTML tags that would allow one effect or another. Authors started demanding that they be able to make text boldfaced, or italicized.

At the time, HTML wasn't equipped to handle these sorts of desires. You could declare a bit of text to be emphasized, but that wasn't necessarily the same as being italicized -- it could be boldfaced instead, or even normal text with a different color, depending on the user's browser and their preferences. There was nothing to ensure that what the author created was what the reader would see.

As a result of these pressures, markup elements like <B> and <I> started to creep into the language. Suddenly, a structural language started to become presentational.

1.1.1. What a Mess

Years later, we have inherited the flaws inherent in this process. Large parts of HTML 3.2 and HTML 4.0, for example, are devoted to presentational considerations. The ability to color and size text through the FONT element, to apply background colors and images to documents and tables, to space and pad the contents of table cells, and to make text blink on and off are all the legacy of the original cries for "more control!"

If you want to know why this is a bad thing, all it takes is a quick glance at any corporate web site's page markup. The sheer amount of markup in comparison to actual useful information is astonishing. Even worse, for most sites, the markup is almost entirely made up of tables and FONT tags, none of which conveys any real semantic meaning to what's being presented. From a structural standpoint, these pages are little better than random strings of letters.

For example, let's assume that for page titles, an author is using FONT tags instead of heading tags like H1, like this:

<FONT SIZE="+3" FACE="Helvetica" COLOR="red">Page Title</FONT>

Structurally speaking, the FONT tag has no meaning. This makes the document far less useful. What good is a FONT tag to a speech-synthesis browser, for example? If an author uses heading tags instead of FONT tags, the speaking browser can use a certain speaking style to read the text. With the FONT tag, the browser has no way to know that the text is any different from other text.

Why do authors run roughshod over structure and meaning like this? Because they want readers to see the page as they designed it. To use structural HTML markup is to give up a lot of control over a page's appearance, and it certainly doesn't allow for the kind of densely packed page designs that have become so popular over the years.

So what's wrong with this? Consider the following:

  • Unstructured pages make content indexing inordinately difficult. A truly powerful search engine would allow users to search just page titles, or only section headings within pages, or only paragraph text, or perhaps only those paragraphs that are marked as being important. In order to do this, however, the page contents must be contained within some sort of structural markup -- exactly the sort of markup most pages lack.

  • A lack of structure reduces accessibility. Imagine that you are blind, and rely on a speech-synthesis browser to browse the Web. Which would you prefer: a structured page that lets your browser read only section headings so you can choose which section you'd like to hear more about; or a page so lacking in structure that your browser is forced to read the entire thing with no indication of what's a heading, what's a paragraph, and what's important?

  • Advanced page presentation is only possible with some sort of document structure. Imagine a page in which only the section headings are shown, with an arrow next to each. The user can decide which section heading applies to him and click on it, thus revealing the text of that section.

  • Structured markup is easier to maintain. How many times have you spent long minutes hunting through someone else's HTML (or even your own) in search of the one little error that is messing up your page in one browser or another? How much time have you spent writing nested tables and FONT tags, just to get a sidebar with white hyperlinks in it? How many line-break tags have you inserted trying to get exactly the right separation between a title and the following text? By using structural markup, you can clean up your code and make it easier to find what you're looking for.

Granted, a fully structured document is a little plain. Due to that one single fact, a hundred arguments in favor of structural markup wouldn't sway a marketing department away from the kind of HTML so prevalent at the end of the twentieth century. What was needed was a way to combine structural markup with attractive page presentation.

This concept is nothing new. There have been many style sheet technologies proposed and created over the last few decades. These were intended for use in various industries and in conjunction with a variety of structural markup languages. The concept had been tested, used, and generally found to be a benefit to any environment where structure had to be presented. However, no style sheet solution was immediately available for use with HTML. Something had to be done to correct this problem.

Previous | Home | Next
0.4. Acknowledgments | Book Index | 1.2. CSS to the Rescue


CSS to the Rescue (Cascading Style Sheets: The Definitive Guide)

1.2. CSS to the Rescue

Of course, the problem of polluting HTML with presentational markup was not lost on the World Wide Web Consortium (W3C). It was recognized early on that this situation couldn't continue forever, and that a good solution was needed quickly. In 1995, they started publicizing a work-in-progress called CSS. By 1996, it had become a full Recommendation, with the same weight as HTML itself.

So what does CSS offer us? As of this writing, it offers us two levels of itself. The first level is Cascading Style Sheets, Level 1 (CSS1), which was made a full W3C Recommendation in 1996. Soon thereafter, the W3C's Cascading Style Sheets and Formatting Properties ( CSS&FP) Working Group got to work on a more advanced specification, and in 1998 their work paid off when Cascading Style Sheets, Level 2 (CSS2) was made a full Recommendation. CSS2 builds on CSS1 by extending the earlier work without making major changes to it.

The future is likely to see further advances in CSS, but until then, let's go over what we already have.

1.2.1. Rich Styling

In the first place, CSS allows for much richer document appearances than HTML ever allowed, even at the height of its presentational fever. CSS contains the ability to set colors on text and in the background of any element; it permits the creation of borders around any element, as well as the increase or decrease of the space around them; it allows authors to change the way text is capitalized, decorated (e.g., underlining), its spacing, and even whether or not it is displayed at all; and many other effects.

Take, for example, the first (and main) heading on a page, which is usually the title of the page itself. The proper markup is:

<H1>Leaping Above The Water</H1>

Now, suppose you want this title to be dark red, use a certain font, be italicized and underlined, and have a yellow background. To do all of that with HTML, you'd have to put the H1 into a table and load it up with a ton of other tags like FONT and U. With CSS, all you need is one rule:

H1 {color: maroon; font: italic 1em Times, serif; text-decoration: underline;
   background: yellow;}

That's it. As you can see, everything we did in HTML can be done in CSS. There's no need to confine ourselves to only those things HTML can do, however:

H1 {color: maroon; font: italic 1em Times, serif; text-decoration: underline;
   background: yellow url(titlebg.png) repeat-x;
   border: 1px solid red; margin-bottom: 0; padding: 5px;}

Now we have an image in the background of the H1 that is only repeated horizontally, plus a border around the H1 that is separated from the text by at least five pixels, and we've removed the margin (blank space) from the bottom of the element. These are things which HTML can't even come close to matching -- and that's just a taste of what CSS can do.

1.2.2. Ease of Use

If the depth of CSS doesn't convince you, then perhaps this will: style sheets can drastically reduce a web author's workload.

Style sheets can do this by centralizing the commands for certain visual effects in one handy place, instead of scattering them throughout the document. As an example, let's say you want all of the headings in a document to be purple. (No, I don't know why you would want this, but assume with me.) Using HTML, the way to do this would be to put a FONT tag in every heading tag, like so:

<H2><FONT COLOR="purple">This is purple!</FONT></H2>

This has to be done for every heading of level two. If you have forty headings in your document, you have to insert forty FONT tags throughout, one for each heading! That's a lot of work for one little effect.

But let's assume that you've gone ahead and put in all those FONT tags. You're done, you're happy -- and then you decide (or your boss decides for you) that headings should really be dark green, not purple. Now you have to go back and fix every single one of those FONT tags. Sure, you might be able to find-and-replace, as long as headings are the only purple text in your document. If you've put other purple FONT tags in your document, then you can't find-and-replace, because you'd affect them too.

It would be much better to have a single rule instead:

H2 {color: purple;}

Not only is this faster to type, but it's easier to change. If you do switch from purple to dark green, all you have to change is that one rule.

Let's go back to the highly styled H1 element from the previous section:

H1 {color: maroon; font: italic 1em Times, serif; text-decoration: underline;
   background: yellow;}

This may look like it's worse to write than using HTML, but consider a case where you have a page with about a dozen H2 elements that should look the same as the H1. How much markup will be required for those 12 H2 elements? A lot. On the other hand, with CSS, all you need to do is this:

H1, H2 {color: maroon; font: italic 1em Times, serif; text-decoration: underline;
   background: yellow;}

Now the styles apply to both H1 and H2 elements, with just three extra keystrokes.

If you want to change the way H1 and H2 elements look, the advantages of CSS become even more striking. Consider how long it would take to change the HTML markup for all H1 and 12 H2 elements, compared to changing the previous styles to this:

H1, H2 {color: navy; font: bold 1em Helvetica, sans-serif;
   text-decoration: underline overline; background: silver;}

If the two approaches were timed on a stopwatch, I'm betting the CSS-savvy author would handily beat the HTML jockey.

In addition, most CSS rules are collected into one location in the document. It is possible to scatter them throughout the document by associated styles to individual elements, but it's usually far more efficient to place all of your styles into a single style sheet. This lets you create (or change) the appearance of an entire document in one place.

1.2.3. Using Your Styles on Multiple Pages

But wait -- there's more! Not only can you centralize all of the style information for a page in one place, but you can also create a style sheet that can then be applied to multiple pages -- as many as you like. This is done by a process in which a style sheet is saved to its own document, and then imported by any page for use with that document. Using this capability, you can quickly create a consistent look for an entire web site. All you have to do is link the single style sheet to all of the documents on your web site. Then, if you ever want to change the look of your site's pages, you need only edit a single file and the change will be propagated throughout the entire server -- automatically!

Consider a site where all of the headings are gray on a white background. They get this color from a style sheet that says:

H1, H2, H3, H4, H5, H6 {color: gray; background: white;}

Now, let's say this site has 700 pages, each one of which uses the style sheet that says headings should be gray. At some point, it's decided that headings should be white on a gray background. So the site's webmaster edits the style sheet to say:

H1, H2, H3, H4, H5, H6 {color: white; background: gray;}

Then he saves the style sheet to disk, and the change is made. That sure beats having to edit 700 pages to enclose every heading in a table and a FONT tag, doesn't it?

1.2.4. Cascading

And that's not all! CSS also makes provisions for conflicting rules; these provisions are collectively referred to as the cascade . For instance, take the previous scenario in which you're importing a single style sheet into a whole bunch of web pages. Now inject a set of pages that share many of the same styles, but also have specialized rules that apply only to them. You can create another style sheet that is imported into those pages, in addition to the already existing style sheet, or you can just place the special styles into the pages that need them.

For example, you might have one page out of the 700 where headings should be yellow on dark blue instead of white on gray. In that single document, then, you could insert this rule:

H1, H2, H3, H4, H5, H6 {color: yellow; background: blue;}

Thanks to the cascade, this rule will override the imported rule for white-on-gray headings. By understanding the cascade rules and using them to your advantage, you can create highly sophisticated sheets that come together to give your pages a professional yet easily changed look.

This ability is not confined to just the author. Web surfers (or readers) can, in some browsers, create their own style sheets (called reader style sheets , oddly enough) that will cascade with the author's styles as well as the styles used by the browser. Thus, a reader who is color-blind could create a style that makes hyperlinks stand out:

A:link {color: white; background: black;}

A reader style sheet could contain almost anything: a directive to make text large enough to read, if the user has impaired vision; rules to remove images for faster reading and browsing; even styles to place the user's favorite picture in the background of every document. (This isn't recommended, of course, but it is possible.) This lets readers customize their web experience without having to turn off all of the author's styles.

Between importing, cascading, and its variety of effects, CSS becomes a wonderful tool for any author or reader.

1.2.5. Compact File Size

Besides the visual power of CSS and its ability to empower both author and reader, there is something else about it that your readers will like. It can help keep document sizes as small as possible, thereby speeding download times. How? As we've mentioned, a lot of pages have used tables and FONT tags to achieve nifty visual effects. Unfortunately, both of these methods create a lot of HTML markup, and that drives up file sizes. By grouping visual style information into central areas and representing those rules using a fairly compact syntax, you can remove the FONT tags and other bits of the usual tag soup. Thus, CSS can keep your load times low and your reader satisfaction high.

1.2.6. Preparing for the Future

HTML, as I previously pointed out, is a structural language, while CSS is its complement: a stylistic language. Recognizing this, the World Wide Web Consortium (W3C), the body that debates and approves standards for the Web, is beginning to remove stylistic tags from HTML. The reasoning for this move is that style sheets can be used to create the effects that certain HTML tags provide, so who needs them?

As of this writing, the HTML 4.0 specification has a number of tags that are deprecated; that is, they are in the process of being phased out of the language altogether. Eventually, they will be marked as obsolete, which means that browsers will be neither required nor encouraged to support them. Among the deprecated tags are <FONT>, <BASEFONT>, <U>, <STRIKE>, <S>, and <CENTER>. With the advent of style sheets, none of these HTML tags are necessary.

As if that weren't enough, there is the very strong possibility that HTML will be gradually replaced by the Extensible Markup Language (XML). XML is much more complicated than HTML, but it is also far more powerful and flexible. Despite this, XML does not, of itself, provide any way to declare style tags such as <I> or <CENTER>. Instead, it is quite probable that XML documents will rely on style sheets to determine the appearance of documents. While the style sheets used with XML may not be CSS, they will probably be whatever follows CSS and very closely resembles it. Therefore, learning CSS now will give authors a big advantage when the time comes to make the jump to an XML-based Web.

Previous | Home | Next
1. HTML and CSS | Book Index | 1.3. Limitations of CSS


Limitations of CSS (Cascading Style Sheets: The Definitive Guide)

1.3. Limitations of CSS

There are a few areas that CSS1 does not address, and therefore are not covered in detail in this book; some of these topics are touched upon in Chapter 10, "CSS2: A Look Ahead". Of course, even a full-blown CSS implementation, covering all of CSS1 and CSS2, would not meet every request from every page designer in the world. It's worth going through some of the boundaries of CSS.

1.3.1. Limited Initial Scope

When you get right down to it, CSS1 is not an overly complicated specification. The entire thing can be printed out in less than 100 pages, and it contains about 70 properties. It is still a very sophisticated and subtle engine, but some areas of web design were omitted from CSS1.

In the first place, CSS1 had almost nothing to say about tables. You might think that you can set margins on table cells, for example -- and a web browser might even let you do so -- but margins should not be applied to table cells under any circumstances. CSS2 introduced a new set of properties and behaviors for dealing with tables, but as of this writing, few if any of these are supported.

TIP

To a certain degree, the omission of tables from CSS1 says a great deal about the feeling many have that tables should never be used to lay out pages. It is felt that floated and positioned elements should do all of the work tables used to do, and more. Whether this premise can be supported is not a discussion I intend to undertake here.

In a similar way, CSS1 contains nothing in the way of positioning. Sure, it's possible to move elements around a little bit, but mostly with negative margins and floating. Everything is, in a sense, relative. CSS2, on the other hand, has three chapters devoted to the visual rendering model, which includes the positioning of elements.

CSS1 makes no provision for downloadable fonts. This leads to a good deal of discussion about how to account for user system configurations and available fonts. CSS2 introduces some font-handling, but even there the issue is not resolved, mostly due to the lack of a widely supported font format. It may be that Scalable Vector Graphics (SVG) will solve some or all of this problem, but it is impossible at this point to say with any certainty.

Finally, there is a lack of media types in CSS1. In other words, CSS1 is primarily a screen-device language, intended to be used to put content onto a computer monitor. There is some thought toward paged media, like printouts, but not much. (Despite this, CSS1 is not a pixel-perfect control mechanism.) In an effort to overcome this limitation, CSS2 introduces media types, which makes it possible to create separate style sheets that are applied to a document depending on its display media. CSS2 also introduces properties and behavior specifically aimed at paged media and aural media.

1.3.2. Implementations

Sadly, the major drawback to using CSS is that it was so poorly implemented at first. Through a combination of miscommunication, misinterpretation, confusion, and poor quality control, the first browsers to attempt support of CSS did a rather poor job of it.

The worst offenders are Microsoft Internet Explorer 3.x and Netscape Navigator 4.x. The first in their respective lines to attempt CSS support, these browsers have incomplete, bug-ridden, and quite often contradictory implementations of CSS1, never mind CSS2. These implementations are so bad that it is difficult to consider them CSS-supporting at all. Some of their flaws are bad enough to cause the browser to crash, or even lock up an entire system, when trying to handle some styles.

With Internet Explorer 4.x and 5.x, things did improve. Although not perfect by any means, these browser versions did at least stomp out many of the bugs that plagued IE3, and also added some support for previously unrecognized CSS properties in both CSS1 and CSS2.

Opera 3.5, on the other hand, came out of the gate with impressive CSS support. Confining itself to CSS1, this browser did quite well with the properties that it supported, suffering only a few minor bugs. When 3.6 was released, almost all of these bugs were eliminated, although support did not move past CSS1. Before version 3.5, Opera did not support CSS at all.

As for Netscape's products, the Navigator 4.7 is not significantly better at CSS support than was version 4.0, although it's at least less crash-prone. The only real hope for good CSS support out of Netscape is their Gecko rendering engine. As this was being written, the latest builds of Gecko were quite excellent, and were in fact used (along with Internet Explorer 4.5 and 5.0 for Macintosh) to create many of the figures in this book.

Since CSS is not intended to provide total control over document display, and should allow the page's content to come through no matter what browser is being used, this general state of affairs should not be considered a barrier to the use of CSS. You may wish, however, to warn your users that if they are using browsers of a certain vintage (Explorer 3.x, and perhaps Navigator 4.x) that they go into their preferences and disable style sheets. That way, they'll at least be able to read the content of your pages, even if it isn't styled the way you might have hoped.

Previous | Home | Next
1.2. CSS to the Rescue | Book Index | 1.4. Bringing CSS and HTML Together


Bringing CSS and HTML Together (Cascading Style Sheets: The Definitive Guide)

1.4. Bringing CSS and HTML Together

We keep visiting the point that HTML documents have an inherent structure. In fact, that's part of the problem with the Web today: too many of us forget that documents are supposed to have an internal structure, which is altogether different than a visual structure. In our rush to create the coolest-looking pages on the Web, we've bent, warped, and generally ignored the idea that pages should contain information that has some structural meaning.

However, that structure is an inherent part of the relationship between HTML and CSS; without the structure, there couldn't be a relationship at all. In order to understand it better, let's look at an example HTML document and break it down by pieces. Here's the markup, shown in Figure 1-1:

<HTML>
<HEAD>
    <TITLE>Eric's World of Waffles</TITLE>
    <LINK REL="stylesheet" TYPE="text/css" HREF="sheet1.css" TITLE="Default">
    <STYLE TYPE="text/css">
        @import url(sheet2.css);
        H1 {color: maroon;}
        BODY {background: yellow;}
        /* These are my styles! Yay! */
    </STYLE>
</HEAD>
<BODY>
    <H1>Waffles!</H1>
    <P STYLE="color: gray;">The most wonderful of all breakfast foods is
    the waffle-- a ridged and cratered slab of home-cooked, fluffy
    goodness...
    </P>
</BODY>
</HTML>

Figure 1-1. A simple document

Now, let's examine each portion of the document.

1.4.1. The LINK Tag

<LINK REL="stylesheet" TYPE="text/css" HREF="sheet1.css" TITLE="Default">

First we consider the use of the LINK tag. The LINK tag is a little-regarded but nonetheless perfectly valid tag that has been hanging around the HTML specification for years, just waiting to be put to good use. Its basic purpose is to allow HTML authors to associate other documents with the document containing the LINK tag. CSS1 uses it to link style sheets to the HTML document; in Figure 1-2, a style sheet called sheet1.css is linked to the document.

Figure 1-2. A representation of how external style sheets are applied to documents

These style sheets, which are not part of the HTML document but are still used by it, are referred to as external style sheets. This is due to the fact that they're style sheets but are external to the HTML document. (Go figure.)

In order to successfully load an external style sheet, LINK must be placed inside the HEAD element but may not be placed inside any other element, rather like TITLE or STYLE. This will cause the web browser to locate and load the style sheet and use whatever styles it contains to render the HTML document, in the manner shown in Figure 1-2.

And what is the format of an external style sheet? It's simply a list of rules, just like those we saw in the previous section and in the example above, but in this case, the rules are saved into their own file. Just remember that no HTML or any other markup language can be included in the style sheet -- only style rules. Here's the markup of an external style sheet:

H1 {color: red;}
H2 {color: maroon; background: white;}
H3 {color: white; background: black; font: medium Helvetica;}

That's all there is to it -- no STYLE tags, no HTML tags at all, just plain-and-simple style declarations. These are saved into a plain text file and are usually given an extension of .css , as in sheet1.css.

The filename extension is not required, but some browsers won't recognize the file as containing a style sheet unless it actually ends with .css, even if you do include the correct TYPE of text/css in the LINK element. So make sure you name your style sheets appropriately.

1.4.1.1. LINK attributes

For the rest of the LINK tag, the attributes and values are fairly straightforward. REL stands for "relation," and in this case, the relation is "stylesheet." TYPE is always set to text/css. This value describes the type of data that is to be loaded using the LINK tag. That way, the web browser knows that the style sheet is a CSS style sheet, a fact that will determine how the browser deals with the data it imports. After all, there may be other style languages in the future, so it will be important to say which language you're using.

Next we find the HREF attribute. The value of this attribute is the URL of your style sheet. This URL can be either absolute or relative, depending on what works for you. In our example, of course, the URL is relative. It could as easily have been something like http://www.style.org/sheet1.css.

Finally, there is the TITLE attribute. This attribute is not often used, but it could become important in the future. Why? It becomes important when there is more than one LINK tag -- and there can be more than one. In these cases, however, only those LINK tags with a REL of stylesheet will be used in the initial display of the document. Thus, if you wanted to link in two style sheets with the names basic.css and splash.css, the markup would look like this:

<LINK REL="stylesheet" TYPE="text/css" HREF="basic.css">
<LINK REL="stylesheet" TYPE="text/css" HREF="splash.css">

This will cause the browser to load both style sheets, combine the rules from each, and apply the result to the document (see Figure 1-3). We'll see exactly how the sheets are combined in the next chapter, but for now, let's just accept that they're combined. For example:

<LINK REL="stylesheet" TYPE="text/css" HREF="sheet-a.css">
<LINK REL="stylesheet" TYPE="text/css" HREF="sheet-b.css">

<P CLASS="a1">This paragraph will be gray only if styles from the
stylesheet 'sheet-a.css' are applied.</P>
<P CLASS="b1">This paragraph will be gray only if styles from the
stylesheet 'sheet-b.css' are applied.</P>

Figure 1-3. Combining linked style sheets

It's also possible to define alternate style sheets. These are marked with a REL of alternate stylesheet and come into play only if they're selected by the reader.

1.4.1.2. Alternate style sheets

Unfortunately, as of this writing, browsers don't make it very easy to select alternate style sheets, assuming that they can do so at all. Should a browser be able to use alternate style sheets, it will use the values of the TITLE attributes to generate a list of style alternatives. So you could write the following:

<LINK REL="stylesheet" TYPE="text/css"
 HREF="sheet1.css" TITLE="Default">
<LINK REL="alternate stylesheet" TYPE="text/css"
 HREF="bigtext.css" TITLE="Big Text">
<LINK REL=" alternate stylesheet " TYPE="text/css"
 HREF="spoken.css" TITLE="Spoken Word">

Users could then pick the style they wanted to use, and the browser would switch from the first one (labeled "Default" in this case) to whichever the reader picked. Figure 1-4 shows one way in which this selection mechanism might be accomplished.

Figure 1-4. A browser offering alternate style sheet selection

WARNING

Alternate styles sheets are only supported by one browser as of this writing -- Internet Explorer for Macintosh -- and that only with a JavaScript widget, which does not ship with the browser. None of the three major browsers natively supports the selection of alternate style sheets (shown in Figure 1-4).

As of this writing, the one browser that does recognize alternate style sheets (Internet Explorer for Macintosh) will not apply the styles from any LINK element with a REL of alternate stylesheet unless that style sheet is selected by the user.

1.4.2. The STYLE Element

The STYLE element, which is a relatively new element in HTML, is the most common way to define a style sheet, since it appears in the document itself. STYLE should always use the attribute TYPE; in the case of a CSS1 document, the correct value is text/css, just as it was with the LINK tag. So, the STYLE container should always start with <STYLE TYPE="text/css">. This is followed by one or more styles and finished with a closing </STYLE> tag.

The styles between the opening and closing STYLE tags are referred to as the document style sheet or the embedded style sheet , since this style sheet is embedded within the document. It contains styles that apply to the document, but it can also contain multiple links to external style sheets using the @import directive.

1.4.3. The @import Directive

Now for the stuff that is found inside the STYLE tag. First, we have something very similar to LINK: the @import directive. Just like LINK, @import can be used to direct the web browser to load an external style sheet and use its styles in the rendering of the HTML document. The only real difference is in the actual syntax of the command and its placement. As you can see, @import is found inside the STYLE container. It must be placed there, before the other CSS rules, or else it won't work at all.

<STYLE TYPE="text/css">
@import url(styles.css); /* @import comes first */
H1 {color: gray;}
</STYLE>

Like LINK, there can be more than one @import statement in a document. Unlike LINK, however, the style sheets of every @import directive will always be loaded and used. So given the following, all three external style sheets will be loaded, and all of their style rules will be used in the display of this document:

@import url(sheet2.css);
@import url(blueworld.css);
@import url(zany.css);

WARNING

Only Internet Explorer 4.x/5.x and Opera 3.x support @import; Navigator 4.x ignores this method of applying styles to a document. This can actually be used to one's advantage in "hiding" styles from these browsers. See Chapter 11, "CSS in Action", for more details.

1.4.4. Actual Styles

H1 {color: maroon;}
BODY {background: yellow;}

After the @import statement in our example, we find some ordinary styles. What they mean doesn't actually matter for this discussion, although you can probably guess that they set H1 elements to be maroon and BODY elements to have a yellow background.

Styles such as these comprise the bulk of any embedded style sheet -- style rules both simple and complex, short and long. It will be only rarely that you have a document where the STYLE element does not contain any rules.

For those of you concerned about making your documents accessible to older browsers, there is an important warning to be made. You're probably aware that browsers ignore tags they don't recognize; for example, if a web page contains a BLOOPER tag, browsers will completely ignore the tag because it isn't a tag they recognize.

The same will be true with style sheets. If a browser does not recognize <STYLE> and </STYLE>, it will ignore them altogether. However, the declarations within those tags will not be ignored, because they will appear to be ordinary text so far as the browser is concerned. So your style declarations will appear at the top of your page! (Of course, the browser should ignore the text because it isn't part of the BODY element, but this is never the case.) This problem is illustrated in Figure 1-5.

Figure 1-5. Older browsers will literally display your style sheets

In order to combat this problem, it is recommended that you enclose your declarations in a comment tag. In the example given here, the beginning of the comment tag appears right after the opening STYLE tag, and the end of the comment appears right before the closing STYLE tag:

<STYLE type="text/css"><!--
@import url(sheet2.css);
H1 {color: maroon;}
BODY {background: yellow;}
--></STYLE>

This should cause older browsers to completely ignore not only the STYLE tags but the declarations as well, because HTML comments are not displayed. Meanwhile, those browsers that understand CSS will still be able to read the style sheet.

WARNING

There is one drawback to this strategy. A few versions of older browsers, such as very early versions of Netscape Navigator and NCSA Mosaic, had some trouble with comments. The problems ranged from mangled display to browser crashes. This happened with only a very few browser versions, and it's safe to say that very few of these browsers are still being operated. Be aware that there are some people out there using these particular browsers, and they may well have major problems viewing your page if you use these comment tags.

1.4.5. CSS Comments

/* These are my styles! Yay! */

CSS also allows for comments, but it uses a completely different syntax to accomplish this. CSS comments are very similar to C/C++ comments, in that they are surrounded by /* and */:

/* This is a CSS1 comment */

Comments can span multiple lines, just as in C++:

/* This is a CSS1 comment, and it
can be several lines long without
any problem whatsoever. */

It's important to remember that CSS comments cannot be nested. So, for example, this would not be correct:

/* This is a comment, in which we find
another comment, which is WRONG
   /* Another comment */
and back to the first comment */

However, it's hardly ever desirable to nest comments, so this limitation is no big deal.

If you wish to place comments on the same line as markup, then you need to be careful about how you place them. For example, this is the correct way to do it:

H1 {color: gray;}   /* This CSS comment is several lines */
H2 {color: silver;} /* long, but since it is alongside */
P {color: white;}   /* actual styles, each line needs to */
PRE {color: gray;} /* be wrapped in comment markers. */

Given this example, if each line isn't marked off, then most of the style sheet will become part of the comment, and so will not work:

H1 {color: gray;}   /* This CSS comment is several lines
H2 {color: silver;}   long, but since it is not wrapped
P {color: white;}   in comment markers, the last three
PRE {color: gray;}   styles are part of the comment. */

In this example, only the first rule (H1 {color: gray;}) will be applied to the document. The rest of the rules, as part of the comment, are ignored by the browser's rendering engine.

Moving on with our example, we see some more CSS information actually found inside an HTML tag!

1.4.6. Inline Styles

<P STYLE="color: gray;">The most wonderful of all breakfast foods is
the waffle-- a ridged and cratered slab of home-cooked, fluffy goodness...
</P>

For cases where you want to simply assign a few styles to one individual element, without the need for embedded or external style sheets, you'll employ the HTML attribute STYLE to set an inline style. The STYLE attribute is new to HTML, and it can be associated with any HTML tag whatsoever, except for those tags which are found outside of BODY (HEAD or TITLE, for instance).

The syntax of a STYLE attribute is fairly ordinary. In fact, it looks very much like the declarations found in the STYLE container, except here the curly brackets are replaced by double quotation marks. So <P STYLE="color: maroon; background: yellow;"> will set the text color to be maroon and the background to be yellow for that paragraph only. No other part of the document will be affected by this declaration.

Previous | Home | Next
1.3. Limitations of CSS | Book Index | 1.5. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

1.5. Summary

In order to facilitate a return to structural HTML, something was needed to permit authors to specify how a document should be displayed. CSS fills that need very nicely, and far better than the various presentational HTML elements ever did (or probably could have done). For the first time in years, there is hope that web pages can become more structural, not less, and at the same time the promise that they can have a more sophisticated look than ever before.

In order to ensure that this transition goes as smoothly as possible, HTML introduces a number of ways to link HTML and CSS together while still keeping them distinct. This allows authors to simplify document appearance management and maximize their effectiveness, thereby making their jobs a little easier. The further benefits of improving accessibility and positioning documents for a switch to an XML world make CSS a compelling technology.

As for user agent support, the LINK element has been universally supported, as have both the STYLE element and attribute. @import didn't fare so well, though, being ignored outright by Navigator 4. This is not such a major tragedy, annoying though it might be, since the LINK element will still let you bring external style sheets into play.

In order to fully understand how CSS can do all of this, authors need a firm grasp of how CSS handles document structure, how one writes rules that behave as expected, and most of all, what the "Cascading" part of the name really means.

Previous | Home | Next
1.4. Bringing CSS and HTML Together | Book Index | 2. Selectors and Structure


Selectors and Structure (Cascading Style Sheets: The Definitive Guide)

Chapter 2. Selectors and Structure

Contents:

Basic Rules
Grouping
Class and ID Selectors
Pseudo-Classes and Pseudo-Elements
Structure
Inheritance
Specificity
The Cascade
Classification of Elements
Summary

The life of a web designer can be pretty rough at times. How many times have you slaved over a new design, guided it through 17 committees and 4 major revisions, and finally come up with something that everyone seems to like, when a vice-presidential voice suddenly says, "I'm concerned about the shade of green we're using for our headings. Could we see some versions of the site using a few lighter shades, and maybe a couple of darker shades as well?"

Well, now you're faced with the necessity of scheduling another meeting so you can go back to your computer and produce new versions of the design, replacing all of your <FONT COLOR="green"> tags with new ones that have different shades of green. Meanwhile, all the other administrators have started to think of their own ways to nitpick the design to death. Maybe the headings should be dark blue instead of green, or perhaps the sidebar's background is the wrong color, or maybe the company logo ought to be used for list-item bullets instead of those little black dots that everyone else uses.

So, at the next design meeting, after everyone's agreed that such-and-so shade of green is a good one, all these new revision ideas start popping up, and all the administrators are nodding gravely and saying, why yes, maybe we should see a design which uses shades of red, not green. The downward spiral has begun.

Even if you're lucky enough to work in a place where you don't have to tolerate such nonsense, you probably pose similar questions to yourself while you're working on your design. Does the particular blue you're using for your sidebar's background contrast enough with your yellow links? Would the headings all look better if they were red instead of green? What if the paragraphs were in one font and the headings in another? The only way to find out is to fiddle with FONT tags and BGCOLOR attributes. That can take forever if you have a lot of documents, or a really complicated design, and if you suddenly head in a different direction, you can spend almost as much time cleaning up the residue of your old assumptions as you do on actual creative design work.

Style sheets offer an easy, convenient, and powerful way to break out of this morass. One of the primary advantages that CSS offers to designers is its ability to easily apply a set of styles to all elements of the same type. This may not sound like much, but consider: with the edit of a single line of CSS, you can change the colors of all your headings. Don't like the blue you're using? Change that one line of code, and the headings can all be purple, or yellow, or maroon, or any other color you desire. Design time is reduced by cutting out the grunt work, allowing you to focus on being creative. The next time you're in a meeting and someone wants to see headings with a different shade of green, just edit your page's styles and hit reload. Voilà! The results of that change are right there for everyone to see, and it only took seconds to accomplish, instead of requiring another meeting.

Of course, CSS can't solve all your problems -- you can't use it to change the color of your GIFs, for example -- but it can make your life a lot easier than it has been. It does this with selectors and structure, the first of which is used to make changes that take advantage of the second.

2.1. Basic Rules

Central to CSS is the ability to apply certain rules to the same types of elements in a document, which can drastically reduce the amount of work an author has to undertake. For example, let's say that you wish to make the text of all H2 elements appear gray. Using straight HTML, you'd have to do this by inserting <FONT color="gray">...</FONT> tags in all your H2 elements, something like this:

<H2><FONT COLOR="gray">This is H2 text</FONT></H2>

If you have a document with a lot of H2 elements, this can become very tedious to type. If you later decide that you want to change all the H2s to be green instead of gray, then the task becomes even worse because you have to find all of those H2s and change the value of each and every FONT tag to be gray.

In CSS, you can avoid all that hassle, and still get the effects you want in a way that makes them easy to change. In the document's style sheet, you need only define the following to get the same result:

H2 {color: gray;}

Altogether, this is known as a rule. This single rule is enough to cause all H2 elements to be colored gray. If you want to change this to another color, then the alteration of this single rule will affect all H2s in the document:

H2 {color: silver;}

2.1.1. Rule Structure

In order to understand this in more detail, let's break down the structure of a rule.

Each rule has two parts, the selector and the declaration. At a finer level, each declaration is actually a combination of properties and values. Every style sheet is made up of a series of rules, but rules do not always appear in style sheets.

First, however, let's break down our example rule into its various parts, as shown in Figure 2-1.

Figure 2-1. The structure of a rule

As you can see, on the left side of the rule, we find the selector. A selector is simply the part of the rule that selects the parts of the document to which the styles should be applied. In this case, H1 elements are selected. If the selector shown here were P, then all P (paragraph) elements would be selected, and H1 elements would not.

On the right side of the rule, we have the declaration. This is a combination of a CSS property and a value of that property. In Figure 2-1, the declaration says that this rule will cause parts of the document to have a color of purple. The parts that will be purple are those shown in the selector (in this case, all H1 elements).

2.1.2. Simple Selectors

A selector is most often an HTML element, but it can be other things. For example, if a CSS file contains styles for an XML document, it might look something like this:

QUOTE {color: gray;}
BIB {color: red;}
BOOKTITLE {color: purple;}
MYElement {color: red;}

In other words, the most basic kind of selector for a document is one of the elements of that document. In XML, this could be anything. If you're styling an HTML document, on the other hand, then you will generally use one of the many HTML elements such as P, H3, EM, A, or even BODY, like this:

BODY {color: black;}
H1 {color: purple;}
H3 {color: gray;}
STRONG {color: red;}
EM {color: maroon;}

The results of this style sheet are shown, with the obvious limitations imposed by grayscale printing, in Figure 2-2.

Figure 2-2. Simple styling of a document

This ability to apply styles to elements is obviously very powerful. It also makes it simple to shift styles from one type of element to another. Let's say we have a page design where H2 elements are gray:

H2 {color: gray;}

Okay, not bad, but the more you look at this, the less you like it. You eventually decide that you actually want your paragraph text to be gray, not your H2 text. No problem! All you have to do is change the selector from H2 to P, and you'll have shifted the style from H2 elements to P (paragraph) elements:

P {color: gray;}

For the moment, that takes care of the left side of CSS rules. Let's examine the right side, where the declaration lives, before we return to selectors for some added features.

2.1.3. Declarations

A declaration is always formatted as a property followed by a colon, and then a value. Finally, the declaration is terminated with a semicolon (;). The value can be a single keyword, or a space-separated list of one or more keywords that are permitted for that property. If an incorrect property is used in a declaration, the entire declaration is ignored. Thus, the following declaration would be ignored because, while the value is correct, the property is not:

brain-size: 2cm;

If an incorrect value is used, then in most cases, only that value should be ignored -- although it is possible to invalidate an entire rule with an incorrect value. This is less likely with many browsers, however, because most of them are fairly tolerant of mistakes in CSS: they'll just drop unrecognized values and use the rest of the declaration, instead of ignoring the whole thing. (While this sounds like a polite thing to do, it unfortunately makes it much easier for authors to pick up bad authoring habits.)

In an instance where you can use more than one keyword for a property's value, then the keywords are usually separated by spaces. Not every property can accept multiple keywords, but many can: for example, the font property. Should you wish to define paragraphs to use medium-size Helvetica for their text, then the rule would be as follows:

P {font: medium Helvetica;}

Note the space between medium and Helvetica, each of which is a keyword (the first for the font's size and the second for the actual font name, of course). The space allows the user agent to distinguish between the two keywords and apply them correctly. The final semicolon indicates that the rule has been concluded.

The reason we refer to these space-separated words as keywords is that, taken together, they all form the value of the property in question. For instance, consider the following fictional rule:

rainbow: red orange yellow green blue indigo violet;

There is no such property as rainbow, of course, and many of the colors used aren't valid either, but it will be useful for illustrative purposes. What we have is a case where the value of rainbow is red orange yellow green blue indigo violet. The seven keywords add up to a single, unique value. We can redefine the value for rainbow as follows:

rainbow: infrared red orange yellow green blue indigo violet ultraviolet;

Now we have a different value for rainbow, but this time it's composed of nine keywords instead of seven. Despite their seeming similarity, these two values are as unique and different as the values zero and one.

There are a few instances where keywords are separated by something other than a space. font is an excellent example of this, as it happens: there is exactly one place where a forward-slash (/) can be used to separate two specific keywords. Here's an example:

H2 {font: large/150% sans-serif;}

The slash separates the font size and the line-height. This is the only place the slash can appear in the font declaration. All of the other keywords allowed for font are separated by spaces.

That's basically all there is to simple declarations, just as there wasn't much to say about simple selectors. We aren't limited to such simple operations, though. In fact, let's find out just how powerful CSS can be.

Previous | Home | Next
1.5. Summary | Book Index | 2.2. Grouping


Grouping (Cascading Style Sheets: The Definitive Guide)

2.2. Grouping

So far, things have been pretty simple -- as long as you only want to apply a single style to a single selector, that is. No doubt you'll want to go further than that, though: sometimes you'll want the same style to apply to multiple elements, which means you'll want to use more than one selector, and other times, you'll want to apply more than one style to an element or group of elements.

2.2.1. Grouping Selectors

Let's say you have a document in which both H2 elements and paragraphs should have gray text. The easiest way to accomplish this is to use the following.

H2, P {color: gray;}

By placing both the H2 and P selectors on the left side of the rule and separating them with a comma, we've defined a rule where the style on the right (color: gray;) is applied to both selectors. The comma tells the browser that there are two different selectors involved in the rule. Leaving out the comma would give the rule a completely different meaning, which we'll explore later, in Section 2.5.1, "Contextual Selectors".

It is possible to group any number of selectors together. If you wanted to make sure that every element in your document had a color of gray, you might use the following rule:

BODY, TABLE, TH, TD, H1, H2, H3, H4, P, PRE, STRONG, EM, B, I {color: gray;}

As you can tell, grouping allows an author to drastically compact certain types of style assignments which might otherwise result in a very long style sheet. The following two alternatives will have exactly the same result, but it's pretty obvious which one is easier to type:

H1 {color: purple;}
H2 {color: purple;}
H3 {color: purple;}
H4 {color: purple;}
H5 {color: purple;}
H6 {color: purple;}

or:

H1, H2, H3, H4, H5, H6 {color: purple;}

Grouping can make for some interesting choices. For example, all of the style sheets in the following example are equivalent -- each merely shows a different way of grouping both selectors and declarations -- and any of them will yield the result shown in Figure 2-3:

H1 {color: purple; background: white;}
H2 {color: purple; background: green;}
H3 {color: white; background: green;}
H4 {color: purple; background: white;}
B {color: red; background: white;}

H1, H2, H4 {color: purple;}
H2, H3 {background: green;}
H1, H4, B {background: white;}
H3 {color: white;}
B {color: red;}

H1, H4 {color: purple; background: white;}
H2 {color: purple;}
H3 {color: white;}
H2, H3 {background: green;}
B {color: red; background: white;}

Figure 2-3. The result of equivalent style sheets

2.2.2. Grouping Declarations

Since it is possible to group selectors together into a single rule, it makes sense that you can also group declarations. The importance of using the semicolon to end each declaration becomes even more clear once we consider the fact that there can be more than one declaration in a given rule. This helps keep style sheets compact, organized, and easier to read. For example, assume that you want all H1 elements to have purple text on an aqua background, and use 18-point Helvetica for the font. You could write your styles like this:

H1 {font: 18pt Helvetica;}
H1 {color: purple;}
H1 {background: aqua;}

That's rather inefficient, though -- imagine having to do this for an element to which you're assigning 10 or 15 styles! Instead, you can group your declarations together:

H1 {font: 18pt Helvetica; color: purple; background: aqua;}

This will have exactly the same effect as the three-line style sheet shown before, yielding the result shown in Figure 2-4.

Figure 2-4. Grouping declarations

When you group declarations together into a single rule, the semicolons are used to separate the declarations. This is especially important since whitespace is ignored in style sheets, so the user agent (UA) must rely on correct syntax to parse a style sheet. There is nothing wrong with formatting your styles like this:

H1 {
  font:      18pt Helvetica;
  color:     purple;
  background:   aqua;
}

If the second semicolon is omitted, the user agent will interpret the style sheet as follows:

H1 {
  font: 18pt Helvetica;
  color: purple background: aqua;
}

Since background: is not a valid value for color, and also since color can be given only one keyword, the entire statement should be ignored completely. A user agent in this case might incorrectly render H1s as purple text without an aqua background. However, since only a single keyword is permitted for color, the user agent should ignore the entire declaration as being invalid, meaning that you won't even get purple H1s; instead, they'll be the default color (usually black) with no background at all. The declaration font: 18pt Helvetica will still take effect, since it was correctly terminated with a semicolon, but the other styles shouldn't work at all.

TIP

While it is not technically necessary to follow the last declaration of a rule with a semicolon, it is generally good practice to do so. In the first place, it will keep you in the habit of terminating your declarations with semicolons, the lack of which is one of the most common ways to cause errors in rendering. Second, if you decide to add another declaration to a rule, you don't have to worry about forgetting to insert an extra semicolon. Finally, some older browsers such as Internet Explorer 3.x have a greater tendency to become confused if the semicolon is omitted from the final declaration in a rule. My advice is to avoid all these problems and always follow a declaration with a semicolon.

As with selector grouping, declaration grouping is a convenient way to keep your style sheets short, expressive, and easy to maintain. The following example shows two ways of assigning six different styles to H1 elements. The first uses a separate rule for each property, and the second uses declaration grouping to apply all six styles to a single selector. The primary advantage of the second method is that it allows you to change the element to which the styles are applied by editing one selector, instead of six. Either way, though, you'll get the result depicted in Figure 2-5:

H1 {color: gray;}
H1 {background: white;}
H1 {border: 1px solid black;}
H1 {padding: 0.5em;}
H1 {font: 20pt Charcoal,sans-serif;}
H1 {text-transform: capitalize;}

H1 {color: gray; background: white; border: 1px solid black; padding: 0.5em;
  font: 20pt Charcoal,sans-serif; text-transform: capitalize;}

Figure 2-5. With or without grouping, the results are the same

2.2.3. Grouping Everything

All right, so we can group selectors, and we can group declarations. By combining both kinds of grouping in single rules, it is possible to define very complex styles using only a few statements. Let's assume that we wish to assign some complex styles to all of the headings in a document. Thus:

H1, H2, H3, H4, H5, H6 {color: gray; background: white; padding: 0.5em;
  border: 1px solid black; font-family: Charcoal,sans-serif;}

The grouping of the selectors means that the styles on the right side of the rule will be applied to all the headings listed, and the grouping of declarations means that all of the listed styles will be applied to the selectors on the left side of the rule. The result of this rule is shown in Figure 2-6.

This approach is obviously preferable to the alternative, which would start out something like this and would continue for quite a while:

H1 {color: gray;}
H2 {color: gray;}
H3 {color: gray;}
H4 {color: gray;}
H5 {color: gray;}
H6 {color: gray;}
H1 {background: white;}
H2 {background: white;}
H3 {background: white;}

You can write your styles like this, of course, if that's what you really want to do -- but I wouldn't recommend it. The problems you'd face in trying to edit your styles would be almost as bad as if you were back to using FONT tags everywhere!

Figure 2-6. Grouping both selectors and rules

It's largely thanks to grouping that CSS files look the way they do. Here is a typical style sheet, with Figure 2-7 showing the result:

BODY {background: white; color: gray;}
H1, H2, H3, H4, H5, H6 {font-family: Helvetica, sans-serif;
  color: white; background: black;}
H1, H2, H3 {border: 2px solid gray; font-weight: bold;}
H4, H5, H6 {border: 1px solid gray;}
P, TABLE {color: gray; font-family: Times, serif;}
PRE {margin: 1em; color: maroon;}

Figure 2-7. The result of a typical style sheet

For all the power and complexity we've introduced, there is even more with regard to selectors. It's possible to add more expression to selectors, and in so doing, apply styles in a way that cuts across elements in favor of types of information. Of course, to get something so powerful, you'll have to do a little work in return, but it's well worth it.

Previous | Home | Next
2. Selectors and Structure | Book Index | 2.3. Class and ID Selectors


Class and ID Selectors (Cascading Style Sheets: The Definitive Guide)

2.3. Class and ID Selectors

So far, we've been grouping selectors and declarations together in a variety of ways, but for all that, the selectors we've been using are very simple ones. They only refer to document elements, and while that's often just what you need, there are times when something a little more specialized is required.

In addition to raw document elements, there are two other kinds of selectors: class and ID selectors, which allow the assignment of styles in a way that is independent of document elements. These selectors can be used on their own or in conjunction with element selectors. However, they only work if you've marked up your document appropriately, so using them generally involves a little forethought and planning.

Of course, you probably want to know why you should go to the effort. What will it get you? Let's consider a document about the handling of plutonium, in which there are various warnings on things to do (or not do) while working with such a dangerous substance. You want to make each warning use boldface text so that it will stand out from everything else.

However, you don't know what kind of elements these warnings will be. Sometimes there will be a whole paragraph of warning text, but other times there might be a single warning list item out of a lengthy list, or just a given section of a paragraph. In any case, you can't define a rule using simple selectors of any kind. If you did this:

P {font-weight: bold;}

then all paragraphs will be bold, not just those that contain warnings. You need a way to only select the paragraphs that are warnings, or more precisely, a way to select only those elements that are warnings.

Another scenario involves ways of styling different kinds of links. You might wish to set a different color for links that point to pages not found on your site. Once more, you can't just write:

A {color: maroon;}

because that will select all anchors, regardless of whether they point to pages on your site or off it.

So what we need is a way to apply styles to parts of the document that have been marked in a certain way, independent of the elements involved -- and that's just what CSS gives us.

2.3.1. Class Selectors

The most common way to apply styles without worrying about the elements involved is to use class selectors. Before you can use them, however, you need to modify your actual document markup so that the class selectors will work. Why? Since we aren't going to be selecting according to the elements, we need something else to grab onto. Enter the CLASS attribute:

<P CLASS="warning">While handling plutonium, care must be taken to avoid
the formation of a critical mass.</P>
<P>During this step, <SPAN CLASS="warning">the possibility of implosion is
very real, and must be avoided at all costs</SPAN>. This can be accomplished
by keeping the various masses separate...</P>

In order to associate the styles of a class selector to an element, that element must have the appropriate value set to a CLASS attribute. In the previous code, we've assigned a class value of warning to two elements: the first paragraph and the SPAN element in the second paragraph.

All we need now is a way to apply styles to these classed elements. Here it is:

.warning {font-weight: bold;}

That simple rule will have the effect shown in Figure 2-8, when combined with the example markup shown earlier. In fact, given the style sheet shown, the style of font-weight: bold will be applied to any element with a CLASS attribute with a value of warning.

Figure 2-8. Results of using a class selector

As you can see, the class selector works by directly referencing a value that will be found in the class attribute of an element. This reference is always preceded by a period (.), which marks it as a class selector. The period is necessary because it helps keep the class selector separate from anything with which it might be combined -- like an element selector. For example, maybe we only want boldface text when an entire paragraph is a warning. Thus:

P.warning {font-weight: bold;}

As you can see in Figure 2-9, only the first paragraph is bold, whereas the text in the second paragraph is no longer bold, because it no longer matches the SPAN element. The simplest way to translate the selector P.warning is like this: "Any paragraph whose CLASS attribute has a value of warning will take the following styles." Since the SPAN element is not a paragraph, the rule's selector doesn't match, and so its text is not made bold.

Figure 2-9. Combining a class selector with an element selector

Of course, you could use the selector SPAN.warning to assign different styles to that element. See Figure 2-10 for the results of these styles:

P.warning {font-weight: bold;}
SPAN.warning {font-style: italic;}

Figure 2-10. Making selectors more specific

In this case, the warning paragraph is boldfaced, while the warning SPAN is italicized. Each rule applies only to a specific type of element-class combination, and so does not "leak over" to other elements.

In addition, you could use a combination of a general class selector and an element-specific class selector to make the styles even more useful, as shown in Figure 2-11:

.warning {font-style: italic;}
SPAN.warning {font-weight: bold;}

Figure 2-11. Using generic and specific selectors to combine styles

Now we have a situation where any warning text will be italic, but only text within a SPAN element with a class of warning will be boldface as well.

2.3.2. ID Selectors

In many ways, ID selectors are just like class selectors -- but there are a few crucial differences. The first difference is the fact that ID selectors are preceded by an octothorpe (#) -- otherwise known as a pound sign, hash mark, or tic-tac-toe board -- instead of a period. Thus, you might see a rule like this one:

#first-para {font-weight: bold;}

This will apply boldface text to any element whose ID attribute has a value of first-para.

That's the second difference: instead of referencing values of the CLASS attribute, ID selectors refer to values found in ID attributes. This likely does not come as a surprise to you. Here's an example of an ID selector in action:

#first-para {font-weight: bold;}

<P ID="first-para">This is the first paragraph, and will be boldfaced.</P>
<P>This is the second paragraph, which will NOT be bold.</P>

As Figure 2-12 shows, the paragraphs are rendered just as the text within describes: the first is boldfaced, whereas the second is not.

Figure 2-12. Using an ID selector

Note that the value first-para didn't have to be applied to a paragraph. It could have been assigned to any element within the document.

2.3.3. Class? ID? What's the Difference?

Up until now, we've been using both class and ID selectors in very similar ways. In effect, we've been using both to usurp the structural nature of HTML, since styles can be applied to any element, regardless of its function in the structure of the document. This is not generally recommended, since one could in theory use class and ID selectors to make any element behave like any other element, which runs somewhat counter to the purpose of HTML as a structural language. But all this aside, what's the difference between classes and IDs?

In the first place, classes may be assigned to any number of elements, as we saw earlier -- the class warning was applied to both a paragraph and some SPAN text, and it could have been applied to many more elements. IDs, on the other hand, are supposed to be used once, and only once, within an HTML document. In this way, they're somewhat similar to the values of the attribute NAME in form elements like INPUT. Each value of NAME should be unique, and so it is with IDs.

TIP

In the real world, browsers don't usually check for the uniqueness of IDs in HTML, which means that if you sprinkle an HTML document with several elements, all of which have the same value for their ID attributes, you'll probably get the same styles applied to each. This isn't correct behavior, but it happens anyway. Note, by the way, that I was careful to say that this is incorrect for HTML documents. Other markup languages may not have the same restrictions on ID values, although there's no way to know that until you actually go look at a given language's specification. In HTML, it is forbidden to have ID values that are identical to other IDs within the same document.

The other difference between class and ID is that IDs carry a higher weight when trying to determine which styles should be applied to a given element. This is explained in greater detail in Section 2.8, "The Cascade", later in this chapter.

Like classes, IDs can also be declared independently of an element, although since they are supposed to be unique anyway, this generally makes less sense. Still, there may be circumstances in which you know that a certain ID value will appear in a document, but not the element on which it will appear, so it is useful to be able to declare standalone ID selectors. For example, you may know that in any given document, there will be an element with an ID value of mostImportant. You don't know whether that most important thing will be a paragraph, a short phrase, a list item, or a section heading. You know only that it will exist in each document, that it will be on an arbitrary element, and that it will appear no more than once in a given document. In that case, you would write a rule like this:

#mostImportant {color: red; background: yellow;}

This rule would match any of the following elements (which, as noted before, should not appear together in the same document, because they all have the same ID value):

<H1 ID="mostImportant">This is important!</H1>
<EM ID="mostImportant">This is important!</EM>
<LI ID="mostImportant">This is important!</LI>

Previous | Home | Next
2.2. Grouping | Book Index | 2.4. Pseudo-Classes and Pseudo-Elements


Pseudo-Classes and Pseudo-Elements (Cascading Style Sheets: The Definitive Guide)

2.4. Pseudo-Classes and Pseudo-Elements

Even more interesting, at least in terms of syntax, are the pseudo-class and pseudo-element selectors. These allow the author to assign styles to structures that don't necessarily exist in the document, or to things that are inferred by the state of certain elements, or even the state of the document itself. In other words, the styles are applied to pieces of a document based on something other than the structure of the document, and in a way that cannot be precisely deduced simply by studying the document's markup.

This may sound like we're applying styles at random. Not at all! Instead, the styles are applied based on somewhat ephemeral conditions that can't be predicted in advance. Nonetheless, the circumstances under which the styles will appear are well-defined. This is sort of like saying, "During a sporting event, whenever the home team scores, the crowd will cheer." You don't know exactly when during a game this will happen, but when the right conditions occur, the crowd will do just as predicted. The fact that you can't predict the exact second (or inning, or quarter) in which this will happen doesn't make the behavior any less expected whenever the home team does score.

2.4.1. Pseudo-Class Selectors

First we'll look at pseudo-class selectors, since they're better supported by browsers and therefore more widely used. Let's use an example to see how they work; this will take a minute before I reach the actual point, so bear with me.

Consider the anchor, which is used to set up a link from one document to another. Anchors are always anchors, of course, but some anchors refer to pages that have already been visited, while others refer to pages that haven't been visited yet. You can't tell which are which by simply looking at the HTML markup, because in the markup, all anchors look the same. Only by comparing the links in a document to the user's browser history is it possible to tell which links have been visited and which have not. So, in a certain sense, there are two basic types of anchors: visited and unvisited. In fact, these types are known as pseudo-classes, and the selectors that use them are called pseudo-class selectors. These cause, in a certain sense, ghostly classes to be applied to elements.

To see what I mean, let's consider for a moment how browsers behave with regard to links. The Mosaic convention was that links to pages you hadn't visited were blue, and links to already visited pages were red (this was modified to purple in succeeding browsers such as Internet Explorer). If you could only insert classes into anchors, such that any anchor you had visited would have a class of, say, "visited," then you could write a style to make such anchors red:

A.visited {color: red;}

<A HREF="http://www.w3.org/" CLASS="visited">W3C Web site</A>

Such an approach, however, would require that the classes on anchors change every time you visited a new page, which is a little silly. Instead, CSS defines pseudo-classes that make the anchors to visited pages act as though they have classes of "visited." Thus:

A:visited {color: red;}

There you have it -- any anchor that points to a visited page will now be red, and you don't even have to add CLASS attributes to any of the anchors. Note the colon (:) in the rule. The colon separating the A and the visited is the calling card of a pseudo-class or pseudo-element. All pseudo-class and pseudo-element keywords are preceded by a colon.

Here's another example:

A:visited {color: silver;}

<A HREF="http://www.w3.org/">W3C Web site</A><BR>
<A HREF="http://www.nowhere.net/">Nowhere in particular</A>

As you can guess from Figure 2-13, the first anchor points to an already visited page, and so it's silver, whereas the second anchor is still blue, since the browser hasn't loaded that page before.

Figure 2-13. Pseudo-classes in action

In CSS1, there are only three pseudo-classes. We've already seen :visited , and in addition, there are :link and :active. Each refers to a different kind of anchor, as shown in Table 2-1.

Table 2-1. Psuedo-classes

Name

Description

:link

Refers to any anchor that is a hyperlink (i.e., has an HREF attribute) and that points to an address that has not been visited. Note that some browsers may interpret :link to refer to any hyperlink, visited or unvisited.

:visited

Refers to any anchor that is a hyperlink to an already visited page.

:active

Refers to any anchor that is in the process of being activated (e.g., clicked). In CSS1, this applies only to hyperlinks, whereas in CSS2, :active can theoretically apply to any element.

The first of the pseudo-classes in Table 2-1 may seem a little bit redundant. After all, if an anchor hasn't been visited, then it must be unvisited, right? Therefore, all we should need is the following:

A {color: blue;}
A:visited {color: red;}

That seems reasonable, but actually it's not quite enough. The first of the rules shown here will apply not only to unvisited links, but also target anchors such as this one:

<A NAME="section4">4. The Lives of Salmon</A>

The text shown would be blue, because the A element will match the first rule shown before. Therefore, in order to avoid applying your link styles to target anchors, use the :link pseudo-class:

A:link {color: blue;}    /* unvisited links are blue */
A:visited {color: red;}   /* visited links are red */
A:active {color: yellow;}  /* anchors turn yellow while clicked */

As you may have already realized, the :link , :visited , and :active selectors are functionally equivalent to the BODY attributes LINK , VLINK , and ALINK . In the case of the CSS pseudo-classes, of course, you can apply more than just colors.

Assume that an author wishes to create a page in which all anchors are purple if the linked pages haven't been visited, red if they have been, and yellow as the user clicks them. In HTML, this could be done as follows:

<BODY LINK="purple" VLINK="red" ALINK="yellow">

In CSS, this would be accomplished as:

A:link {color: purple;}
A:visited {color: red;}
A:active {color: yellow;}

This is a good place to bring class selectors back in and show how they can be combined with pseudo-classes. For example, let's say you wish to change the color of any link that points outside your own site. If you assign a class to each of these anchors, it's easy. For example:

<A HREF="http://www.mysite.net/">My home page</A>
<A HREF="http://www.site.net/" CLASS="external">Another home page</A>

In order to apply different styles to the external link, all you need is a rule like this:

A.external:link, A.external:visited {color: maroon;}

This will have the effect of setting the second anchor in the preceding markup to be maroon, while the first will be the default color for hyperlinks (usually blue).

2.4.1.1. Real-world issues

There are some interesting issues with the anchor pseudo-classes. For example, it would be possible to set visited and unvisited links to one font size, and active links to have a larger size:

A:link, A:visited {font-size: 12pt;}
A:active {font-size: 18pt;}

As you can see in Figure 2-14, the user agent has increased the size of the anchor as it's being clicked. A user agent that supports this behavior is forced to redraw the document as an anchor is being clicked. However, the CSS specifications specifically state the user agents are not required to do redraw a document once it's been drawn for initial display, so you can't absolutely rely on this happening. Whatever you do, avoid designs that depend on such behavior!

Figure 2-14. Resizing elements based on their state

WARNING

The :active pseudo-class isn't supported in Navigator 4.x or Opera 3.x, although it is supported in Explorer 4.x and 5.x.

2.4.2. Pseudo-Element Selectors

In a fashion similar to the way that pseudo-classes cause ghostly classes to be assigned to anchors, pseudo-elements trigger the insertion of fictional elements into a document in order to achieve certain effects.

In CSS1, there are two pseudo-elements, called :first-letter and :first-line. These are used to apply styles to the first letter or first line, respectively, of a block-level element such as a paragraph. For example:

P:first-letter {color: red;}

This will cause the first letter of every paragraph to be colored red, which is pretty straightforward. Another possibility is to make the first letter of each H2 twice as big as the rest of the heading, with the result seen in Figure 2-15:

H2:first-letter {font-size: 200%;}

Figure 2-15. The :first-letter pseudo-element in action

In a like way, :first-line can be used to affect the first line of text in an element. For example, we could make the first line of each paragraph in a document gray:

P:first-line {color: gray;}

In Figure 2-16, we see the style is applied to the first displayed line of text in each paragraph. This is true no matter how wide or narrow the display region may be. If the first line contains only the first five words of the paragraph, then only those five words will be gray. If the first line contains the first 30 words, then all 30 will be gray.

Figure 2-16. The :first-line pseudo-element in action

The reason :first-line and :first-letter are referred to as pseudo-element selectors is that they cause, in effect, a temporary element to appear within the document structure. This is most easily visualized with an example employing "fictional tags," as the CSS1 specification calls them.

Assume the following markup:

P:first-line {color: gray;}

<P>This is a paragraph of text which has only one style applied to it. That
style causes the first line to be gray. No other text in the paragraph is
affected by this rule (at least, it shouldn't be).</P>

Assume further that a user agent displays the text like this:

This is a paragraph of text which has only
one style applied to it. That style causes
the first line to be gray. No other ...

and so forth. Since the text from "This" to "only" should be gray, the user agent employs a fictional markup that looks something like this:

<P><P:first-line>This is a paragraph of text which has only</P:first-line>
one style applied to it. That style causes the first line to be gray. No other ...

This fictional tag sequence causes the effect seen in Figure 2-17.

Figure 2-17. How the pseudo-element selector :first-line works, in a theoretical sense

This <P:first-line> element does not appear in the document source. It isn't even a valid element at all. Instead, its existence is constructed on the fly by the user agent and used to apply the :first-line style(s) to the appropriate block of text. In other words, <P:first-line> is an element that isn't really an element, but is instead a pseudo-element. Remember, you don't have to add any new tags. The user agent will do it for you.

The :first-letter pseudo-element causes something similar to happen:

P:first-letter {font-weight: bold;}

<P><P:first-letter>T</P:first-letter>his is a paragraph of text which has
another style sheet applied to it. This time it uses a first-letter effect.

2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors

There are limits to the CSS properties that may be applied to :first-line and :first-letter. These are given in Table 2-2.

Table 2-2. Properties Permitted on Psuedo-elements

:first-letter | :first-line
all font properties all color and background properties text-decoration vertical-align (if float is set to none) text-transform line-height all margin properties all padding properties all border properties float clear | all font properties all color and background properties word-spacing letter-spacing text-decoration vertical-align text-transform line-height clear

Under CSS1, pseudo-classes and pseudo-elements cannot be combined within a single selector. As we will see, this changes to some degree in CSS2. It is possible to combine pseudo-class and -element selectors with class and ID selectors, although the syntax for doing so is fairly rigid. The pseudo-class or pseudo-element is always the very last thing in the selector, coming after the element, class, and/or ID portions of the selector :

A.external:link {color: gray;}
A#link721:visited {color: purple;}
Previous | Home | Next
2.3. Class and ID Selectors | Book Index | 2.5. Structure


Structure (Cascading Style Sheets: The Definitive Guide)

2.5. Structure

As I've mentioned before, CSS is powerful because of the way in which it uses the structure of HTML documents to determine which styles should be applied in what ways. That's really only a part of the story, though, since it implies that the only way CSS uses document structure is to determine which rules apply to which elements.

The truth is that structure plays a much bigger role in the way styles are applied to a document. In order to understand this role, we need to understand how documents are structured. Take the "tree" view in Figure 2-18 of the simple HTML document listed here:

<HTML>
<HEAD>
<BASE HREF="http://www.meerkat.web/">
<TITLE>Meerkat Central</TITLE>
</HEAD>
<BODY>
<H1>Meerkat <EM>Central</EM></H1>
<P>
Welcome to Meerkat <EM>Central</EM>, the <STRONG>best meerkat web site
on <A HREF="inet.html">the <EM>entire</EM> Internet</A></STRONG>!</P>
<UL>
<LI>We offer:
<UL>
<LI><STRONG>Detailed information</STRONG> on how to adopt a meerkat</LI>
<LI>Tips for living with a meerkat</LI>
<LI><EM>Fun</EM> things to do with a meerkat, including:
<UL>
<LI>Playing fetch</LI>
<LI>Digging for food</LI>
<LI>Hide and seek</LI>
</UL>
</LI>
</UL>
<LI>...and so much more!</LI>
</UL>
<P>
Questions? <A HREF="mail to:suricate@meerkat.web">Contact us!</A>
</P>
</BODY>
</HTML>

Much of the power of CSS is based on the parent-child relationship of elements. HTML documents, and indeed most structured documents of any kind, are based on a hierarchy of elements, which is visible in the "tree" view of the document in Figure 2-18. In this hierarchy, each element fits somewhere into the overall structure of the document, and every element is either the parent or child of another element, and often both.

Figure 2-18. The "tree view" of a simple HTML document

An element is said to be the parent of another element if it encloses the other element. For example, in Figure 2-18, the P element is parent to an EM and a STRONG element, while the STRONG is parent to an anchor element which is itself parent to another EM element. Conversely, an element is the child of another element if it is enclosed by the other element. Thus, the anchor element in Figure 2-18 is a child of the STRONG element, which is in turn child to the paragraph, and so on.

The terms parent and child are often generalized to the terms ancestor and descendant. There is a difference: in the tree view, if an element is exactly one level above another, then they have a parent-child relationship. (Of course, the child is also a descendant, and the parent is an ancestor.) If, however, the path from one element to another moves through two or more levels, then the elements have an ancestor-descendant relationship. In Figure 2-18, the first UL element is parent to two LI elements and a UL, but the first UL is also the ancestor of every element within its child UL, all the way down to the most deeply nested LI elements.

If we continue to examine Figure 2-18, we see that, for example, the anchor is a child of STRONG, but also a descendant of the paragraph element as well as of the BODY and HTML elements. The BODY element is an ancestor of everything the browser will display, of course, and the HTML element is ancestor to the entire document. For this reason, the HTML element is also sometimes called the root element.

2.5.1. Contextual Selectors

The first benefit we derive from this model is the ability to define contextual selectors. This is simply the act of creating rules that operate in certain structural circumstances but not others. As an example, let's say you want to set EM text to be gray, but only if it's found within an H1 element. You could put a CLASS attribute in every EM element within an H1, but that's almost as bad as using the FONT tag. It would obviously be far better to declare rules that only match EM elements which are found inside H1 elements.

To do so, you would write the following:

H1 EM {color: gray;}

This rule will make gray any text in an EM element which is the descendant of an H1 element. Other EM text, such as that found in a paragraph or a block quote, will not be selected by this rule, as Figure 2-19 makes clear.

Figure 2-19. Selecting an element based on its context

In a contextual selector, the selector side of a rule is composed of two or more space-separated selectors. Each space can be translated as "found within," "which is part of," or "that is a descendant of," but only if you read the selector backwards. Thus, H1 EM can be translated as, "Any EM element that is a descendant of an H1 element." (If you insist on reading the selector forwards, then you might phrase it something like, "Any H1 that contains an EM will have the following applied to the EM.")

You aren't limited to two selectors, of course. For example:

UL OL UL EM {color: gray;}

In this case, as Figure 2-20 shows, any emphasized text that is part of an unordered list that is part of an ordered list that is part of an unordered list will be gray. This is obviously a very specific selection criterion.

Figure 2-20. A very specific contextual selector

Contextual selectors can be very, very powerful. They make possible what could never be done in HTML -- at least not without oodles of FONT tags. Let's consider a common example. Assume you have a document that has a sidebar and a main area. The sidebar has a blue background, and the main area has a white background. You have a list of links in the sidebar, but you also have links which appear in the main text. You can't set all links to be blue, because they'd be impossible to read in the sidebar (blue text on a blue background).

The solution? Contextual selectors. In this case, you set the table cell that contains your sidebar to have a class of sidebar, and the main area to have a class of main-page. Then you write styles something like this:

TD.sidebar {background: blue;}
TD.main-page {background: white;}
TD.sidebar A:link {color: white;}
TD.main-page A:link {color: blue;}

Figure 2-21 shows the result: white hyperlinks on a blue background in the sidebar, with blue links on a white background in the main area of the page.

Figure 2-21. Using contextual selectors to apply different styles to the same type of element

Here's another example: let's say that we want gray to be used as the text color of any B (boldface) element that is part of a BLOCKQUOTE, and also for any bold text that is found in a normal paragraph:

BLOCKQUOTE B, P B {color: gray;}

The result, shown in Figure 2-22, is that while the boldface text in paragraphs and block quotes is gray, boldface text in lists is not colored gray.

Figure 2-22. Context and Style

TIP

Thankfully, contextual selectors are one of the things that almost everyone got right the first time they tried -- although there are some minor random quirks to be found in Navigator 4.x that defy analysis. In general, though, like grouping, contextual selectors are as safe and stable an operation as you're going to find.

Previous | Home | Next
2.4. Pseudo-Classes and Pseudo-Elements | Book Index | 2.6. Inheritance


Inheritance (Cascading Style Sheets: The Definitive Guide)

2.6. Inheritance

Viewing a document as a tree is very important for one other reason: a key feature of CSS is inheritance, which relies on the ancestor-descendant relationship to operate. Inheritance is simply the mechanism by which styles are applied not only to a specified element, but also to its descendants. If a color is applied to an H1 element, for example, then that color is applied to all text in the H1, even the text enclosed within child elements of that H1:

H1 {color: gray;}

<H1>Meerkat <EM>Central</EM></H1>

As shown in Figure 2-23, both the ordinary H1 text and the EM text are colored gray because the value of color inherits into the EM element. This is very likely what the author intended, which is why inheritance is a part of CSS.

Figure 2-23. Inheritance of styles

The alternative would be a hypothetical situation where inheritance does not operate; in that case, the EM text would be black, not gray.

Another good example of how inheritance works is with unordered lists. Let's say we apply a style of color: gray for UL elements. What we expect is that a style that is applied to a UL will be applied to its list items as well, and to any content of those list items. Thanks to inheritance, that's exactly what does happen, as Figure 2-24 demonstrates:

UL {color: gray;}

Figure 2-24. Inheritance of styles

Inheritance is one of those things about CSS that are so basic that you almost never think about them unless you have to -- rather like the way we tend to take the convenience of the highway system for granted until part of it is closed or otherwise rendered difficult to use. However, there are a few things to keep in mind about inheritance.

2.6.1. Limitations of Inheritance

As with any great thing, there are a few blemishes if you look closely enough. First off, some properties are not inherited. This may be for any number of reasons, but they generally have to do with simple common sense. For example, the property border (which is used to set borders on elements, oddly enough) does not inherit. A quick glance at Figure 2-25 will reveal why this is the case. Were borders inherited, documents would become much more "cluttered" unless the author took the extra effort to turn off the inherited borders.

Figure 2-25. Why borders aren't inherited

As it happens, most of the box-model properties, including margins, padding, backgrounds, and borders, are not inherited for this very reason.

Inherit the Bugs

Inheritance can be a tricky thing, unfortunately. Thanks to problems in various browser implementations, an author cannot always rely on inheritance to operate as expected in all circumstances. For example, Navigator 4 (and, to a lesser extent, Explorer 4) does not inherit styles into tables. Thus the following rule would result in a document with purple text everywhere outside of tables:

BODY {color: purple;}

Even that isn't quite true, as some versions of Navigator 4 will forget about styles altogether once a table has been displayed; thus, any text after a table, as well as the text within it, would not be purple. This is not technically correct behavior, but it does exist, so authors often resort to tricks such as:

BODY, TABLE, TH, TD {color: purple;}

This is more likely, although still not certain, to achieve the desired effect. Despite this potential problem, the rest of this text will treat inheritance as though it operated perfectly in all cases, since an exhaustive documentation of the ways and reasons it might fail could be a book in itself.

Previous | Home | Next
2.5. Structure | Book Index | 2.7. Specificity


Specificity (Cascading Style Sheets: The Definitive Guide)

2.7. Specificity

Given the existence of inheritance, one might well wonder what happens in a circumstance such as this:

.grape {color: purple;}
H1 {color: red;}

<H1 CLASS="grape">Meerkat <EM>Central</EM></H1>

Since the selectors H1 and .grape can both match the H1 element shown, which one wins? As it happens, .grape is the correct answer, and so the H1 element will be colored purple. This happens because of the specificity of the two rules, and the rules CSS has to deal with such situations.

Specificity describes the relative weights of various rules. According to the specification, a simple selector (e.g., H1) has a specificity of 1, class selectors have a specificity of 10, and ID selectors a specificity of 100. Thus the following rules would have the noted specificity:

H1 {color: red;}                    /* specificity = 1 */
P EM {color: purple;}               /* specificity = 2 */
.grape {color: purple;}             /* specificity = 10 */
P.bright {color: yellow;}           /* specificity = 11 */
P.bright EM.dark {color: brown;}    /* specificity = 22 */
#id216 {color: blue;}               /* specificity = 100 */

Thus, the rule for #id216 has a much higher specificity, and therefore more weight, than any of the others listed. In cases where more than one rule can apply to an element, the styles with the higher weight win out.

2.7.1. Inheritance and Specificity

Within the framework of specificity, inherited values have, effectively, a specificity of 0. This means that any explicitly declared rule will override an inherited style. Therefore, no matter how much weight a rule might have, it is only inherited if no other rule can be applied to the inheriting element.

For example, consider the following:

BODY {background: black;}
LI {color: gray;}
UL.vital {color: white;}

You would likely expect that all list items would be gray except for those which are found in lists with a class of vital, in which case they'll be white. However, as Figure 2-26 demonstrates, this is not the case.

Figure 2-26. Apparently incorrect behavior

Why does this happen? Because the explicit declaration with the selector LI wins out over the value which might have been inherited from the UL.vital rule.

Let's look at this process in a little more detail. Given the following markup, the emphasized text will be gray, not black, since the rule for EM outweighs the value inherited from the H1:

H1#id3 {color: black;}   /* specificity = 101 */
EM {color: gray;}        /* specificity = 1 */

<H1 ID="id3">Meerkat <EM>Central</EM></H1>

This is because the specificity of the second rule (1) is higher than the specificity of the inherited value (0). The fact that the original specificity of the H1#id3 rule is 101 has no effect on the inherited value, whose weight is still 0.

If the intention is to have H1s be consistently black, while EM text in all other circumstances should be red, then the following would be a good solution:

H1, H1 EM {color: black;}   /* specificity = 1, 2 */
EM {color: red;}            /* specificity = 1 */

Given these rules, EM text in any circumstance except within an H1 will be red. However, EM text inside H1 elements will be black, because the specificity of their selector (2) is greater than that of the second rule (1). Note that since, due to selector grouping, there are effectively two rules in the first statement (one for H1 and one for H1 EM ), there are also two specificities -- one for each rule.

Elements with a STYLE attribute are defined under CSS1 to have a specificity of 100, just as though they were ID selectors such as #id3. In practice, however, this specificity value is somewhat higher, since the value of a STYLE element seems to outweigh most normal rules, even those which technically have a higher specificity (such as H1#id3 EM ). In other words, the following markup will generally have the result shown in Figure 2-27:

H1#id3 EM {color: gray;}

<H1 ID="id3">Meerkat <EM STYLE="color: black;">Central</EM>!</H1>

Figure 2-27. Inline styles have high specificity

You might choose to treat STYLE value as having a specificity value of, say, 1,000, although this interpretation is not supported by the CSS specification and so cannot be relied upon. Finally, pseudo-elements are ignored altogether when calculating specificity, but pseudo-classes are treated like regular classes.

There is one other wrinkle in the specificity picture, which is a way to pretty much override the entire specificity mechanism.

2.7.2. Importance

Ever felt like something is so important that it outweighs all other considerations? Well, it's possible to mark certain rules as being more important than others. These are called important rules due to the way in which they are declared and also because of their very nature. An important rule is marked by inserting the phrase !important just before the terminating semicolon in a rule:

P.dark {color: #333 !important; background: white;}

Here, the color value of #333 is marked !important, whereas the background value of white is not. If you wish to mark both rules as important, then each rule will need its own !important:

P.dark {color: #333 !important; background: white !important;}

It is important to ensure that you place the !important correctly, or else the rule can be invalidated. The !important always goes at the end of the declaration, right before the semicolon. This is especially important -- no pun intended -- when it comes to properties that allow values which contain multiple keywords, such as font:

P.light {color: yellow; font: 11pt Times !important;}

If the !important were placed anywhere else in the font declaration, then that entire declaration would very likely be invalidated and none of the styles applied.

Rules that are marked !important do not have a defined specificity value, but authors can assume that they have a conveniently high value, such as 10,000 -- in other words, a value that outweighs all others. Note that while author-defined styles are treated as having a greater weight than reader-defined styles (see Section 2.8, "The Cascade", later in this chapter), the reverse is true of !important rules: important reader-defined rules take precedence over author-defined styles, even those marked !important.

Indeed, an !important rule will override the contents of an inline STYLE attribute. Thus, given the following code, the result will be gray text, not black:

H1 {color: gray !important;}

<H1 STYLE="color: black;">Hi there!</H1>

There is one last scenario to consider. Consider the following:

P#warn {color: red ! important;}
EM {color: black;}

<P ID="warn">This text is red, but <EM>emphasized text is black.</EM></P>

Remember that inherited values always have a specificity of 0. This is true even if the rule from which the value comes has an !important attached. All of its importance is lost outside the elements which match that rule.

WARNING

As of this writing, very few browsers implement !important. Internet Explorer 5 and Opera 3.6 have it right, but that's all. On the other hand, !important is expected to be supported in Navigator 6.

Previous | Home | Next
2.6. Inheritance | Book Index | 2.8. The Cascade


The Cascade (Cascading Style Sheets: The Definitive Guide)

2.8. The Cascade

Through all this, we've skirted one rather important issue: what happens when there are two rules of equal specificity that apply to the same element? How does the browser resolve the conflict?

For example, let's say we have the following rules:

H1 {color: red;}
H1 {color: blue;}

So which one wins? Both have a specificity of 1, so they have equal weight and should both apply. That simply can't be the case, though, because the element can't be both red and blue. It has to be one or the other. But which?

This is where the name "Cascading Style Sheets" finally makes some sense. CSS is based on a method of causing styles to cascade together -- a method that is made possible by the rules of inheritance and specificity, as it happens. The cascade rules are simple enough:

  1. Find all declarations that contain a selector that matches a given element.

  2. Sort by explicit weight all declarations applying to given element. Those rules marked !important are given higher weight than those that are not. Also sort by origin all declarations applying to a given element. There are three origins: author, reader, and user agent. Under normal circumstances, the author's styles win out over the reader's styles. !important author styles win out over important reader styles in CSS1, but in CSS2, !important reader styles are stronger than any other styles. Either author or reader styles will override user agent styles.

  3. Sort by specificity all declarations applying to a given element. Those elements with a higher specificity have more weight than those with lower specificity.

  4. Sort by order all declarations applying to a given element. The later a declaration appears in the style sheet or document, the more weight it is given. Declarations that appear in an imported style sheet are considered to come before all declarations within the style sheet that imports them, and declarations within STYLE attributes come later than those in the document's embedded style sheet.

In order to be perfectly clear about how this all works, let's consider an example that illustrates each of the four cascade steps. The first one is simple enough: find all rules whose selectors match a given element.

Under the second step, if two rules apply to an element, and one is marked !important, then the important rule wins out. Thus:

P {color: gray !important;}

<P STYLE="color: black;">Well, <EM>hello</EM> there!</P>

Despite the fact that there is a color assigned in the STYLE attribute of the paragraph, the !important rule wins out, and the paragraph is gray, as shown in Figure 2-28. This gray is inherited by the EM element as well.

Figure 2-28. Sorting styles by their importance

Furthermore, the origin of a rule is considered. If an element is matched by styles in both the author's style sheet and the reader's style sheet, then the author's styles are used. For example, assume that the following styles come from the indicated origins:

P EM {color: black;}    /* author's style sheet */

P EM {color: yellow;}   /* reader's style sheet */

In this case, we have the result shown in Figure 2-29, where the emphasized text is black.

Figure 2-29. Sorting styles by origin

As it happens, the browser's default styles -- which are often influenced by its preferences -- are figured into this step. The browser's default styles are the least influential of all. Therefore, if an author-defined rule applies to anchors (e.g., declaring them to be white), then this rule overrides the user agent's defaults. If readers wish to enforce certain rules at all costs, then they must define them in a local style sheet and declare them to be !important, so that they will win out under step 1 of the cascade rules. In this case, though, it will be a case of the reader's styles overriding both the author's and browser's styles due to their importance.

According to the third step, if multiple rules apply to an element, then they should be sorted by specificity, with the most specific rule winning out. For example:

P#bright {color: silver;}
P EM {color: gray;}
P {color: black;}

<P ID="bright">Well, <EM>hello</EM> there!</P>

Figure 2-30. Sorting styles by specificity

As we can see from Figure 2-30, the text of the paragraph is silver, except for the EM text, which is gray. Why? Because the specificity of P#bright (101) overrode the specificity of P (1), even though the latter rule comes later in the style sheet. However, the EM text does not inherit the value silver, because it has an explicit rule associated with it, and the rule's specificity (2) overrides the inherited value of silver.

This is not a trivial point. For example, assume that a style sheet has been written such that all text in a toolbar is to be white on black:

#toolbar {color: white; background: black;}

This will work so long as the element with an ID of toolbar contains only plain text. If, however, the text within this element is all hyperlinks (A elements), then the user agent's styles for hyperlinks will take over -- because despite the fact the they're imported, they are explicit style assignments, so they override any inherited values. Usually, this means that they'll be colored blue, since the browser's style sheet probably contains an entry like this:

A:link {color: blue;}

In order to overcome this problem, the author would need to declare:

#toolbar A:link {color: white; background: black;}

By targeting the rule directly to the A elements within the toolbar, the author will get the result shown in Figure 2-31.

Figure 2-31. Using contextual selectors to overcome specificity

Lastly, under the fourth step, if two rules have exactly the same weight, origin, and specificity, then the one that occurs later in the style sheet wins out. Thus, let us return to our earlier example, where we find the following two rules in the document's style sheet:

H1 {color: red;}
H1 {color: blue;}

The value of color for all H1 elements in the document will be blue, not red.

Any rule that is contained in the document, having a higher weight than the imported rule, wins out. This is true even if the rule is part of the document's style sheet and not part of an element's STYLE attribute. Consider the following:

P EM {color: purple;}  /* from imported style sheet */

P EM {color: gray;}    /* rule contained within the document */

In this case, the second rule shown, since it is a part of the document's style sheet, will win out over the imported rule.

For the purposes of this rule, styles that are given in the STYLE attribute of an element are considered to be at the end of the document's style sheet, which places them after all other rules. In addition, a STYLE attribute has a weight equivalent to that of an ID selector. Thus, the following code would result in black text, as shown in Figure 2-32:

#hello {color: red;}

<P ID="hello" STYLE="color: black;">Hello there!</P>

Figure 2-32. Sorting styles by their position

Here, the weight of the inline style (100) is equal to the weight of the rule #hello (100), so the winner is the rule that occurs later in the document.

Previous | Home | Next
2.7. Specificity | Book Index | 2.9. Classification of Elements


Classification of Elements (Cascading Style Sheets: The Definitive Guide)

2.9. Classification of Elements

As we have already discussed, elements in a document occur in a sort of hierarchy. At the most basic level, block-level elements contain other block-level elements, inline elements, and replaced elements. A part of this hierarchy scheme depends on the relationships between these types of elements; for example, while inline elements can be children of block-level elements, the reverse is not true.

In CSS, elements are grouped into three types:

Block-level elements

Elements such as paragraphs, headings, lists, tables, DIVs, and BODY. Replaced elements, such as images and form inputs, can be block-level elements but usually are not. Each block-level element is displayed on a line by itself, so to speak, beginning on a new line and forcing any element after it to do the same. Block-level elements can only be children of other block-level elements, and then only in certain circumstances.

Inline elements

Elements such as A, EM , SPAN, and most replaced elements, such as images and form inputs. They do not force anything to start on a new line, not even themselves, and can be the children of any other element.

List-item elements

Elements that in HTML pretty much include only the LI element. These are specially defined to have presentation aspects such as a "marker" (a bullet, letter, or number) and a certain sense of ordering, if such an element appears within an ordered list of some kind. Thus, list items within such a list can be automatically numbered, based on their context within the document.

These terms are, as it happens, the basic three of the four values for the property display.

Display

Values

block | inline | list-item | none

Initial value

block

Inherited

no

Applies to

all elements

Unlike almost every other property in CSS, display is often evaluated to a value other than its default. Instead, the value of display for a given element is defined in the document type definition[1] (DTD) for the language being used. Thus, in HTML, the H1 and P elements are defined to be block-level elements by the document type definition for HTML. A and EM, on the other hand, are inline elements, and of course LI is a list item. Thus, the default display values for these elements would be:

[1]A document type definition is a formal description of a markup language such as HTML. The DTD provides a rigorous way of defining what elements mean and how they fit into the language's hierarchy. It's similar to describing English as a collection of nouns, verbs, adverbs, and so on, but with the added bonus of describing what each of the parts means and how they relate to each other. DTDs are not easily readable by the untrained eye.

H1, P {display: block;}
A, EM {display: inline;}
LI {display: list-item;}

Replaced elements may be one or the other, depending on their context and how they are placed within the document flow. A floated image is considered to be block-level, for example, but images are usually inline.

In theory, display makes it possible to completely upset the structural definitions of a markup language. In traditional HTML, paragraphs always have blank space between them, and two paragraphs cannot appear "on the same line," so to speak. This can be changed with the following rule:

P {display: inline;}

With this simple declaration, a P element becomes no different than a SPAN element, for example. If this rule were applied to a document with several paragraphs, they would all suddenly run together in a single, rambling mass of text. Figure 2-33 shows the result.

Figure 2-33. Inline paragraphs

Note that the styles applied to each paragraph, such as font and color, still hold sway, even over inline paragraphs. Only those properties that can only apply to block-level elements will cease to work with an inline paragraph.

The reverse of this is to change a normally inline element to a block-level element. Let's say you wish to make sure all images in a document appear on their own lines. All you need is the following rule, which has the effect shown in Figure 2-34:

IMG {display: block;}

Figure 2-34. Block-level images

On the other hand, you might want to simply turn off all of the images in a document, so that they aren't displayed at all:

IMG {display: none;}

If you set the display of an element to none, the element's existence is completely ignored by the user agent, as we can see in Figure 2-35.

Figure 2-35. Suppression of images using display: none

Not only is it not displayed, but the space it would have otherwise occupied is closed up. The document will be displayed as though the suppressed element had never existed in the first place, even though it's still in the source document:

<P>This is the first paragraph in the document.</P>
<P STYLE="display: none;">This will not be displayed,
nor will it affect the layout of the document.</P>
<P>This is another paragraph in the document.</P>

This can be useful for creating little warnings which only non-CSS browsers will display:

<P STYLE="display: none;">This page was designed with CSS, and
looks best in a CSS-aware browser--which, unfortunately, yours is not.
However, the document should still be perfectly readable, since that's
one of the advantages of using CSS.</P>

The only way this warning will be seen is on a browser that doesn't understand display: none -- in other words, a browser that doesn't understand CSS at all, since every CSS-aware browser known supports display: none.

There is one other value for display, and that's list-item. This value is used to declare that an element is, well, a list item. This should, in theory, make the element behave as though it is part of a list. List items already have this display type by default, of course.

TIP

Of course, none is one value of display that most browsers get correct right off the bat, while ignoring nearly everything else. (After all, the vendors don't want you claiming to the world that they don't have CSS-capable browsers, now do they?) none is the only value of display that you can reliably assume will work in any CSS-capable browser. Internet Explorer 5.x for Windows was the first browser to really support values of display other than none, but even it isn't perfect: it doesn't seem to handle list-item correctly.

2.9.1. Why Does the display Property Exist?

The display property can be used to completely upset the structure of HTML documents, as you may have realized. Try to imagine the havoc caused by a style sheet like this one:

H1, H3, P, DIV {display: inline;}
IMG, B, STRONG, EM, A {display: block;}
A:link {display: none;}
H2, I, TABLE {display: list-item;}

Depicting this is not even possible with current browsers, nor should we wish to try.

So why have this property at all? First of all, the display: none trick can be very useful. Assume for a moment that you have a browser that supports alternate style sheets. You could define a style sheet called "No Images" in which you set the following style:

IMG {display: none;}

This rule will turn off the display of all images within the document, as we saw earlier.

More to the point, however, is that display becomes very useful when CSS is linked to an XML document. XML contains next to no information regarding the display of its elements, mostly because XML has no predefined element types. Therefore, once you have finished writing an XML document, you can work up a CSS style sheet that describes which elements are block-level, which are inline, and so forth. Without such a style sheet, a browser would have no idea which XML elements were to be displayed as list items, which were block-level, and so forth.

It's worth noting that CSS1 has no way to describe parts of tables, such as cells or rows, so the formatting of tables can't really be described using CSS1. Table-related display values were first introduced in CSS2, and a brief look at these values can be found in Chapter 10, "CSS2: A Look Ahead".

Previous | Home | Next
2.8. The Cascade | Book Index | 2.10. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

2.10. Summary

By using selectors based on the document's language, authors can create CSS rules that apply to a large number of similar elements just as easily as they can construct rules that apply in very narrow circumstances. The ability to group together both selectors and declarations keeps style sheets compact and flexible, which incidentally leads to smaller file sizes and faster download times. Thanks to inheritance and the cascade, authors are able to create sets of interlocking rules which, taken together, result in sophisticated document styles. This is all thanks to the fact that CSS is very deeply bound to the structure of documents, and that it uses this structure to determine how rules are applied, which rules should apply, and what elements should assume styles from their ancestors.

Selectors are the one thing that user agents almost have to get right, because the inability to correctly interpret selectors pretty much prevents a user agent from using CSS. However, the cascade and inheritance are different stories, and there have been some flaws in how they're implemented. Navigator 4.x, for example, has a rough time with inheritance into tables, as well as other structures such as lists. You can clear up many of these problems by using very strictly correct HTML, but not all of them.

There are many CSS rules describing lengths, colors, or other things that can be expressed using specific units and values -- and this is the subject (and title) of the next chapter.

Previous | Home | Next
2.9. Classification of Elements | Book Index | 3. Units and Values


Units and Values (Cascading Style Sheets: The Definitive Guide)

Chapter 3. Units and Values

Contents:

Colors
Length Units
Percentage Values
URLs
CSS2 Units
Summary

In this chapter, we study the basis for almost everything that can be done in CSS: the units that affect the color used or the distance set for a whole host of properties. Without units, it wouldn't be possible to declare that a paragraph should be purple, or that an image should have ten pixels of blank space around it, or that a heading should be a certain size. By understanding the concepts put forth here, you'll be able to learn and use the rest of CSS much more quickly.

However, that's the good news. The bad news is that this chapter will contain a good many caveats, warnings, and discussions of browser bugs and inconsistencies between operating systems. Remember, though, that CSS is not supposed to be a totally precise layout language -- and besides, many of the issues discussed in the chapter are not the fault of CSS but are more fundamental issues that you'll encounter no matter what you try to do with a computer. So, once you've finished this chapter, you will have a grasp not only of how CSS units work, but perhaps also of a few basic issues that you previously were unaware of.

Above all, though, regardless of how bleak things may seem, keep going! Your perseverance will be rewarded.

3.1. Colors

Of course, the one thing that almost every beginning web author wants to know is, "How do I set colors on my web page?" Under HTML, there were two choices: use one of a small number of colors with names, like red or purple, or employ a vaguely cryptic method using hexadecimal codes. Well, both of those methods for describing colors can be found in CSS, as well as some other methods that are only moderately complex.

3.1.1. Named Colors

Assuming that you're happy with picking from a small, basic set of colors, then the easiest method is to simply use the name of the color you want. These are referred to, unsurprisingly enough, as named colors.

Contrary to what some browser companies might have you believe, you are limited in the range of named colors available. For example, setting a color to "mother-of-pearl" isn't going to work, because it isn't a defined color. (Well, not yet, at any rate.) Technically speaking, there are no defined colors, but there are 16 colors that are suggested by the specification and that all major browsers recognize:

aqua | gray | navy | silver
black | green | olive | teal
blue | lime | purple | white
fuchsia | maroon | red | yellow

If these seem like odd color names, it's because -- well, they are. In my opinion, anyway. So where do they come from? These colors were taken from the original sixteen basic Windows VGA colors, and browsers are supposed to generate colors that at least come close to matching those original 16. They may be a fairly motley collection of colors, but they're what we have.

So let's say we want all first-level headings to be maroon. The best declaration would be:

H1 {color: maroon;}

Simple, straightforward, and difficult to forget. It doesn't get much better than that. Here are a few more examples:

H1 {color: gray;}
H2 {color: silver;}
H3 {color: black;}

Of course, you've probably seen (and maybe even used) color names besides the ones listed earlier. For example, if you specify:

H1 {color: orange;}

you're likely to see all of your H1 elements colored orange, despite the fact orange isn't on the list of named colors. This is due to the fact that most web browsers recognize as many as 140 color names, including the standard sixteen. There are two problems associated with using these extra names, though. The first is that not all browsers will recognize them; Opera, for example, sticks with the standard 16 colors, at least in the Opera 3.x series. Far from being a failure on their part, this represents a remarkable commitment to standards support, even though it might confuse or annoy many web designers.

The second problem is a little more fundamental: there are no standard color values for these names. Declaring that an element should be colored orange doesn't mean that different browsers, or even the same browser running on different platforms, will produce exactly the same shade of orange. With the sixteen standard colors, there is at least some hope that they will appear as similar as possible, because the color values for these sixteen are defined. Beyond those, all bets are off. Browsers may implement similar shades for the same color name, or they may not; the differences may be imperceptible to the eye, or so obvious that they're almost jarring.

Reproducing Colors

Consistent color reproduction is, as it happens, a major issue unto itself. As we'll soon see, all colors can be specified in a consistent manner, which would seem to solve the issue of whether two different user agents will display the same color. In fact, the situation is much more complicated. In the first place, human perception is relative. The same color displayed on the same monitor may appear to change due to changes in lighting, ambient brightness, adjacent colors, and many other factors. You can experiment with this effect simply by changing the background color of your computer's desktop. The colors of your icons will appear to subtly shift as you do so.

In an attempt to address this situation, displays such as monitors usually have a default gamma value set; this is a factor that modifies colors to account for display conditions. The gamma is typically set via the operating system, although more expensive monitors may have their own gamma settings. The problem is that different systems have different gamma values. Thus, if you were to create a web page with a color background and then display it on Windows and Macintosh machines side by side under identical lighting conditions, the background color would look different on each machine. This also crops up in graphics created for the Web, in that graphics created on Windows machines tend to appear darker to Macintosh users, whereas images created on a Macintosh look lighter for Windows users.

The situation degrades even further when colors are printed, since factors as diverse as the stock and color of the paper used, and even the temperature of the printing mechanism, can affect how well colors are reproduced on paper.

In effect, this is yet another area where you must remember that total control over document appearance is simply not possible. In this case, it's due to a combination of inconsistent operating system settings and the vagaries of human perception, which is an obstacle no computer is going to overcome any time soon.

It is left to individual authors to decide what chances they wish to take with using named colors, but at least with the specified sixteen colors, there is some moderate hope of consistency.

Okay, so that was the easiest way to specify color -- scary as that may seem, it's true. The other four ways are a bit more complicated. The advantage is that with these methods, you can specify any color in the 8-bit color spectrum, not just sixteen (or however many) named colors. This is accomplished by taking advantage of the way colors are generated by computers.

3.1.2. Colors by RGB

Computers create colors by combining different levels of red, green, and blue, which is why color in computers is often referred to as RGB color. In fact, if you were to open up a computer monitor, or even a television, and you got far enough into the projection tube, you would discover that there are three "guns." (Remember, however, that actually looking for these guns will pretty much void your monitor's warranty.) These guns shoot out beams of light in varying levels of light and dark, in one of the three RGB colors, at each point on the screen. The brightnesses of each of these beams combine at each point to form all of the colors you see on your screen. Each point, by the way, is known as a pixel, which is a term to which we'll return later in the chapter.

Given the way colors are created on a monitor, it makes sense that a good way to let you set colors is to give you direct access to those color levels, thereby determining your own mixture of the beams. This method is a bit more complex, obviously, but the payoffs are worth it because you aren't limited to whichever colors have been named.

3.1.2.1. Percentage colors

There are, in fact, four ways to affect RGB color. The first way we'll examine is perhaps the easiest to grasp because it uses percentages. Here's an example:

rgb(100%,100%,100%)

This color declaration sets the level of red to its maximum, blue to maximum, and green the same. These combine to create white, which is, after all, the combination of all colors. Alternatively, in order to specify black -- the absence of color -- all three would be set to 0%. Here are a few more color declarations:

H1 {color: rgb(0%,0%,0%);}          /*black*/
H2 {color: rgb(50%,50%,50%);}       /*medium gray*/
H3 {color: rgb(25%,66%,40%);}

The general syntax of this type of color value is:

rgb(color)

where color is one of two ways to specify the color. The first way is to use percentages, and the second, which uses numbers, is discussed later in this section.

Perhaps you want your H1 elements to be colored a shade of red somewhere between the values for red and maroon. red is simply rgb(100%,0%,0%), whereas maroon is more like (50%,0%,0%). In order to get a color between those two, you might try this:

H1 {color: rgb(75%,0%,0%);}

This makes the red component of the color lighter than that of maroon, but darker than that of red. If, on the other hand, you wished to create a pale red color, then you would want to raise the other two values:

H1 {color: rgb(75%,50%,50%);}

The easiest way to visualize how these percentages correspond to color is to create a table of gray values. Besides, grayscale printing is all we can afford for this book, so that's what we'll have to do:

P.one {color: rgb(0%,0%,0%);}
P.two {color: rgb(20%,20%,20%);}
P.three {color: rgb(60%,60%,60%);}
P.four {color: rgb(80%,80%,80%);}
P.five {color: rgb(100%,100%,100%);}

Figure 3-1 shows what the various percentage values will yield.

Figure 3-1. Grayscale values

Of course, since we're dealing in shades of gray, all three RGB numbers are the same in each statement. If any one of them was different from the others, then a color would start to emerge. If, for example, rgb(50%,50%,50%) were modified to be rgb(50%,50%,60%), the result would be a medium gray with just a hint of blue.

The equivalents for the various rainbow primaries, plus a few others, are presented in Table 3-1.

Table 3-1. Numeric RGB Equivalents for Common Colors

Color | Percentage Equivalent
red | rgb(100%,0%,0%)
orange | rgb(100%,40%,0%)
yellow | rgb(100%,100%,0%)
green | rgb(0%,100%,0%)
blue | rgb(0%,0%,100%)
indigo | rgb(20%,0%,100%)
violet | rgb(80%,0%,100%)
medium gray | rgb(50%,50%,50%)
dark gray | rgb(20%,20%,20%)
tan | rgb(100%,80%,60%)
gold | rgb(100%,80%,0%)
purple | rgb(100%,0%,100%)

It is also possible, at least in theory, to use fractional values. For example, you might want a color to be exactly 25.5% red, 40% green, and 98.6% blue. Not a problem:

H2 {color: rgb(25.5%,40%,98.6%);}

Actually, there is a problem. Some user agents may not recognize decimal values, and still others could interpret them as if the decimal wasn't there, which would lead them to think the preceding value is actually rgb(255%,40%,986%). In that case, assuming the user agent behaves correctly, the out-of-range values will be "clipped" to the nearest legal value -- in this case, 100%. Thus, a user agent which ignores the decimal points should act as if the declared value is rgb(100%,40%,100%). Whether it does so is, of course, another story altogether. Also, negative values aren't allowed, so any value set to be less than 0% should be clipped to that amount. For example, the following values would be clipped as demonstrated in Figure 3-2:

P.one {color: rgb(300%,4200%,110%);}
P.two {color: rgb(0%,-40%,-5000%);}

Figure 3-2. Out-of-range values are clipped

3.1.2.2. Going by numbers

Closely related to percentages is a method of setting color using raw numbers. These numbers are on a scale from to 255, where rgb(0,0,0) represents black and rgb(255,255,255) represents white. Most of you will recognize this number range from other sources: it's the decimal equivalent of an 8-bit binary number. If you don't recognize this, then it's enough to know that computers employ binary values (on/off ) for everything, including representations of numbers and colors, and 255 is one of the numbers that just naturally fall out of that sort of setup.

Anyway, this is almost exactly the same as setting percentage values: only the scale is different, going up to 255 instead of 100%. Accordingly, the values in Table 3-2 correspond to our usual list of colors.

Table 3-2. Numeric RGB Equivalents for Common Colors

Color | Numeric RGB Equivalent
red | rgb(255,0,0)
orange | rgb(255,102,0)
yellow | rgb(255,255,0)
green | rgb(0,255,0)
blue | rgb(0,0,255)
indigo | rgb(51,0,255)
violet | rgb(204,0,255)
medium gray | rgb(128,128,128)
dark gray | rgb(51,51,51)
tan | rgb(255,204,153)
gold | rgb(255,204,0)
purple | rgb(255,0,255)

As expected, any value outside the range of -255 is clipped, just as with percentages -- although in this case, of course, the values are clipped to 0 and 255:

H1 {color: rgb(0,0,0);}                /* black */
H2 {color: rgb(127,127,127);}          /* gray */
H3 {color: rgb(255,255,255);}          /* white */
P.one {color: rgb(300,2500,101);}      /* white */
P.two {color: rgb(-10,-450,-2);}       /* black */

If you prefer percentages, you can use them, and it's actually easy to convert between percentages and straight numbers. If you know the percentages for each of the RGB levels you want, then you need only apply them to the number 255 to get the resulting values. Let's say you have a color of 25% red, 37.5% green, and 60% blue. Multiplying each of those percentages by 255, we get 63.75, 95.625, and 153. We need to round those off to rgb(64,96,153), however, because only integers (whole numbers) are permitted when using numbers. Percentages can have decimals, but these numbers can't.

Of course, if you already know the percentages, there isn't much point in converting them into straight numbers. This notation is more useful for people who use programs such as Photoshop, which produce such color values, or for those who are familiar enough with the technical details of color generation to already think in terms of 0-255 values.

Then again, such people are probably more familiar with thinking in hexadecimal notation, which is what we turn to next.

3.1.2.3. Hexadecimal colors

If you've done any web authoring in the past and have ever set a color in the course of that authoring, then this part will be a snap. You can set a color using the same hexadecimal notation so familiar to web authors:

H1 {color: #FF0000;}   /* set H1's to red */
H2 {color: #903BC0;}   /* set H2's to a dusky purple */
H3 {color: #000000;}   /* set H3's to be black */
H4 {color: #808080;}   /* set H4's to be medium gray */

If you aren't familiar with this notation, here's a quick primer. First, hexadecimal means base-16 counting, so the basic unit is groups of 16, not the groups of 10 to which we're accustomed. In hexadecimal numbering, the valid digits are 0 through 9 and A through F. Once you've reached F, the next number is 10. Thus, a child learning to count in hex would learn this basic progression:

00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F,
20, 21, 22, 23, ...

I realize that it may be a bit weird to think of letters as numbers, but that's how it works in hex. The digits A through F are actually just symbols -- they could have been anything. Someone just decided that letters would be easier to remember than invented symbols... plus nobody would have to invent new names for letters.

How this corresponds to our regular decimal (base 10) numbering is fairly straightforward. 05 is equal to 5, 0C is equal to 12, 0F is the same as 15, and 10 is equal to 16. No, really. 1F is equal to 31, 20 to 32, and so on. It goes like this:

01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F,
01, 02, 03, 04, 05, 06 ,07, 08, 09, 10, 11, 12, 13, 14, 15, 16,

10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,

20, 21, 22, 23, ...
33, 34, 35, 36, ...

Computers have been using hex notation for quite some time now, and typically programmers either are trained in its use or pick it up through experience. Either way, most programmers are comfortable with hex notation -- some of them even think in it -- and so it's part of the CSS specification. Why? Because the specification was written and edited by programmers. It makes sense that they'd put in color schemes to which they could relate.

So, by stringing together three hex pairs, you can set a color. A more generic description of this method is:

#RRGGBB

Viewed in this way, the hex-pair method is a lot like the method we previously discussed -- the one involving numbers from to 255. In fact, 255 in decimal is equivalent to FF in hexadecimal, which explains a lot about how this method works. It's really the same as the last method: it just uses a different number system. If you have to pick between the two, use whichever makes you more comfortable.

So, similar to the way you can specify a color using three numbers from to 255, you can specify one using three hex pairs. If you have a calculator that converts between decimal and hexadecimal, then making the jump should be pretty simple. If not, it might be a little more complicated. (Of course, you could just not use this method, but that would be too easy.)

Once again, we present some color equivalents in Table 3-3.

Table 3-3. Hexadecimal Equivalents for Common Colors

Color | Hexadecimal Equivalent
red | #FF0000
orange | #FF6600
yellow | #FFFF00
green | #00FF00
blue | #0000FF
indigo | #3300FF
violet | #CC00FF
medium gray | #808080
dark gray | #333333
tan | #FFCC99
gold | #FFCC00
purple | #FF00FF

Believe it or not, though, there's a way to set colors that involves even fewer keystrokes.

3.1.2.4. Short hexadecimal colors

Now, finally, the last method. Again, let's look at an example and then explain it:

H1 {color: #000;}   /* set H1s to be black */
H2 {color: #666;}   /* set H2s to be dark gray */
H3 {color: #FFF;}   /* set H3s to be white */

As you can see from the markup, there are only three digits in each color value. However, since hexadecimal numbers between 00 and FF need two digits each, and we only have three digits total, how does this method work?

The answer is that the browser takes each digit and replicates it. Therefore, #F00 would be equivalent to #FF0000 -- and it's as simple as that. Otherwise, this method is the same as the #RRGGBB method we just discussed, only shorter. #6FA would be the same as #66FFAA, and #FFF would come out #FFFFFF, which is the same as white. This approach is sometimes called shorthand hex notation.

One thing to watch out for is that with the hexadecimal methods, unlike the numeric methods, there are no defined clipping methods for the hex-pair systems. If you enter an invalid value, the browser's response could be unpredictable. A well-written browser will perform clipping so that out-of-range values are assumed to be whichever limit they exceed, but you can't necessarily count on this. As an example, Netscape Navigator 4.x will not ignore or clip an invalid color value, but will instead perform some sort of magic translation to yield a totally unexpected color.

3.1.2.5. Bringing the colors together

Table 3-4 presents an overview of the colors we've discussed. Italicized color names are those that can be legally used as values of a color declaration. Those without italics might not be recognized by browsers and therefore should be defined with either RGB or hexadecimal values ( just to be safe). In addition, there are some shortened hexadecimal values that do not appear at all. In these cases, the longer (6-digit) values cannot be shortened, because they do not replicate. For example, the value #880 expands to #888800, not #808000 (otherwise known as olive). Therefore, there is no shortened version of #808000, and the appropriate entry in the table is left blank.

Table 3-4. Color Equivalents

Color | Percentage | Numeric | Hex Pair | Short Hex
red | rgb(100%,0%,0%) | rgb(255,0,0) | #FF0000 | #F00
orange | rgb(100%,40%,0%) | rgb(255,102,0) | #FF6600 | #F60
yellow | rgb(100%,100%,0%) | rgb(255,255,0) | #FFFF00 | #FF0
green | rgb(0%,100%,0%) | rgb(0,255,0) | #00FF00 | #0F0
blue | rgb(0%,0%,100%) | rgb(0,0,255) | #0000FF | #00F
indigo | rgb(20%,0%,100%) | rgb(51,0,255) | #3300FF | #30F
violet | rgb(80%,0%,100%) | rgb(204,0,255) | #CC00FF | #C0F
aqua | rgb(0%,100%,100%) | rgb(0,255,255) | #00FFFF | #0FF
black | rgb(0%,0%,0%) | rgb(0,0,0) | #000000 | #000
fuschia | rgb(100%,0%,100%) | rgb(255,0,255) | #FF00FF | #F0F
gray | rgb(50%,50%,50%) | rgb(128,128,128) | #808080 |
lime | rgb(0%,100%,0%) | rgb(0,255,0) | #00FF00 | #0F0
maroon | rgb(50%,0%,0%) | rgb(128,0,0) | #800000 |
navy | rgb(0%,0%,50%) | rgb(0,0,128) | #000080 |
olive | rgb(50%,50%,0%) | rgb(128,128,0) | #808000 |
purple | rgb(50%,0%,50%) | rgb(128,0,128) | #800080 |
silver | rgb(75%,75%,75%) | rgb(192,192,192) | #C0C0C0 |
teal | rgb(0%,50%,50%) | rgb(0,128,128) | #008080 |
white | rgb(100%,100%,100%) | rgb(255,255,255) | #FFFFFF | #FFF
dark gray | rgb(20%,20%,20%) | rgb(51,51,51) | #333333 | #333
tan | rgb(100%,80%,60%) | rgb(255,204,153) | #FFCC99 | #FC9

3.1.2.6. Web-safe colors

You may recall the earlier discussion about how colors aren't always the same across different operating systems, user agents, and so forth. There is one way to partially beat this problem, although once again it means restricting your color choices. There is a set of 216 colors that are considered "web-safe," which means they should look the same on all computers and browsers, without any dithering or color-shifting. Note that I say "should" -- this is not a guarantee. It generally seems to work, however.

Web-safe colors are those colors that are expressed in multiples of the RGB values 20% and 51, and the corresponding hex-pair value 33. Also, 0% or 0 is a safe value. So, if you use RGB percentages, then make all three values either 0% or a number divisible by 20; for example, rgb(40%,100%,80%) or rgb(60%,0%,0%). If you use RGB values on the 0-255 scale, then values should be either 0 or divisible by 51, as in rgb(0,204,153) or rgb(255,0,102).

With hex pairs, the appropriate values are 00, 33, 66, 99, CC, and FF. Any hex-pair triplet using those values in any combination is considered to be web-safe. Examples are #669933, #00CC66, and #FF00FF. This means the shorthand hex values that are web-safe are 0, 3, 6, 9, C, and F; therefore, #693, #0C6, and #F0F are examples of web-safe colors.

Wow! Who knew there were so many ways to define a color? I'll bet you'll never look at a rainbow in quite the same way again. Now, let's move on to units that really measure up.

Previous | Home | Next
2.10. Summary | Book Index | 3.2. Length Units


Length Units (Cascading Style Sheets: The Definitive Guide)

3.2. Length Units

A lot of CSS properties, such as margins, depend on length measurements in order to properly display various page elements. It probably comes as no surprise to you, then, that there are a number of ways to measure length in CSS.

All length units can be expressed as either positive or negative numbers, followed by a label -- although some properties will only accept positive numbers. They are also real numbers; that is, numbers with decimal fractions, such as 10.5 or 4.561. All length units are followed by a two-letter abbreviation that represents the actual unit of length being specified, such as in (inches), or pt (points). The only exception to this rule is a length of 0 (zero), which need not always be followed by a unit.

These length units are divided into two types: absolute units and relative units.

3.2.1. Absolute Length Units

No vodka jokes, please. We start with absolute units because they're easiest to understand, despite the fact that they're almost unusable in web design. The five types of absolute units are as follows:

Inches ( in)

As you might expect, the inches one finds on a ruler in America. The fact that this unit is even in the specification, given that almost the entire world uses the metric system, is an interesting insight into the pervasiveness of American interests on the Internet -- but let's not get into virtual sociopolitical theory right now.

Centimeters ( cm)

The centimeters that one finds on rulers the world over. There are 2.54 cm to an inch, and one centimeter equals 0.394 inches.

Millimeters ( mm)

You guessed it. For those Americans who are metric-challenged, there are 10 millimeters to a centimeter, so you get 25.4 mm to an inch, and 1 millimeter equals 0.0394 inches.

Points ( pt)

Now it gets interesting. Points are standard typographical measures, used by printers and typesetters for decades and by word-processing programs for many years. By definition, there are 72 points to an inch, since points were defined before use of the metric system had really caught on. Therefore, the capital letters of text set to 12 points should be a sixth of an inch tall. For example, P {font-size: 18pt;} is equivalent to P {font-size: 0.25in;}.

Picas ( pc)

Another typographical term. A pica is equivalent to 12 points, which means there are 6 picas to an inch. As above, the capital letters of text set to 1 pica should be a sixth of an inch tall. For example, P {font-size: 1.5pc;} would set text to be the same size as the example declarations found in the definition of points.

These units are, of course, only really useful if the browser knows all the details of the monitor on which your page is displayed, or the printer you're using to generate hard copy, or whatever other user agent you might be using.

The sorts of things that can affect the display in a web browser, for example, are the size of the monitor and the resolution to which the monitor is set. Of course, there isn't a lot that you, as the author, can do about this. You can only hope that even if the browser can't get all that information, at least the measurements will be consistent in relation to each other; that is, a setting of 1.0in will be twice as large as 0.5in, as shown in Figure 3-3.

Figure 3-3. A margin of 1.0 inches (top) and 0.5 inches (bottom)

3.2.1.1. Working with absolute lengths

As a Windows user, you might be able to set your display driver to use real-world measures. Try clicking on the Start button, pointing to Settings, then clicking Control Panel, and from the Control Panel window double-click on Display. On the Display dialog box there should be a Settings tab. Click on this, and then click on the Advanced button to reveal a dialog box which may be different on each PC. You should see a section labeled Font Size, in which case select Other, and then hold a ruler up to the screen and move the slider until the two match. Finally click OK several times and you're set!

If you're a Macintosh user, there isn't a place to set this information, but that's all right -- the Mac OS has already made an assumption about the relationship between on-screen pixels and absolute measures, by declaring your monitor to have 72 pixels to the inch. This assumption is totally wrong, but it's built into the operating system, and therefore pretty much unavoidable, at least for now. (With any luck, future browsers will include a preference setting for defining your own pixel-per-inch value, thus circumventing any OS-imposed limitations.)

Therefore, on many Macintosh-based web browsers, such as Netscape 4.x, and Internet Explorer 3.x and 4.x, any point value will be equivalent to the same length in pixels: 24pt text will be 24 pixels tall, and 8pt text will be 8 pixels tall. This is, unfortunately, just slightly too small to be legible, despite the fact it looks pretty good on a Windows-based browser. Figure 3-4 illustrates the problem.

Figure 3-4. Macintosh displays tend to be illegible at small point sizes

This is an excellent example of why points should be avoided when designing for the web. Ems, percentages, and even pixels are all preferable to points where browser display is concerned.

Despite all we've seen, let's make the highly suspect assumption that your computer knows enough about its display system to accurately reproduce real-world measures. In that case, you could make sure every paragraph has a top margin of half an inch by declaring P {margin-top: 0.5in;}. No matter what the circumstances, then, a paragraph will have a half-inch top margin, regardless of font size or anything else.

Absolute units are much more useful in defining style sheets for printed documents, where measuring things in terms of inches, points, and picas is much more common. As we've seen, attempting to use absolute measures in web design is fraught with peril at best, so let's turn to some more useful units of measure.

3.2.2. Relative Length Units

Far from being Einsteinian in nature, relative units are so called because they are measured in relation to other things. The actual (or absolute) distance they measure can change due to factors beyond their control, such as screen resolution, the width of the viewing area, the user's preference settings, and a whole host of other things. In addition, for some relative units, their size is almost always relative to the element that uses them and will thus change from element to element.

There are three relative length units: em , ex , and px . The first two stand for "em-height" and "x-height," which are common typographical measurements; however, in CSS, they have meanings you might not expect if you are familiar with typography. The last type of length is px , which stands for "pixels." A pixel is one of the dots you can see on your computer's monitor if you look closely enough. This value is defined to be relative because it depends on the resolution of the display device, a subject that we'll discuss at length.

3.2.2.1. em and ex units

First, let us consider em and ex . In CSS, one "em" is the value of font-size for a given font, so if the font-size of an element is 14 points, then for that element, one "em" is the same as 14 points. In other words, whatever size you set the font's size to be, that's the value of one em for that element. In relation to a paragraph of 18-point text, the length of an em is 18 points.

Obviously, this value can change from element to element. For example, given an H1 whose font is 24 pixels in size, an H2 element whose font is 18 pixels in size, and a paragraph whose font is 12 pixels, we get what's shown in Figure 3-5:

H1 {font-size: 24px;}
H2 {font-size: 18px;}
P {font-size: 12px;}
H1, H2, P {margin-left: 1em;}

<H1>Left margin = 24 pixels</H1>
<H2>Left margin = 18 pixels</H1>
<P>Left margin = 12 pixels</P>

Figure 3-5. Margins change according to point size

The only exception to this rule is setting the size of the font, in which case the value of em is relative to the parent element (this is shown in Figure 3-6):

SMALL {font-size: 0.8em;}

<P>Although this text is the default size for the user agent, the
<SMALL>small-text element</SMALL> within the paragraph has a font
size which is 80% the rest of the text in the paragraph.</P>

Figure 3-6. Font size set in ems is relative to the parent element

ex , on the other hand, refers to the height of a lowercase x in the font being used. Therefore, if you have two paragraphs of text in which the text is 24 points in size, but each paragraph uses a different font, then the value of ex could be different for each paragraph. This is because different fonts have different heights for x, as we see in Figure 3-7.

Figure 3-7. Different fonts have different x-heights

Even though the examples use 24-point text, and therefore each have an em of 24 points, the ex for each is different.

3.2.2.2. Practical issues with em and ex

This is all difficult enough, but just to make things more so, this is all what's supposed to happen in theory. In practice, however, many user agents get their value for ex by taking the value of em and dividing it in half. Why? Well, apparently most fonts don't have the value of their x-height built in, and it's a difficult thing to compute. Since most fonts have lowercase letters that are about half as tall as uppercase letters, it's a convenient fiction to assume that 1ex is equivalent to 0.5em . It is hoped that, as time goes on, user agents will start using real values for ex , and the half-em shortcut will fade into the past.

3.2.2.3. Pixel lengths

Now to pixels, where the situation gets really confusing. On the face of things, pixels really should be very straightforward. After all, if you look at a monitor closely enough, you can see that it's broken up into a grid of tiny little boxes. Each box is a pixel. However, how many of those boxes equal an inch? If the monitor is set to be 1,024 pixels wide by 768 pixels tall, and the monitor's screen is exactly 14.22 inches wide by 10.67 inches tall, and the display area exactly fills the monitor, then each pixel will be 1/72 of an inch wide and tall. As you might guess, this is a very, very rare occurrence, especially since it's tough to find a monitor with exactly those dimensions. So it turns out that on most monitors, the actual number of pixels per inch (ppi) is higher than 72 -- sometimes much higher, up to 120 ppi and beyond.

To make things even more confusing, the CSS specification recommends a "reference pixel" which works out to roughly 90 ppi -- a measure very few (if any) operating systems actually use. While the specification assumes that 90px should equal 1in, nothing else really does, so that doesn't help. In general, if you declare something like font-size: 18px , then you're leaving it up to the user agent to decide how big a pixel really is. A web browser will almost certainly use actual pixels on your monitor -- after all, they're already there -- but with other display devices, like printers, the situation gets a little uncertain.

WARNING

One example of problems with pixel measurements can be found in an early CSS1 implementation. In Internet Explorer 3.x, when a document is printed, IE3 assumes that 18px is the same as 18 dots, which works out to be 18/300, or 6/100, of an inch -- or, if you prefer, .06in. That's pretty small text!

On the other hand, pixel measurements are perfect for expressing the size of images, which are already a certain number of pixels tall and wide. In fact, the only time you would want to use other units of measure to express the size of images is if you want them to scale along with the size of the text. This is an admirable and occasionally useful approach, and one which would really make sense if you were using vector-based images instead of pixel-based images. (With the adoption of Scalable Vector Graphics, this could actually become a reality.)

3.2.2.4. What to do?

Given all the issues involved, the best measures to use are probably the relative measures, most especially em , and also px when appropriate. Since ex is at present basically a fractional measure of em , it's not all that useful for the time being. If user agents are ever able to support real x-height measures, then ex might come into its own.

With that, we close out our discussion of length measurements. The rest of the chapter is pretty straightforward and not nearly so pessimistic.

Previous | Home | Next
3. Units and Values | Book Index | 3.3. Percentage Values


Percentage Values (Cascading Style Sheets: The Definitive Guide)

3.3. Percentage Values

Compared to length units, percentage units are almost laughably simple. They're pretty much exactly what you'd expect -- a positive or negative number, followed by a percent sign (%). For example:

H1 {font-size: 18pt;}
H1.tall {line-height: 150%;}

This sets the line-height of all H1 elements with a class of tall to be half again as large as normal, as we see in Figure 3-8.

Figure 3-8. Line height of 100% (top) and 150% (bottom)

Percentage values are always computed relative to another value -- usually a length unit. In this case, the line-height is exactly 27 points (18pt times 1.5). This is the same as setting the line-height to 1.5em , although neither method is particularly recommended over the other.

Percentages can, in general, be either positive or negative. However, there are properties that accept percentage values, but will not permit negative values (of any kind, including percentages). These will be mentioned as the properties are covered in subsequent chapters.

Previous | Home | Next
3.2. Length Units | Book Index | 3.4. URLs


URLs (Cascading Style Sheets: The Definitive Guide)

3.4. URLs

If you've written web pages, then you're familiar with URLs. URLs aren't often used in style sheets, but if you do need to refer to one -- as in the @import statement, which is used when importing an external style sheet -- then the general format is:

url(http://server/pathname)

This example defines an absolute URL. By absolute, we mean a URL that will work no matter what page it's found in, because it defines an absolute location in web space. Let's say that we have a server called www.waffles.org. On that server, there is a directory called pix, and in this directory is an image waffle22.gif. In this case, the absolute URL of that image would be http://www.waffles.org/pix/waffle22.gif. This URL is valid no matter where it is found, whether the page is on the server www.waffles.org or web.pancakes.com.

The other type of URL is a relative URL, so named because this type of URL specifies a location that is relative to the document that uses it. If you're referring to a relative location, such as a file in the same directory as your web page, then the general format is:

url(pathname)

This only works if the image is on the same server as the page that contains the URL. For argument's sake, we'll assume that we have a web page located at http://www.waffles.org/syrup.html and that we want the image waffle.gif to appear on this page. In that case, the relative URL could be pix/waffle22.gif.

This works because the web browser knows that it should take the same place it found the web document and add the relative URL to it. In this case, the server name http://www.waffles.org/ added to the pathname pix/waffles22.gif equals http://www.waffles.org/pix/waffle22.gif.

Here are two more examples:

@import url(http://css1.style.org/example.css);

BODY {background-image: url(hatch.gif);}

It doesn't really matter whether you use absolute or relative URLs, so long as they define valid locations. You can use whichever is easier for you and your project.

Another thing you need to watch out for is that relative URLs are relative to the style sheet, not the HTML document. For example, you may have an external style sheet that imports another style sheet. If you use a relative URL to import the second style sheet, then it has to be relative to the first style sheet. As an example, consider an HTML document at http://www.waffles.org/toppings/tips.html, which has a LINK to the style sheet http://www.waffles.org/styles/basic.css:

<LINK REL="stylesheet" TYPE="text/css"
    HREF="http://www.waffles.org/styles/basic.css">

Inside the file basic.css is an @import statement referring to another style sheet:

@import url(special/toppings.css);

This @import will load the file http://www.waffles.org/styles/special/toppings.css, not http://www.waffles.org/toppings/special/toppings.css. If you have a style sheet at the latter location, then the @import in basic.css should read:

@import url(http://www.waffles.org/toppings/special/toppings.css);

In other words, use an absolute URL.

This might be a good idea in any case. As it happens, Navigator 4 interprets relative URLs in relation to the HTML document, not the style sheet. Yes, this is wrong, but that's how Navigator 4 does things. Therefore, it's generally easiest if you make all of your URLs absolute, since Navigator does at least handle those correctly.

Note that there cannot be a space between the url and the opening parenthesis. Thus:

BODY {background: url(http://www.pix.web/picture1.jpg);}      /* correct */
BODY {background: url (images/picture2.jpg);}                 /* INCORRECT */

If the space is included, the entire rule will be invalidated, and therefore ignored.

Previous | Home | Next
3.3. Percentage Values | Book Index | 3.5. CSS2 Units


CSS2 Units (Cascading Style Sheets: The Definitive Guide)

3.5. CSS2 Units

In addition to what we've covered, CSS2 adds a small number of new units, almost all of which are concerned with aural style sheets (employed by those browsers that are capable of speech). We'll briefly cover them here:

Angle values

Used to define the position from which a given sound should seem to originate. There are three type of angles: degrees (deg ), grads (grad ), and radians (rad ). For example, a right angle could be declared as 90deg, 100grad , or 1.57rad ; in each case, the values are translated into degrees in the range through 360. This is also true of negative values, which are allowed. The measure -90deg is the same as 270deg.

Time values

Used to specify delays between speaking elements, these values can be expressed as either milliseconds (ms) or seconds (s). Thus, 100ms and 0.1s are equivalent. Time values may not be negative.

Frequency values

Used to declare a given frequency for the sounds that speaking browsers can produce. Frequency values can be expressed as hertz (Hz) or megahertz (mHz) and cannot be negative. The values labels are case-insensitive, so 10mHz and 10mhz are equivalent.

In addition to these values, there is also an old friend with a new name. A URI is a Uniform Resource Identifier, which is sort of another name for a Uniform Resource Locator (URL). The difference is, for now, mostly semantic, but many authors are beginning to adopt the convention of referring to online addresses as URIs, not URLs. The specification still requires that URIs be declared with the form url(...), though, so it's hard to know exactly what the point was of including a section in CSS2 about how CSS2 uses URIs instead of URLs.

Previous | Home | Next
3.4. URLs | Book Index | 3.6. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

3.6. Summary

Units and values cover a wide spectrum of areas, from length units to color units to the location of files (such as images). For the most part, units are the one area that user agents get almost totally correct; it's those few little bugs and quirks that get you, though. Interpreting relative URLs incorrectly, for example, has bedeviled many authors, and leads to an over-reliance on absolute URLs. Colors are another area where user agents almost always do well, except for a few little quirks here and there. The vagaries of length units, however, far from being bugs, are an interesting problem for any author to tackle.

These units all have their advantages and drawbacks, depending on the circumstance in which they're used. We've already seen some of these, and the nuances of such circumstances will be discussed in the rest of the book, beginning with the CSS properties that describe ways to alter the way text is displayed.

Previous | Home | Next
3.5. CSS2 Units | Book Index | 4. Text Properties


Text Properties (Cascading Style Sheets: The Definitive Guide)

Chapter 4. Text Properties

Contents:

Manipulating Text
Summary

While your web design efforts may be largely focused on picking the right colors and getting the coolest look for your pages, when it comes right down to it, you'll probably spend most of your time worrying about where text will go and how it will look. This concern gave rise to HTML tags such as <FONT> and <CENTER>, which give you some measure of control over the appearance and placement of text.

Because of this fact, much of CSS is concerned with properties that affect text in one way or another. In CSS1, the properties are split up into two sections: "Text Properties" and "Font Properties." This chapter is devoted to explaining the former. We'll tackle fonts in Chapter 5, "Fonts" -- they're quite complicated in their own way and so deserve a chapter all their own.

4.1. Manipulating Text

You may well wonder what the difference is between text and fonts. Simply put, text is the content. The font used to display it is just one more way of altering the appearance of the text. Before we get into fonts, though, there are some simpler ways to affect the appearance of your text. Besides, some of the things we discuss here will be important when we discuss the font properties, so it makes more sense to discuss the text properties first.

With the text properties, you can affect the position of text in relation to the rest of the line, and do things like superscripting, underlining, and changing the capitalization. You can even simulate, to a limited degree, the use of the Tab key on a typewriter.

4.1.1. Indentation and Horizontal Alignment

It's best to start with a discussion of how you can affect the horizontal positioning of text within a line. This is not the same as actual positioning, which is done with respect to the page itself. Think of these properties as ways to affect how the lines of text are laid out, as you might do when creating a newsletter or writing a report.

4.1.1.1. Indenting text

One of the most sought-after effects in text formatting on the Web is the ability to indent the first line of a paragraph. (Close behind that is the desire to eliminate the "blank line" between paragraphs, which is discussed in Chapter 7, "Boxes and Borders"). Some sites solve this by placing a small transparent image before the first letter in a paragraph, thus shoving the text over, and others use the utterly nonstandard SPACER tag to get a similar effect. There is a better way, thanks to CSS.

text-indent

Values

<length> | <percentage>

Initial value

0

Inherited

yes

Applies to

block-level elements

WARNING

Percentage values refer to parent element's width.

Using text-indent, any element can have its first line indented by a given length -- even if that length is negative. The most common use for this property, of course, is to indent the first line of paragraphs:

P {text-indent: 0.25in;}

This rule will cause the first line of any paragraph to be indented a quarter-inch, as shown in Figure 4-1.

Figure 4-1. Text indenting

In general, text-indent can be applied to any block-level element, such as PRE, H1, or BLOCKQUOTE. You can't apply it to inline elements, such as STRONG or A, nor can you use it on replaced elements such as images -- which makes sense, of course. However, if you have an image within the first line of a block-level element like a paragraph, it will be shifted over with the rest of the text, as shown in Figure 4-2.

Figure 4-2. Text indenting and images

It's possible to set negative values for text-indent, which can be used in a number of interesting ways. The most common is known as a "hanging indent," where the first line hangs out to the left of the rest of the element, as shown in Figure 4-3:

P {text-indent: -4em;}

Figure 4-3. Negative text indenting

As you can see in Figure 4-3, there is an inherent danger in setting a negative value for text-indent: the first three words ("This is a") have been chopped off by the left edge of the browser window. In order to avoid such display problems, it is generally advisable to use a margin or some padding that will accommodate the negative indentation, as shown in Figure 4-4:

P {text-indent: -4em; padding-left: 4em;}

Negative indents can occasionally be used to one's advantage. Consider the following example, demonstrated in Figure 4-5, which adds a floated image to the mix:

P.hang {text-indent: -30px;}

<P CLASS="hang"><IMG SRC="floater.gif" WIDTH="30px" HEIGHT="60px"
ALIGN="left" ALT="Floated">This paragraph has a negatively indented first
line, which overlaps the floated image which precedes the text.  Subsequent
lines do not overlap the image, since they are not indented in any way.</P>

Figure 4-4. Floated images and negative text-indenting

Figure 4-5. Accounting for negative text-indenting

Many interesting designs can be achieved using this simple technique. Figure 4-6 shows one example, where the first line of text has been indented -40px.

Figure 4-6. Negative indents and floating images

Any unit of length may be used with text-indent. In addition, percentage values are allowed. In this case, the percentage refers to the width of the parent element being indented. Thus, if you set the indent value to 5%, the first line of an affected element will be indented by 5% of the parent element's width, as shown in Figure 4-7:

DIV {width: 400px;}
P {text-indent: 5%;}

<P>This paragraph is contained inside a DIV which is 400px wide, so the
first line of the paragraph is indented 20px (400 * 5% = 20).  This is because
percentages are computed with respect to the width of the parent element.</P>

Figure 4-7. Text-indenting with percentages

Note that this indentation will only apply to the first line of an element, even if you insert line breaks. Thus, as Figure 4-8 shows:

DIV {width: 400px;}
P {text-indent: 5%;}

<DIV>
<P>This paragraph is contained inside a DIV which is 400px wide, so the
first line of the paragraph is indented 20px (400 * 5% = 20).  Subsequent
lines within the same element are not indented,<BR>
even if they follow a<BR>
line-break.</P>
<P>Once again, the first line of this paragraph is indented by 20px,
but other lines in the same element are not.</P>
</DIV>

Figure 4-8. Text-indenting and line breaks

The interesting part about text-indent is that it's inherited, but what's inherited is the computed value, not the declared value. Take the following markup:

BODY {width: 500px;}
DIV {width: 500px; text-indent: 10%;}
P {width: 200px;}

<DIV>
This first line of the DIV is indented by 50 pixels.
<P>This paragraph is 200px wide, and the first line of the paragraph
is indented 50px.  This is because computed values for 'text-indent'
are inherited, instead of the declared values.</P>
</DIV>

Even though the paragraph is only 200 pixels wide, its first line is indented by 50 pixels (as Figure 4-9 shows), which is the inherited value for text-indent.

Figure 4-9. Inherited text-indenting

4.1.1.2. Aligning text

Even more basic than text-indent is the property text-align, which affects how lines of text in an element are aligned with respect to one another. There are four values; the first three are pretty simple, but the fourth has a few complexities.

text-align

Values

left | center | right | justify

Initial value

UA specific

Inherited

yes

Applies to

block-level elements

The fastest way to understand how these values work is to examine Figure 4-10.

Figure 4-10. Behaviors of the text-align property

text-align is another property that only applies to block-level elements such as paragraphs. It isn't possible to center an anchor within its line without aligning the rest of the line (nor would you really want to).

The rule text-align: center can be used to replace the operation of the CENTER tag, as shown in Figure 4-11:

H1 {text-align: center;}

Figure 4-11. Centering text with the text-align property

You can also cause the centering of elements that have both text and images within them -- again, it will act just like the CENTER tag, as Figure 4-12 and the following markup show:

DIV.first {text-align: center;}

<H1>An Un-centered H1 Element</H1>
<DIV CLASS="first">
<P>
This is a paragraph without any alignment styles applied to it.  However, it is
contained within a DIV element which has alignment set, and this alignment will
inherit into the paragraph.  This will also affect any images which appear within
the DIV, such as this one <IMG SRC="star.gif"> or the next one.
</P>
<IMG SRC="floater.gif">
</DIV>

Figure 4-12. Centering text and inline images with the text-align property

However, if you want to center an image all by itself, text-align is not the correct way to go about it. Given the following markup, you'll get the result in Figure 4-13:

IMG {text-align: center;}

Figure 4-13. The text-align property and block-level images

The basic reason the image isn't centered is that it isn't a block-level element. The only way to center an image using text-align is to wrap a DIV around the image, and set the DIV 's contents to be centered:

<DIV STYLE="text-align: center;">
   <IMG SRC="shiny.gif" ALT="Shiny object">
</DIV>

As Figure 4-14 shows, this will center the image.

Figure 4-14. Centering images the hard way

For Western languages, which are read from left to right, the default value of text-align will be left, with text lining up on the left margin and having a ragged right margin (otherwise known as "left-to-right" text). Other languages, such as Hebrew and Arabic, will default to right instead, since these languages are written right-to-left. center has the expected effect, in that it causes each line of text to be centered within the element.

As for justify, there are a few issues to consider. As Figure 4-15 shows, justified text is formatted such that the ends of each line of text are placed at the inner edge of the parent element. This is accomplished by changing the spacing between words and letters so that each line is precisely the same length. This is an effect common to the print world (such as in this book), but under CSS, some extra considerations come into play.

Figure 4-15. Justified text

CSS does not specify how justified text should be "stretched out" to fill the space between the left and right edges of the parent, so some user agents might add extra space only between words, while others might distribute the extra space between letters. It's also possible that some user agents will reduce space on some lines, thus shmushing text together a bit more than usual. All of these various choices will affect the appearance of an element, and possibly even change its height, depending on how many lines result from the justification choices the user agent makes (see Figure 4-16).

Figure 4-16. Justification choices

Another problem is that CSS doesn't say anything about how hyphenation should be handled. Most justified text uses hyphenation to break long words across two lines, thus reducing the space between words and improving the appearance of lines (see Figure 4-17).

Figure 4-17. Justification with hyphenation

TIP

The fact that hyphenation is not described in CSS has more to do with the fact that different languages have different hyphenation rules. Rather than try to concoct a set of rules that would most likely be incomplete, the specification simply avoids the problem. In addition, this allows user agents to employ their own hyphenation rules, and improve them over time without being hindered by anything in the CSS specification.

Since there is no hyphenation in CSS, user agents are unlikely to be able to perform any automatic hyphenation. Thus, justified text will very likely be less attractive under CSS than it might be in print, especially when elements become so narrow that only a few words can fit on each line, as shown in Figure 4-18. You can still justify text, of course, but be aware of the drawbacks.

Figure 4-18. Justification without hyphenation in narrow circumstances

WARNING

While almost every browser that supports CSS will handle most values of text-align, they often fall down when handling justify. Navigator 4 does support justify, but it's fairly buggy -- it most often breaks down within tables. Internet Explorer 4.x does not support justify, while IE5 does, and Opera 3.6 supports it as well.

4.1.1.3. Handling whitespace

For a change of pace, let's talk about the property white-space, which can greatly impact how text is actually displayed.

white-space

Values

pre | nowrap | normal

Initial value

normal

Inherited

no

Applies to

block-level elements

Using this property, you can affect how browser treats the whitespace between words and lines of text. To a certain extent, HTML already does this: it collapses any whitespace down to a single space. Thus, the following markup would be rendered as shown in Figure 4-19, with only one space between each word:

<P>This    paragraph   has     many
    spaces        in it.</P>

Figure 4-19. Displaying a paragraph with many spaces

You can explicitly set this behavior with the following declaration:

P {white-space: normal;}

This rule will tell the browser that it should do as browsers have always done, and discard extra whitespace. Any extra spaces and carriage returns are completely ignored by the browser.

Should you set white-space to pre, however, the whitespace in affected elements will be treated as though the elements were PRE elements, in that whitespace would not be ignored, as shown in Figure 4-20:

P {white-space: pre;}

<P>This    paragraph   has     many
    spaces        in it.</P>

Figure 4-20. Honoring the spaces in markup

With a white-space value of pre, the browser will pay attention to extra spaces and even carriage returns. In this respect, and in this respect alone, any element can be made to act like a PRE element.

On the other side of the coin is nowrap, which prevents text from wrapping within a block-level element, except through the use of <BR> elements. This is rather similar to setting a table cell not to wrap through <TD NOWRAP>, except that white-space value can be applied to any block-level element. Thus you can get effects as shown in Figure 4-21:

<P STYLE="white-space: nowrap;">This paragraph is not allowed to wrap,
which means that the only way to end a line is to insert a line-break
element.  If no such element is inserted, then the line will go forever,
forcing the user to scroll horizontally to read whatever can't be
initially displayed <BR>in the browser window.</P>

Figure 4-21. Suppressing text-wrapping with the white-space property

In fact, you can use white-space to replace the nowrap attribute on table cells, as demonstrated in Figure 4-22:

TD {white-space: nowrap;}

<TABLE><TR>
<TD>The contents of this cell are not wrapped.</TD>
<TD>Neither are the contents of this cell.</TD>
<TD>Nor this one, or any after it, or any other cell in this table.</TD>
<TD>CSS prevents any wrapping from happening.</TD>
</TR></TABLE>

Figure 4-22. Using the white-space: nowrap property to suppress wrapping in table cells.

WARNING

Although white-space may seem like an insanely useful property, as of this writing, it isn't supported by anything except IE5 for Macintosh and preview builds of Netscape 6. Not even the ability to use nowrap for table cells is available in other browsers, despite the fact that it would seem to be a very simple behavior to support.

4.1.2. The Height of Lines

As opposed to the size of a font, which will be discussed in Chapter 5, "Fonts", line-height refers to the distance between the baselines of lines of text -- sort of. In fact, this property determines the amount by which the height of each element's line box is increased or decreased. In the simplest cases, it's a way of increasing (or decreasing) the vertical space between lines of text, but this is a misleadingly simple way of looking at how line-height works. If you're familiar with desktop publishing packages, then line-height controls the leading, which is the extra space between lines of text above and beyond the font's size. The difference between the value of line-height and the size of the font is the leading.

line-height

Values

<length> | <percentage> | <number> | normal

Initial value

normal

Inherited

yes

Applies to

all elements

WARNING

Percentage values are relative to the font size of the element.

In technical terms, every element in a line generates a content area, which is determined by the size of the font. This content area also generates an inline box which is, in the absence of any other factors, exactly equal to the content area. However, the leading generated by line-height can increase or decrease the height of the inline box. This is done by dividing the leading in half and applying each half-leading to the top and bottom of the content area. The result is the inline box. For example, if the content area is 14 points tall, and the line-height is set to 18 points, then the difference (4 points) is divided in half, and each half applied to the top and bottom of the inline box to arrive at an inline box which is 18 points tall. This sounds like a roundabout way to describe how line height works, but rest assured that there are excellent reasons for the description. See Chapter 8, "Visual Formatting", for a detailed explanation of the inline formatting model.

If you use the default value of normal, the amount of vertical space between lines will be the user agent's default. This is generally somewhere between 1.0 and 1.2 times the size of the font, but this can vary by user agent.

Allowed lengths other than em and ex are simple length measures (e.g., 0.125in). The usual caveats apply here; even if you use a valid length measure like 4cm , the browser (or the operating system) may have an incorrect metric for real-world measures. Thus, when you display your document on a monitor, a ruler might reveal that the line height was not exactly four centimeters. For more details, see Chapter 3, "Units and Values".

Percentages, as well as em and ex, are calculated with respect to the element's font-size. Thus, this markup is relatively straightforward, as Figure 4-23 shows:

BODY {line-height: 14pt; font-size: 13pt;}
P.one {line-height: 1.2em;}
P.two {font-size: 10pt; line-height: 150%;}
P.three {line-height: 0.33in;}

<P>This paragraph inherits a 'line-height' of 14pt from the BODY, as well as
a 'font-size' of 13pt.</P>
<P CLASS="one">This paragraph has a 'line-height' of 16.8pt (14 * 1.2), so
it will have slightly more line-height than usual.</P>
<P CLASS="two">This paragraph has a 'line-height' of 15pt (10 * 150%), so
it will have slightly more line-height than usual.</P>
<P CLASS="three">This paragraph has a 'line-height' of 0.33in, so it will have
slightly more line-height than usual.</P>

Figure 4-23. Simple calculations with the line-height property

However, things get less predictable once the line-height is inherited from one block-level element to another. The computed line-height values are inherited no matter what font-size might be set for a child element. This can be something of a problem, as you can see in Figure 4-24:

BODY {font-size: 10pt;}
DIV {line-height: 12pt;}
P {font-size: 18pt;}

<DIV>
<P>This paragraph's 'font-size' is 18pt, but the inherited 'line-height'
is only 12pt.  This may cause the lines of text to overlap each other by
a small amount.</P>
</DIV>

Figure 4-24. Small line height, large font size, slight problem

There are two solutions. One is to set the line-height explicitly for every element, but this is not a very practical approach, given that you may have a number of elements that need such properties. The other possibility is to set a plain number instead, which actually sets a scaling factor:

BODY {font-size: 10pt;}
DIV {line-height: 1.5;}
P {font-size: 18pt;}

When a number is used, the scaling factor is inherited instead of a computed value. This factor is applied to the element and all of its child elements, so that each element has a line-height calculated with respect to its own font-size, as demonstrated in Figure 4-25:

BODY {font-size: 10pt;}
DIV {line-height: 1.5;}
P {font-size: 18pt;}

<DIV>
<P>This paragraph's 'font-size' is 18pt, and since the 'line-height'
set for the parent DIV is 1.5, the 'line-height' for this paragraph
is 27pt (18 * 1.5).</P>
</DIV>

Figure 4-25. Using line-height factors to overcome inheritance problems

As I said previously, although it seems like line-height distributes extra space both above and below each line of text, it actually adds (or subtracts) a certain amount from the top and bottom of an inline element. This leads to some odd cases when a line has elements with different font sizes, but for the moment, let's stick to a simple case. Assume that the default font-size of a paragraph is 12pt and consider the following:

P {line-height: 16pt;}

Since the "inherent" line height of 12-point text is 12 points, the preceding rule means that there will be an extra 4 points of space around each line of text in the paragraph. This extra amount is divided in two, with half going above each line, and the other half below. While there is a distance of 16 points between the lines, this is an indirect result of how the extra space is apportioned.

Now let's look at a slightly more complex case. Take the following example:

BODY {font-size: 10pt;}
P {font-size: 18pt; line-height: 23pt;}
BIG {font-size: 250%;}

<P>This paragraph's 'font-size' is 18pt, and the 'line-height' for this
paragraph is 23pt. However, a <BIG>larger element</BIG> within the
paragraph does not cause the value of 'line-height' to change, which can
lead to some interesting effects.</P>

The result shown in Figure 4-26 may look like a browser bug, but it isn't. It's exactly how the example markup should be displayed.

Figure 4-26. Possible behavior with the line-height property and inline elements of different sizes

This is by no means the only oddity which arises from using line-height. As backwards as it may seem, in Figure 4-27, the value of line-height is exactly the same for each and every line in the element, no matter how far apart they may actually appear to be. This fact will come up again in Section 4.1.3, "Vertical Alignment".

Figure 4-27. Tall images don't change line height

Again, the actual value for line-height in Figure 4-27 is the same for every line.

You can take advantage of the fact that line-height can be set for any element, including inline elements. Let's return to our previous example and make one small change by adding a line-height to the styles for the BIG element. We'll also change the line-height of the P element from 23pt to 27pt. This will have the result shown in Figure 4-28:

BODY {font-size: 10pt;}
P {font-size: 18pt; line-height: 27pt;}
BIG {font-size: 250%; line-height: 1em;}

<P>This paragraph's 'font-size' is 18pt, and the 'line-height' for this
paragraph is 27pt. A <BIG>larger element</BIG> within the paragraph does
not cause the line's height to change, but setting its 'line-height' does,
which leads to some interesting effects.</P>

Figure 4-28. Changing the line-height of an inline element

Setting a line-height of 1em for the BIG element will actually cause its line-height to be the same size as the BIG text itself. This has the same effect the images did: it opens up the entire line of text enough to clearly display the elements within it. In this case, the effect is due to the increased line-height of the inline element BIG, as opposed to the intrinsic size of an image, but the effect is largely the same.

The reasons why all of this happens are actually rather complex. For more details, please refer to the discussion of the inline formatting model found in Chapter 8, "Visual Formatting".

4.1.2.1. Real-world issues

As we saw in the preceding section, a scaling factor is the best way to avoid the kinds of inheritance problems you encounter with length measures for line-height. It would therefore seem that using a number is always preferred. Alas, this is not necessarily so. Internet Explorer 3 will interpret a scaling factor as a pixel value, so you get something like what's shown in Figure 4-29.

Figure 4-29. Internet Explorer 3 and line-height factors mean big trouble

According to the CSS specification, user agents are free to set whatever value they think best for the default keyword normal, but the suggested range is 1.0 to 1.2, depending on what works best for the display medium and the font in use. Most browsers seem to use something in the vicinity of 1.2, but of course that could change with a new browser, or even a new version of an old browser.

4.1.3. Vertical Alignment

The odds are that you're already, to a certain extent, familiar with the concept of vertical alignment of text. If you've ever used the elements SUP and SUB (the superscript and subscript elements) or used an image with markup along the lines of <IMG SRC="foo.gif" ALIGN="texttop">, then you've done some rudimentary vertical alignment. The CSS property vertical-align permits all of the alignment you used to do on inline elements, and more besides.

WARNING

There is one thing to remember: vertical-align is not meant to affect the alignment of content in table cells, or within a block-level element. Under CSS1, there is no provision for duplicating markup such as <TD valign="top">. (This changes under CSS2; see Section 10.7, "Tables" in Chapter 10, "CSS2: A Look Ahead", for more details.)

So, let's see what can be done with vertical-align. This property applies only to inline elements, although that includes replaced elements such as images and form inputs, and it is not inherited.

vertical-align

Values

baseline | sub | super | bottom | text-bottom | middle | top | text-top | <percentage>

Initial value

baseline

Inherited

no

Applies to

inline elements

WARNING

Percentage values refer to the line-height of the element.

vertical-align accepts any one of eight keywords, or a percentage value, but never both. The keywords are a mix of the familiar and unfamiliar: baseline (the default value), sub, super, bottom , text-bottom , middle, top, and text-top. We'll examine how each works in turn.

4.1.3.1. Baseline alignment

vertical-align: baseline forces an element to align its baseline with the baseline of its parent, which is pretty much what browsers already do anyway. For example, this markup results in Figure 4-30:

B {vertical-align: baseline;}

<P>The baseline of the <B>boldfaced text</B> is aligned with the baseline
of this paragraph.</P>

Figure 4-30. Baseline alignment

In examining Fiture 4-30, you'll see that it doesn't look any different than you would expect. It shouldn't.

If a vertically aligned element doesn't have a baseline -- that is, if it's an image, a form input, or another replaced element -- then the bottom of the element is aligned with the baseline of its parent, as Figure 4-31 shows:

IMG {vertical-align: baseline;}

<P>The image found in this paragraph <IMG SRC="dot.gif" ALT="a dot"> has its
bottom edge aligned with the baseline of the paragraph.</P>

Figure 4-31. Baseline alignment of an image

4.1.3.2. Superscripting and subscripting

The declaration vertical-align: sub causes the element to be " subscripted." In general, this means that the element's baseline (or bottom, if it's a replaced element) is lowered with respect to its parent's baseline. However, the distance it is lowered is not defined in the specification, so it may vary from one user agent to another. Note that sub does not imply a change in the element's font size, so it should not cause subscripted text to become smaller (or larger). Instead, any text in the subscripted element should be, by default, the same size as text in the parent element, as shown in Figure 4-32:

SUB {vertical-align: sub;}

<P>This paragraph contains <SUB>subscripted</SUB> text.</P>

Figure 4-32. Subscript alignment

Of course, you could make the text smaller by using font-size, but you have to do it yourself.

super acts in a fashion similar to sub, but in this case, the element's baseline (or bottom of a replaced element) is raised with respect to the parent's baseline. Again, the distance the text will be raised is dependent on the user agent, and there is no implied change in the size of the font. This is demonstrated in Figure 4-33:

SUP {vertical-align: super;}

<P>This paragraph contains <SUP>superscripted</SUP> text.</P>

Figure 4-33. Superscript alignment

4.1.3.3. Bottom feeding

vertical-align: bottom sounds pretty simple: it aligns the bottom of the element's inline box with the bottom of the line box. For example, this markup results in Figure 4-34:

IMG.feeder {vertical-align: bottom;}

<P>This paragraph contains an image <IMG SRC="tall.gif" ALIGN="middle"
ALT="tall image"> which is tall, and another image <IMG SRC="short.gif"
CLASS="feeder" ALT="short image"> which is not tall.</P>

Figure 4-34. Bottom alignment

As you can see from Figure 4-34, the second line of the paragraph contains two images, and their bottom edges are aligned with each other. (The first image has been set to a middle alignment using the HTML attribute align. We'll look into ways of achieving a similar effect with CSS a little later in this chapter.)

vertical-align: text-bottom refers to the bottom of the text in the line. Replaced elements, or indeed nontext elements of any kind, are ignored for the purposes of this value. Instead, a "default" text box is considered. This default box is derived from the font-size of the parent element. The bottom of the aligned element's inline box is then aligned with the bottom of default text box. Thus, given the following markup, we get a situation such as that shown in Figure 4-35:

IMG.tbot {vertical-align: text-bottom;}

<P>Here: a <IMG SRC="tall.gif" ALIGN="middle"
ALT="tall image"> tall image, and then a <IMG SRC="short.gif"
CLASS="tbot" ALT="short image"> short image.</P>

Figure 4-35. Text-bottom alignment

4.1.3.4. Getting on top

Employing vertical-align: top has pretty much the opposite effect of bottom . Likewise, vertical-align: text-top is the reverse of text-bottom . Figure 4-36 shows how the following markup would be rendered:

IMG.up {vertical-align: top;}
IMG.textup {vertical-align: text-top;}

<P>Here: a <IMG SRC="tall.gif" ALIGN="middle"
ALT="tall image"> tall image, and then a <IMG SRC="short.gif"
CLASS="up" ALT="short image"> short image.</P>
<P> Here: a <IMG SRC="tall.gif" CLASS="textup"
ALT="tall image"> tall image, and then a <IMG SRC="short.gif"
CLASS="textup" ALT="short image"> short image.</P>

Figure 4-36. Aligning with the top and text-top of a line

Of course, the exact position of that alignment will depend on what elements are in the line and how tall they are.

4.1.3.5. In the middle

Then there is vertical-align: middle. This value is usually applied to images, since it causes the vertical midpoint of the element to be aligned with the "middle" of the line. The middle of the line is defined to be the point which is one-half ex above the baseline, where the value of ex is derived from the font-size of the parent element. An example is shown in Figure 4-37:

IMG {vertical-align: middle;}

Figure 4-37. Middle alignment

In practice, since most user agents treat 1ex as one-half em, middle will cause the vertical midpoint of an element to be aligned with a point one-quarter em above the parent's baseline. Figure 4-38 shows this in more detail.

Figure 4-38. Precise detail of middle alignment

This is pretty close to simulating <IMG ALIGN="middle">, as you can see, and you'd probably think that percentages would get even closer.

4.1.3.6. Percentages

As it turns out, no, percentages don't let you simulate ALIGN="middle" for images. Instead, setting a percentage value for vertical-align causes the baseline (or bottom of a replaced element) of the element to be raised or lowered by the amount declared, with respect to the parent's baseline. The percentage you specify is calculated as a percentage of the value for line-height. Positive percentage values cause the element to be raised, and negative values cause it to be lowered. This can cause elements to be raised or lowered such that they appear to be placed in adjacent lines, as shown in Figure 4-39, so you should take care when using percentage values:

B {vertical-align: 100%;}

<P>This paragraph contains some <B>boldfaced</B> text, which is raised
up 100%.  This makes it look as though it's on a preceding line.</P>

Figure 4-39. Vertical alignment with percentages

However, it's important to realize that the vertically aligned text is not part of another line. It just appears that way when there isn't any other text around. Consider Figure 4-40, in which some vertically aligned text appears in the middle of a paragraph.

Figure 4-40. Percentage alignments can affect the height of a line

Of course, this sort of thing can lead to some fun visual effects, as we see in Figure 4-41:

SUB {vertical-align: -100%;}
SUP {vertical-align: 100%;}

<P>We can either <SUP>soar to new heights</SUP> or, instead,
<SUB>sink into despair...</SUB></P>

Figure 4-41. Percentages and fun effects

Since percentage values are meant to be percentages of the line-height, what happens when a particularly tall image within a line causes the line's apparent height to increase?

If you'll recall from before, the answer is that an image, no matter how tall it is, doesn't actually cause the line-height to increase. What is increased is the height of the line box. Therefore, if a line's height is 14px, and an element within that line is vertically aligned to 50%, and within that same line, there is an image 50 pixels tall, you get the result shown in Figure 4-42:

SUP {vertical-align: 50%;}

Figure 4-42. Vertical alignment with a percentage and a tall image

The 50%-aligned element has its baseline raised 7 pixels (which is half of 14px), not 25 pixels. Also note that the line-box has been made tall enough to accommodate the image. This is actually consistent with the inline box model, because replaced elements have this kind of effect.

We can see the operation of vertical alignment more clearly if we have two images, one of which is vertically aligned with a percentage value. The results, shown in Figure 4-43, are dependent on the line-height, which we'll explicitly declare to be 14px:

P {line-height: 14px;}
IMG.up {vertical-align: 50%;}

<P>Some <IMG SRC="tall.gif" alt="tall image">
<IMG SRC="short.gif" CLASS="up" ALT="short image"> text.</P>

Figure 4-43. Vertical alignment with percentage and two images

The bottom (or baseline) of the smaller image is raised by one-half (50%) of the line-height, or 7 pixels. If we had set the alignment for IMG.up to be -50%, then the shorter image would have been lowered by 7 pixels.

4.1.3.7. Combined alignment

As we've already seen, the way a given line of text is displayed will depend greatly on the vertical alignments of the various elements within that line. However, this fact deserves to be emphasized again, due to its importance. Assume, for example, that a line contains an image which has been middle-aligned, and an inline text element which has been bottom-aligned. This would result in the situation shown in Figure 4-44:

IMG {vertical-align: middle;}
SUB {vertical-align: bottom;}

Figure 4-44. Combining vertical alignments

If we change the text element so that it's text-bottom-aligned, though, the situation changes quite radically, as Figure 4-45 shows:

IMG {vertical-align: middle;}
SUB {vertical-align: text-bottom;}

Figure 4-45. Combining vertical alignments in a different way

4.1.4. Word Spacing and Letterspacing

The concepts here are fairly simple: word and letterspacing are ways of inserting or reducing space between either words or letters. As usual, though, there are some nonintuitive issues to consider with these properties; first, let's talk about the spaces between words.

4.1.4.1. Word spacing

word-spacing

Values

<length> | normal

Initial value

normal

Inherited

yes

Applies to

all elements

The word-spacing property will accept a length that is either positive or negative. This value is added to the usual space between words, which perhaps isn't quite what you might expect. In effect, word-spacing is used as a modifier to interword spacing. Therefore, the default value of normal is the same as setting a value of zero (0), as shown in Figure 4-46:

P.base {word-spacing: normal;}
P.norm {word-spacing: 0;}

Figure 4-46. Two ways to achieve ordinary word spacing

Therefore, if we supply a positive length value, then the space between words will increase, as demonstrated in Figure 4-47:

P {word-spacing: 0.2em;}

<P>The spaces between words in paragraphs will be increased by 0.2em.</P>

Figure 4-47. Increasing the space between words

By setting a negative value for word-spacing, words can be brought closer together. This has an effect like that shown in Figure 4-48:

P {word-spacing: -0.4em;}

<P>The spaces between words in paragraphs will be decreased by 0.4em.</P>

Figure 4-48. Decreasing the space between words

So far, we've left out a precise definition of what a "word" really is. In the simplest CSS terms, a "word" is any string of non-whitespace characters that is surrounded by whitespace of some kind. This definition has no real semantic significance -- it is merely assumed that an author will write a document such that each word is surrounded by one or more whitespace characters. Obviously, a CSS-aware user agent cannot be expected to decide what is a valid word in a given language and what isn't.

This also means that any languages that employ pictographs, or other non-Roman writing styles, will probably not be able to take advantage of this property. Furthermore, this definition of "word" is not something user agents are required to follow; it merely represents the most basic way of defining a word. User agents may employ more sophisticated ways of deciding what a word is or isn't.

It is, of course, possible to create very unreadable documents with this property, as Figure 4-49 makes clear:

P {word-spacing: 1in;}

Figure 4-49. Really wide word spacing

4.1.4.2. Letterspacing

letter-spacing

Values

<length> | normal

Initial value

normal

Inherited

yes

Applies to

all elements

Many of the same issues with word-spacing return for letter-spacing. The only real difference between this property and word-spacing is that letter-spacing is a modifier of the usual amount of space between characters, or letters.

Once again, the permitted values are any length value and the default keyword normal (which is functionally the same as letter-spacing: 0 ). Any length value will increase or decrease the space between letters by the amount declared. Figure 4-50 shows the results of the following markup:

P {letter-spacing: 0;}    /*  identical to 'normal'  */
P.spacious {letter-spacing: 0.25em;}
P.tight {letter-spacing: -0.25em;}

<P>The letters in this paragraph are spaced as normal.</P>
<P CLASS="spacious">The letters in this paragraph are spread out a bit.</P>
<P CLASS="tight">The letters in this paragraph are smooshed together a bit.</P>

Figure 4-50. Various kinds of letterspacing

One interesting use for letter-spacing is to increase emphasis, which is a technique that was common in past centuries. Thus, you might declare the following to get an effect like that shown in Figure 4-51:

STRONG {letter-spacing: 0.2em;}

<P>This paragraph contains <STRONG>strongly emphasized text</STRONG>
which is spread out for extra emphasis.</P>

Figure 4-51. Using letterspacing to increase emphasis

4.1.4.3. Spacing, alignment, and font size

Both word-spacing and letter-spacing can be influenced by the value of text-align. If an element is set to be justified, then the spaces between letters and words may be altered to permit full justification, which may in turn alter the spacing declared by the author with word-spacing or letter-spacing. The CSS specification does not specify how the spacing should be calculated in such a case, so user agents are free to do whatever their programmers thought best.

Furthermore, as usual, the computed value of an element is inherited by any child elements. Unlike line-height, there is no way to define a scaling factor for word-spacing or letter-spacing to be inherited in place of the computed value. Thus we have problems such as those shown in Figure 4-52:

P {letter-spacing: 0.25em;}
SMALL {font-size: 50%;}

<P>This spacious paragraph features <SMALL>tiny text which is just
as spacious</SMALL>, even though the author probably wanted the
spacing to be in proportion to the size of the text.</P>

Figure 4-52. Inherited letterspacing

The only way to get an effect where the letterspacing is in proportion to the size of the text is to set it explicitly, with the result shown in Figure 4-53:

P {letter-spacing: 0.25em;}
SMALL {font-size: 50%; letter-spacing: 0.25em;}

<P>This spacious paragraph features <SMALL>tiny text which is
proportionally spacious</SMALL>, which is what the author
probably wanted.</P>

Figure 4-53. Overcoming inherited letterspacing.

4.1.5. Text Transformation

Now we turn to ways to fiddle with the capitalization of text. This is done with the property text-transform .

text-transform

Values

uppercase | lowercase | capitalize | none

Initial value

none

Inherited

yes

Applies to

all elements

The default value none will simply leave the text alone and use whatever capitalization exists in the source document. uppercase and lowercase cause the text to be converted into all upper- or lowercase characters, as their names would indicate. Finally, capitalize causes the first letter of each word to be capitalized and leaves the rest of the characters in each word alone. (Note that for the purposes of this property, a "word" is the same as discussed in the section on word-spacing.)

Figure 4-54 shows each of these settings in a variety of ways:

STRONG {text-transform: uppercase;}
H1, H2, H3 {text-transform: capitalize;}
P.cummings {text-transform: lowercase;}
P.raw {text-transform: none;}

<H1>The heading-one at the beginninG</H1>
<P>
By default, text is displayed in the capitalization it has in the source
document, but <STRONG>it is possible to change this</STRONG> using
the property 'text-transform'.
</P>
<P CLASS="cummings">
For example, one could Create TEXT such as might have been Written by
the late Poet E.E.Cummings.
</P>
<P CLASS="raw">
If you feel the need to Explicitly Declare the transformation of text,
that can be done as well.
</P>

Figure 4-54. Various kinds of text transformation

Note that different user agents may have different ways of deciding where words begin, and thus which letters should be capitalized. As an example, the text "heading-one" in the H1 element, shown in Figure 4-54, could be rendered in one of two ways: "Heading-one" or "Heading-One." CSS does not say which is correct, so either one is possible.

Also note that the last letter in the H1 element in Figure 4-54 is still in uppercase. This is correct: when applying a text-transform of capitalize, CSS only requires that user agents make sure that the first letter of each word is capitalized. They don't have to do anything to the rest of the word.

As a property, text-transform may not seem like it does very much. In fact, it's very useful if you suddenly decide that you want all of your H1 elements to be all capitals. Instead of having to actually change the content of all your H1 elements, you can just use text-transform to make the change for you:

H1 {text-transform: uppercase;}

<H1>This is an H1 element</H1>

As you can see from Figure 4-55, the text is now all capitals.

Figure 4-55. Transforming an H1 element

The advantages are twofold. First, all you have to do is write a single rule to make this change, rather than having to make changes to the H1 itself. Second, if you decide later to switch from all capitals to capitalizing the first letter of each word, the change is even easier, as Figure 4-56 shows: way.

H1 {text-transform: capitalize;}

<H1>This is an H1 element</H1>

Figure 4-56. Transforming an H1 element in a different

4.1.6. Text Decoration

Finally, we come to text-decoration, which is a fascinating property that carries along a whole truckload of oddities and inconsistencies in browsers. First, however, let's talk about how it should work in theory.

text-decoration

Values

none | [ underline || overline || line-through || blink ]

Initial value

none

Inherited

no

Applies to

all elements

As you might expect, underline causes an element to be underlined, just like the U element in HTML. overline is the flip side; a line is drawn across the top of the text in an overlined element. The value line-through draws a line straight through the middle of the text, which also known as "strikethrough" text and is equivalent to the S and STRIKE elements in HTML. And, of course, blink causes the text to blink on and off, just like the BLINK tag supported by Netscape. Figure 4-57 shows examples of each of these values:

P.emph {text-decoration: underline;}
P.topper {text-decoration: overline;}
P.old {text-decoration: line-through;}
P.annoy {text-decoration: blink;}
P.plain {text-decoration: none;}

Figure 4-57. Various kinds of text decoration

WARNING

It's impossible to show the effect of blink in print, of course, but it's easy enough to imagine. User agents are not required to support blink, incidentally, and only Navigator 4.x actually supports it as of this writing.

As the last part of Figure 4-57 shows, the value none turns off any decoration which might otherwise have been applied to an element. This is usually the default appearance for text, but not always. For example, links are usually underlined by default. If you wished to suppress the underlining of hyperlinks, a CSS rule to do so would be:

A:link {text-decoration: none;}

The text in Figure 4-58 contains three hyperlinks: the three list items. Since we explicitly turned off link underlining, the only visual difference between the anchors and normal text is the color.

Figure 4-58. Suppressing the underlining of hyperlinks

TIP

Although I personally don't have a problem with it, many users have a tendency to get violently annoyed when they realize you've turned off link underlining. Obviously, it's a matter of opinion, so let your own tastes be your guide -- but remember that if your link colors aren't sufficiently different from normal text, visually impaired users may have a really hard time finding hyperlinks in your documents.

It is also possible to combine decorations in a single rule. For example, assume that you wish to have all hyperlinks be both underlined and overlined. The needed rule for such an effect is:

A:link, A:visited {text-decoration: underline overline;}

This effectively makes text-decoration a shorthand element. You have to be careful in this case, because if you have two different decorations matched to the same element, the value of the rule that wins out will completely replace the value of the loser. Consider:

H2.stricken {text-decoration: line-through;}
H2 {text-decoration: underline overline;}

Given these rules, any H2 element with a class of stricken will have only a line-through decoration. The underline and overline decorations are lost, since shorthand values replace one another, instead of accumulating.

4.1.6.1. Weird decorations

Now, let's get into the many strange things about text-decoration. First off is the fact that text-decoration is not inherited. This implies a requirement that any decoration lines drawn with the text -- either under, over, or through it -- should be the same color as the parent element. This is the case even if the child elements are different colors, as depicted in Figure 4-59:

P {text-decoration: underline; color: black;}
B {color: gray;}

<P>This paragraph, which is black and has a black underline, also contains
<B>boldfaced text</B> which has the black underline beneath it as well.</P>

Figure 4-59. Color consistency in underlines

Why is this so? Because the value of text-decoration is not inherited, the B element has a default value of none. Therefore, the B element has no underline. Of course, there is very clearly a line under the B element, so it seems silly to say that it has no underline. Still, it doesn't. What you see under the B element is the paragraph's underline, which is effectively "spanning" the B element. This can be made more explicit by altering the styles for the boldface element thus:

P {text-decoration: underline; color: black;}
B {color: gray; text-decoration: none;}

<P>This paragraph, which is black and has a black underline, also contains
<B>boldfaced text</B> which has the black underline beneath it as well.</P>

The result is the same, since all we've done is to explicitly declare what was already the case. In other words, there is no way to "turn off " underlining (or overlining or a line-through) within an element. If a decoration has been set for an element, then all of its children will have the decoration applied visually, if not in fact.

Combined with vertical-align, even stranger things will happen. Figure 4-60 shows but one of these oddities. Since the SUP element has no decoration of its own, but it is elevated within an overlined element, the overline cuts through the middle of the SUP element:

P {text-decoration: overline; font-size: 12pt;}
SUP {vertical-align: 50%; font-size: 12pt;}

Figure 4-60. Correct, although strange, decorative behavior

By now, you may be despairing of ever using text decorations, thanks to all the problems they could cause. It gets worse, though (or maybe better), because so far we've been exploring the way things should work according to the specification. In reality, many web browsers do turn off underlining in child elements, even though they shouldn't really do so. The reason they violate the specification is simple enough: author expectations.

P {text-decoration: underline; color: black;}
B {color: gray; text-decoration: none;}

<P>This paragraph, which is black and has a black underline, also contains
<B>boldfaced text</B> which does not have black underline beneath it.</P>

As Figure 4-61 shows, a web browser switched off the underlining for the B element. Navigator, Explorer, and Opera all do this, if there is an explicit text-decoration: none to cause the suppression of underlining. This is, of course, what an author would tend to expect, and that's why the browsers do it.

Figure 4-61. How browsers really behave

The caveat here is that browsers (or any other user agents) might one day follow the specification precisely. If you depend on using none for the suppression of decorations, realize that it may come back to haunt you in the future. Then again, future versions of CSS could include a way to turn off decorations without using none in the wrong way, so maybe there's hope.

Finally, there is a way to change the color of a decoration without violating the specification. As you'll recall, setting a text decoration on an element means that the entire element should have the same color decoration, even if there are child elements of different colors. In order to match the decoration color with each element, you need to explicitly declare the decoration, as follows:

P {text-decoration: underline; color: black;}
B {color: gray; text-decoration: underline;}

<P>This paragraph, which is black and has a black underline, also contains
<B>boldfaced text</B> which has its own gray underline.</P>

In Figure 4-62, the B element is set to be gray and to have an underline. The gray underline "overwrites" the parent's black underline, and so the decoration's color matches the color of the B element.

Figure 4-62. Overcoming the default behavior of underlines

Previous | Home | Next
3.6. Summary | Book Index | 4.2. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

4.2. Summary

Even without trying to alter the font in use, there are many ways to change the appearance of text. There are classic effects such as underlining, of course, but CSS also gives us the ability to draw lines over text or through it, change the amount of space between words and letters, indent the first line of a paragraph (or other block-level element), align text to the left or right, and much more. You can even alter the amount of space between lines of text, although this operation is unexpectedly complicated and covered in detail in Chapter 8, "Visual Formatting".

These behaviors are all relatively well supported, or else not supported at all. Full justification of text is one of the big ones that is not well supported, and most user agents released during the twentieth century exhibited bugs in the text decoration and vertical alignment, as well as line height calculations. On the other hand, word and letterspacing almost always work correctly when they're supported, and text indentation has experienced only a few very small bugs. The same is true of the ability to alter capitalization, which is usually supported correctly.

Of course, the other thing authors generally want to do with text is change which font is being used, as well as change its size, weight, and other aspects of the font. We'll see how this happens in the next chapter.

Previous | Home | Next
4. Text Properties | Book Index | 5. Fonts


Fonts (Cascading Style Sheets: The Definitive Guide)

Chapter 5. Fonts

Contents:

Font Families
Font Weights
Font Size
Styles and Variants
Using Shorthand: The font Property
Font Matching
Summary

As the authors of the specification clearly recognized, font selection will be a popular feature of CSS. After all, how many pages are littered with dozens, or even hundreds, of <FONT face="..."> tags? In fact, the beginning of the "Font Properties" section of CSS1 begins with the sentence, "Setting font properties will be among the most common uses of style sheets."

The truth is that, for now, there isn't a way to ensure consistent font use on the Web, because there isn't a uniform way of describing fonts and variants of fonts. For example, the fonts Times, Times New Roman, and TimesNR may be similar or the same, but how would a user agent know that? An author might specify TimesNR in a document, but what happens when a user without that particular font installed views the document? Even if Times New Roman is installed, the user agent cannot know that the two are effectively interchangeable. And if you're hoping to force a certain font on a reader, forget it. Although CSS2 has facilities for downloadable fonts, these are not well implemented, and a reader could always refuse to download fonts for performance reasons. CSS does not provide ultimate control over fonts, any more than does a word processor: when a Microsoft Office document you have created is loaded on someone else's machine, its display will depend on that person's installed fonts. If they don't have the same fonts you do, then the document will look different. The same is true of documents designed using CSS.

The font naming problem extends much further than trying to match font names and becomes especially confusing in the realm of font variants, such as bold or italic text. Most people know what italic text looks like, but how is it different from slanted text? Yes, there are differences, but most people would be hard put to describe them. These are not the only terms used to refer to such text, of course; there are also the terms oblique, incline (or inclined ), cursive, and kursiv, among others. Thus, one font may have a variant called something like Times Italic, whereas another uses something like Garamond Oblique. Although the two may be effectively equivalent as the "italic form" of each font, they are labeled quite differently. Similarly, the font variant terms Bold, Black, and Heavy may or may not mean the same thing.

CSS1 attempts to provide some resolution mechanisms for all these questions, although it cannot provide a complete solution. The most complicated parts of font handling in CSS1 are font family matching and font weight matching, with font size calculations running a close third. The font aspects addressed by CSS1 are font styles, such as italic, and font variants such as small caps; these are much more straightforward, relatively speaking. These features are all brought together in a single property, font, which we'll discuss at the end of this section. First, let's discuss font families, since they're the most basic step in choosing the right font for your document.

5.1. Font Families

Although there are, as was discussed earlier, a number of ways to label what is effectively the same font, CSS1 makes a valiant attempt to help user agents sort out the mess. After all, what we think of as a "font" may be composed of a large number of variations to describe boldfacing, italic text, and so forth. As an example, you're probably familiar with the font Times. However, Times is actually a combination of many variants, including TimesRegular, TimesBold, TimesItalic, TimesOblique, TimesBoldItalic, TimesBoldOblique, and so on. Each of these variants of Times is an actual font face, but Times, as we usually think of it, is a combination of all these variant faces. In other words, Times is actually a font family, not just a single font, even though most of us think about fonts as being single entities.

In addition to each specific font family such as Times, Verdana, Helvetica, or Arial, CSS defines five generic font families:

Serif fonts

Fonts that are proportional and have serifs. A font is proportional if all characters in the font have a different widths due to their various sizes. Thus, a lowercase i and a lowercase m are of different widths. (This book's default font is proportional, for example.) Serifs are the decorations on the ends of strokes within each character, such as little lines at the top and bottom of a lowercase l or at the bottom of each leg of an uppercase A. Examples of serif fonts are Times, Garamond, and New Century Schoolbook.

Sans serif fonts

Fonts that are proportional but do not have serifs. Examples of sans serif fonts are Helvetica, Geneva, Verdana, Arial, and Univers.

Monospace fonts

Fonts that are not proportional. These generally are used to emulate typewritten text or the output from an old dot-matrix printer or an even older video display terminal. In these fonts, each character is exactly the same width as all the others, so that a lowercase i is the same width as a lowercase m. These fonts may or may not have serifs. If a font has uniform character widths, it is classified as monospace, regardless of the presence of serifs. Examples of monospace fonts are Courier and Andale Mono.

Cursive fonts

Fonts that attempt to emulate human handwriting. Usually, these fonts are composed largely of curves and have stroke decorations that exceed those found in serif fonts. For example, an uppercase A might have a small curl at the bottom of its left leg. Examples of cursive fonts are Zapf Chancery, Author, and Comic Sans.

Fantasy fonts

Fonts that are not really defined by any single characteristic other than their inability to be easily classified in one of the other families. A few such fonts are Western and Klingon.

In theory, every font family a user could install will fall into one of these generic families. In practice, this may not be the case, but the exceptions (if any) are likely to be few and far between.

5.1.1. Using Generic Font Families

Any of these families can be employed in a document by using the property font-family.

font-family

Values

[[<family-name> | <generic-family>],]* [<family-name> | <generic-family>]

Initial value

UA specific

Inherited

yes

Applies to

all elements

If you wish for a document to use a sans serif font, but you do not particularly care which, then the appropriate declaration would be this:

BODY {font-family: sans-serif;}

This will cause the user agent to pick a sans serif font family such as Helvetica and apply it to the BODY element. Thanks to inheritance, this will apply that font choice to the entire document (unless a more specific selector overrides it, of course). The result is something like what's shown in Figure 5-1.

Figure 5-1. Using a sans serif font

Using nothing more than these generic families, an author can create a fairly sophisticated style sheet. Take the following rule set, which is illustrated in Figure 5-2:

BODY {font-family: serif;}
H1, H2, H3, H4 {font-family: sans-serif;}
CODE, PRE, TT, SPAN.input {font-family: monospace;}
P.signature {font-family: cursive;}

Figure 5-2. Various font families

Thus, most of the document will be in a serif font such as Times, including all paragraphs save those that have a class of signature, which will instead be rendered in a cursive font such as Author. Headings 1 through 4 will be in a sans serif font like Helvetica, while the elements CODE, PRE, TT, and SPAN.input will be in a monospace font like Courier -- which, as it happens, is how the first three of those elements are usually presented.

5.1.2. Specifying Actual Font Names

An author may, on the other hand, have more specific preferences about which font is used in the display of an element. In a similar vein, a user may want to create a user style sheet that defines the exact fonts used in the display of all documents. In either case, font-family is still the property to use.

Assume for the moment that all H1s should use Garamond as their font. The simplest rule for this would be the following:

H1 {font-family: Garamond;}

This will cause a user agent displaying the document to use Garamond for all H1s, as shown in Figure 5-3.

Figure 5-3. An H1 element using Garamond

Assuming, that is, the user agent has Garamond available for use. What if, for whatever reason, it doesn't? In that case, the user agent will be unable to use the rule at all. It won't ignore the rule, but if it can't find a font called "Garamond," then it won't be able to do anything with the rule.

All is not lost, however. By combining specific font names with generic font families, documents will come out at least close to the author's intentions. To continue the previous example, the following markup tells a user agent to use Garamond, if it's available, but if not, then to use another serif font:

H1 {font-family: Garamond, serif;}

If a reader doesn't have Garamond installed but does have Times, the user agent might use Times for H1 elements, as Figure 5-4 depicts. Even though this isn't an exact match, it's probably close enough.

Figure 5-4. An H1 element using a browser-selected serif font

For this reason, authors are very strongly encouraged to always provide a generic family as part of any font-family rule. By doing so, you let user agents that can't provide an exact font match use their fallback mechanisms to pick an alternative.

This is especially helpful since, in a cross-platform environment, there is no way to know who has which fonts installed. Sure, every Windows machine in the world may have Arial and Times New Roman installed, but many Macintoshes do not, and the same is probably true of Unix machines. Conversely, while Chicago and Charcoal are common to all recent Macintoshes, it's unlikely that Windows and Unix users will have either font installed, and even less likely that they'll have both. Therefore, declarations involving these fonts, and any others, should always end with a generic font family:

H1 {font-family: Arial, sans-serif;}
H2 {font-family: Charcoal, sans-serif;}
P {font-family: TimesNR, serif;}
ADDRESS {font-family: Chicago, sans-serif;}

Again, this isn't required, but it is a very good idea.

If you're familiar with fonts, you might have a number of similar fonts in mind for use in displaying a given element. Let's say that you want all paragraphs in a document to be displayed using Times, but you would also accept TimesNR, Garamond, New Century Schoolbook, and New York (all of which are serif fonts). First, decide the order of preference for these fonts, and then string them together with commas like this:

P {font-family: Times, TimesNR, 'New Century Schoolbook', Garamond,
      'New York', serif;}

Based on this list, a user agent will look for the fonts in the order they're listed. If none of the listed fonts are available, then it will simply pick a serif font that is available.

5.1.3. Using Quotation Marks

You may have noticed the presence of single quotation marks in the previous example, which we haven't seen before. Quotation marks are needed in a font-family declaration only if a font name has one or more spaces in it, such as "New York," or if the font name includes symbols such as # or $. In both cases, the entire font name needs to be enclosed in quotation marks to keep the user agent from getting confused about what the name really is. (You might think the commas would suffice for this, but no.) Thus, a font called Karrank% would need to be quoted:

H2 {Wedgie, 'Karrank%', Klingon, fantasy;}

If you leave off the quotation marks, the odds are high that user agents will ignore that particular font name altogether, although they'll still process the rest of the rule. Font names that use a single word, like Garamond, need not be quoted, and generic family names ("serif," "monospace," and the like) should never be quoted. If you quote a generic name, then the user agent will assume you are asking for a specific font with that name (for example, "serif "), not a generic family.

As for which quotation marks to use, both single and double quotation marks are acceptable. However, if you place a font-family rule in a STYLE attribute, you'll need to use whichever quotes you didn't use for the attribute itself. Thus, if you use double quotation marks to enclose the font-family rule, then within the rule you'll have to use single quotes. If you used double quotes in such a circumstance, they would interfere with the attribute syntax, as you can see from Figure 5-5:

P {font-family: sans-serif;}  /* sets paragraphs to sans-serif by default */

<!-- the next example is correct (uses single-quotes) -->
<P STYLE="font-family: 'New Century Schoolbook', Times, serif;">...</P>

<!-- the next example is NOT correct (uses double-quotes) -->
<P STYLE="font-family: "New Century Schoolbook", Times, serif;">...</P>

Figure 5-5. The perils of incorrect quotation marks

5.1.4. Good Practices

Returning to the subject of providing alternate fonts: generally, such lists are comprised of fonts from the same generic family, but this need not be the case. Instead of listing all serif fonts or all sans serif fonts or all cursive fonts, you can mix them up as much as you like. The only restriction is that you can provide only a single generic family at the end of the font-family declaration:

P.signature {Author99, ScriptTM, serif;}

Here, the author has said that if neither Author99 nor ScriptTM are available for use, then the user agent should use any serif font. Why not specify cursive for the generic font family? Let's extend the example a little further:

P {font-family: Verdana, sans-serif;}
P.signature {font-family: Author99, ScriptTM, cursive;}

Assume that these styles are applied to a document and that the document is viewed by someone who has neither of the two listed "signature" fonts available and who further has no cursive fonts available. In such a circumstance, the entire rule must be ignored by the user agent, and the element <P CLASS="signature"> will be displayed in Verdana, or another sans serif font if Verdana is not available, as shown in Figure 5-6.

Figure 5-6. The result of having no cursive fonts installed

This happens because the element is a paragraph, and since its rule cannot be used, the more generic rule P {font-family: Verdana, sans-serif;} applies. In order to avoid this, a better set of rules would be as follows:

P {font-family: Verdana, sans-serif;}
P.signature {font-family: Author99, ScriptTM, serif;}

This way, the "signature" paragraph is more likely to be in a font different than the rest of the document, as shown in Figure 5-7.

Figure 5-7. Planning for the absence of cursive fonts

All of this fun font-matching stuff crops up again in another realm: selecting the weight of a given font.

Previous | Home | Next
4.2. Summary | Book Index | 5.2. Font Weights


Font Weights (Cascading Style Sheets: The Definitive Guide)

5.2. Font Weights

font-weight

Values

normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900

Initial value

normal

Inherited

yes

Applies to

all elements

Even though you may not realize it, you're already familiar with font weights: boldfaced text is a very common example of an increased font weight. Generally speaking, the darker and "more bold" a font appears, the heavier it is said to be. There are a great many ways to label the heaviness of fonts. For example, the font family known as Zurich has a number of variants such as Zurich Bold, Zurich Black, Zurich UltraBlack, Zurich Light, and Zurich Regular. Each of these uses the same basic font, but each has a different weight.

So let's say that you want to use Zurich for a document, but you'd like to make use of all those different heaviness levels. You could refer to them directly through the font-family property, but you really shouldn't have to do that. Besides, it's no fun having to write a style sheet such as this:

H1 {font-family: 'Zurich UltraBlack', sans-serif;}
H2 {font-family: 'Zurich Black', sans-serif;}
H3 {font-family: 'Zurich Bold', sans-serif;}
H4, P {font-family: Zurich, sans-serif;}
SMALL {font-family: 'Zurich Light', sans-serif;}

Besides the obvious tedium of writing such a style sheet, it only works if everyone has these fonts installed, and it's pretty safe bet that most people don't. It would make far more sense to specify a single font family for the whole document and then assign weights to various elements. You can do this, in theory, using the various values for the property font-weight. A fairly obvious font-weight declaration is this:

B {font-weight: bold;}

This says, simply, that the B element should be displayed using a boldface font; or, to put it another way, a font that is heavier than is normal for the document, as shown in Figure 5-8. This is what we're used to, of course, since B does cause text to be boldfaced.

Figure 5-8. Making the B tag bold

However, what's really happening is that a heavier variant of the font is used for displaying a B element. Thus, if you have a paragraph displayed using Times, and part of it is boldfaced, then there are really two variants of the same font in use: Times and TimesBold. The regular text is displayed using Times, and the boldfaced text uses TimesBold.

5.2.1. How Weights Work

In order to understand how a user agent determines the heaviness, or weight, of a given font variant, not to mention how weight is inherited, it's easiest to start by talking about the keywords 100 through 900. These number keywords were defined to map to a relatively common feature of font design in which a font is given nine levels of weight. OpenType, for example, employs a numeric scale with nine values. If a font has these levels built in, then the numbers are mapped directly to the predefined levels, with 100 as the lightest variant of the font, and 900 as the heaviest.

In fact, there is no intrinsic weight in these numbers. The CSS specification says only that each number corresponds to a weight at least as heavy as the number that precedes it. Thus, 100, 200, 300, and 400 might all map to the same relatively lightweight variant, while 500 and 600 could correspond to the same heavier font variant, and 700, 800, and 900 could all produce the same very heavy font variant. As long as no keyword corresponds to a variant that is lighter than the variant assigned to the previous keyword, then everything will be all right.

As it happens, these numbers are defined to be equivalent to certain common variant names, not to mention other values for font-weight. 400 is defined to be equivalent to normal, and 700 corresponds to bold. The other numbers do not match up with any other values for font-weight, but they can correspond to common variant names. If there is a font variant labeled something such as "Normal," "Regular," "Roman," or "Book," then it is assigned to the number 400 and any variant with the label "Medium" is assigned to 500. However, if a variant labeled "Medium" is the only variant available, it is not assigned to 500.

A user agent has to do even more work if there are less than nine weights in a given font family. In this case, it has to fill in the gaps in a predetermined way:

  • If the value 500 is unassigned, it is given the same font weight as that assigned to 400.

  • If 300 is unassigned, it is given the next variant lighter than 400. If no lighter variant is available, 300 is assigned the same variant as 400. In this case, it will usually be "Normal" or "Medium." This method is also used for 200 and 100.

  • If 600 is unassigned, it is given the next variant darker than 400. If no darker variant is available, 600 is assigned the same variant as 500. This method is also used for 700, 800, and 900.

In order to understand this more clearly, let's look at three examples of font-weight assignment. In the first, assume that the font family Karrank% is an OpenType font and so already has nine weights already defined. In this case, the numbers are assigned to each level, and the keywords normal and bold are assigned to the numbers 400 and 700, respectively.

In our second example, we consider the font family Zurich, which was discussed near the beginning of this section. Hypothetically, its variants might be assigned values for font-weight as shown in Table 5-3.

Table 5-1. Hypothetical Weight Assignments for a Specific Font

Font Face | Assigned Keyword | Assigned Number(s)
Zurich Light |  | 100, 200, 300
Zurich Regular | normal | 400
Zurich Medium |  | 500
Zurich Bold | bold | 600, 700
Zurich Black |  | 800
Zurich UltraBlack |  | 900

The first three number values are assigned to the lightest weight. The Regular face gets the keywords 400 and normal, as expected. Since there is a Medium font, it's assigned to the number 500. There is nothing to assign to 600, so it's mapped to the Bold font face, which is also the variant to which 700 and bold are assigned. Finally, 800 and 900 are assigned to the Black and UltraBlack variants. Note that this last would only happen if those faces had the top two weight levels already assigned. Otherwise, the user agent might ignore them, and assign 800 and 900 to the Bold face instead, or it might assign them both to one or the other of the Black variants.

Finally, let's consider a stripped-down version of Times, in which there are only two weight variants, TimesRegular and TimesBold, as shown in Table 5-2.

Table 5-2. Hypothetical Weight Assignments for Times

Font Face | Assigned Keyword | Assigned Number(s)
TimesRegular | normal | 100, 200, 300, 400, 500
TimesBold | bold | 600, 700, 800, 900

The assignment of the keywords normal and bold is straightforward enough, of course. As for the numbers, 100 through 300 are assigned to the Regular face because there isn't a lighter face available. 400 goes to Regular as expected, but what about 500 ? It is assigned to the Regular (or normal) face because there isn't a Medium face available; thus, it is assigned the same as 400. As for the rest, 700 goes with bold as always, while 800 and 900, lacking a heavier face, are assigned to the Bold font face. Finally, 600 is assigned to the next-heavier face, which is, of course, the Bold face.

font-weight is inherited, so if you set a paragraph to be bold, then all of its children will inherit that boldness, as we see in Figure 5-9.

P.one {font-weight: bold;}

Figure 5-9. Inherited font weight

This isn't unusual, but the situation gets interesting when you use the last two values we have to discuss: bolder and lighter. In general terms, these keywords have the effect you'd anticipate: they make text more or less bold with comparison to its parent's font weight. Let's consider bolder first.

5.2.2. Getting Bolder

If you set an element to have a weight of bolder, then the user agent first must determine what font-weight was inherited from the parent element. It then selects the lowest number which corresponds to a font weight darker than what was inherited. If none is available, then the user agent sets the element's font weight to the next numerical value, unless the value is already 900, in which case the weight remains at 900. Thus, you might encounter the following situations, illustrated in Figure 5-10:

P {font-weight: normal;}
P EM {font-weight: bolder;}  /* results in 'bold' text, evaluates to '700' */

H1 {font-weight: bold;}
H1 B {font-weight: bolder;}  /* if no bolder face exists, evaluates to '800' */

P {font-weight: 100;} /* assume 'Light' face exists ; see explanation */
P STRONG {font-weight: bolder;} /* results in 'normal' text, weight '400' */

Figure 5-10. Text trying to be more bold

In the first example, the user agent moves up the weight ladder from normal to bold ; in numeric terms, this is a jump from 400 to 700. In the second example, H1 text is already set to bold. If there is no bolder face available, then the user agent sets the weight of B text within an H1 to 800, since that is the next step up from 700 (the numeric equivalent to bold). Since 800 is assigned to the same font face as 700, there is no visible difference between normal H1 text and boldfaced H1 text, but nonetheless the weights are different.

In the last example, paragraphs are set to be the lightest possible font weight, which we assume exists as a Light variant. Furthermore, the other faces in this font family are Regular and Bold. Any EM text within a paragraph will evaluate to normal, since that is the next-heaviest face within the font family. However, what if the only faces in the font are Regular and Bold ? In that case, the declarations would evaluate like this:

/*   assume only two faces for this example: 'Regular' and 'Bold'   */
P {font-weight: 100;}   /* looks the same as 'normal' text */
P SPAN {font-weight: bolder;}   /* maps to '700' */

As we can see, the weight 100 is assigned to the normal font face, but the value of font-weight is still 100. Thus, the SPAN text (which is set to be bolder) will inherit the value of 100 and then evaluate to the next-heaviest face, which is the Bold face and which has a numerical weight of 700. Figure 5-11 shows us the visual result of all this.

Figure 5-11. Greater weight will usually confer visual boldness

Let's take this all one step further, and add two more rules, plus some markup, to illustrate how all this works (see Figure 5-12 for the results):

/*   assume only two faces for this example: 'Regular' and 'Bold'   */
P {font-weight: 100;}   /* looks the same as 'normal' text */
P SPAN {font-weight: 400;}   /* so does this */
STRONG {font-weight: bolder;}   /* bolder than its parent */
STRONG B {font-weight: bolder;}   /* bolder still */

<P>
This paragraph contains elements of increasing weight: there is an
<SPAN>SPAN element which contains a <STRONG>strongly emphasized
element, and that contains a <B>boldface element</B></STRONG></SPAN>.
</P>

Figure 5-12. Moving up the weight scale

In the last two nested elements, the computed value of font-weight is increased because of the liberal use of the keyword bolder. If we were to replace the text in the paragraph with numbers representing the font-weight of each element, we would get the results in Figure 5-13:

<P>
100 <SPAN> 400 <STRONG> 700 <B> 800 </B></STRONG></SPAN>.
</P>

Figure 5-13. Changing weight, with the numbers to illustrate it

The first two weight increases are large because they represent jumps from 100 to 400, and from 400 to bold (700). From 700, there is no heavier face, so the user agent simply moves the value of font-weight one notch up the numeric scale (800). Furthermore, if we were to insert a STRONG element into the B element, it would come out like Figure 5-14:

<P>
100 <SPAN> 400 <STRONG> 700 <B> 800 <STRONG> 900
</STRONG></B></STRONG></SPAN>.
</P>

Figure 5-14. Weight numbers, again

If there were yet another B element inserted into the innermost STRONG element, its weight would also be 900, since font-weight can never be higher than 900. Assuming, as we have, that there are only two font faces available, then the text would appear to be either Regular or Bold text, as we see in Figure 5-15:

<P>
regular <SPAN> regular <STRONG> bold <B> bold
<STRONG> bold </STRONG></B></STRONG></SPAN>.
</P>

Figure 5-15. Visual weight, with descriptors

5.2.3. Lightening Weights

As you might expect, lighter works in just the same way, except that it causes the user agent to move down the weight scale, instead of up. With a quick modification of the previous example, we can see this very clearly:

/*   assume only two faces for this example: 'Regular' and 'Bold'   */
P {font-weight: 900;}   /* as bold as possible, which will look 'bold' */
P SPAN {font-weight: 700;}   /* this will also be bold */
STRONG {font-weight: lighter;}   /* lighter than its parent */
B {font-weight: lighter;}   /*lighter still */

<P>
900 <SPAN> 700 <STRONG> 400 <B> 300 <STRONG> 200
</STRONG></B></STRONG></SPAN>.
</P>
<!-- ...or, to put it another way... -->
<P>
bold <SPAN> bold <STRONG> regular <B> regular
<STRONG> regular </STRONG></B></STRONG></SPAN>.
</P>

Ignoring the fact that this would be entirely counterintuitive, what we see in Figure 5-16 is that the main paragraph text has a weight of 900 and the SPAN aweight of 700. When the STRONG text is set to lighter, it evaluates to the next-lighter face, which is the regular face, or 400 (the same as normal) on the numeric scale. The next step down is to 300, which comes out the same as normal since no lighter faces exist. From there, the user agent can only reduce the weight one numeric step at a time until it reaches 100 (which it doesn't do in the example). The second paragraph shows which text will be bold, and which regular.

Figure 5-16. Making text lighter

Previous | Home | Next
5. Fonts | Book Index | 5.3. Font Size


Font Size (Cascading Style Sheets: The Definitive Guide)

5.3. Font Size

The methods for determining font size are both very familiar and very different.

font-size

Values

xx-small | x-small | small | medium | large | x-large | xx-large | smaller | larger | <length> | <percentage>

Initial value

medium

Inherited

yes

WARNING

Percentage elements refer to parent element's font size.

Applies to

all elements

In a fashion very similar to the font-weight keywords bolder and lighter, the property font-size has relative-size keywords called larger and smaller. Much as we saw with relative font weights, these keywords cause the computed value of font-size to move up and down a scale of absolute values, which we'll need to understand before we can explore larger and smaller. First, though, we need to explore how fonts are sized in the first place.

In fact, the relation of the font-size property to what you actually see rendered is determined by the font's designer. This relationship is set as an em square (some call it an em box) within the font itself. This em square, and thus the font size, doesn't have to refer to any boundaries established by the characters in a font themselves. Instead, it refers to the distance between baselines when the font is set without any extra leading (line-height in CSS). It is quite possible for fonts to have characters that are taller than the default distance between baselines. For that matter, a font might be defined such that all of its characters are smaller than its em square. Some hypothetical examples are shown in Figure 5-17.

Figure 5-17. Fonts and font size

Thus, the effect of font-size is to provide a size for the em box of a given font. This does not guarantee that any of the actual characters which are displayed will be this size.

5.3.1. Absolute Sizes

Having established all that, we turn now to the absolute-size keywords. There are seven absolute-size values for font-size: xx-small, x-small, small, medium , large, x-large, and xx-large. These are not defined precisely, but are relative to each other, as Figure 5-18 demonstrates:

P.one {font-size: xx-small}
P.two {font-size: x-small;}
P.three {font-size: small;}
P.four {font-size: medium;}
P.five {font-size: large;}
P.six {font-size: x-large;}
P.seven {font-size: xx-large;}

Figure 5-18. Absolute font sizes

According to the CSS1 specification, the difference (or scaling factor) between one absolute size and the next should about 1.5 going up the ladder, or 0.66 going down. Thus, if medium is the same as 10px , then large should be the same as 15px . On the other hand, the scaling factor does not have to be 1.5; not only might it be different for different user agents, but it's already been changed to a factor of 1.2 by CSS2.

Working from the assumption that medium equals 12px, for different scaling factors, we get the absolute sizes shown in Table 5-3. (The values are approximations, of course.)

Table 5-3. Scaling Factors Translated to Points

Keyword | Scaling: 1.5 | Scaling: 1.3 | Scaling: 1.2
xx-small | 4px | 5px | 6px
x-small | 6px | 7px | 8px
small | 8px | 9px | 10px
medium | 12px | 12px | 12px
large | 18px | 16px | 14px
x-large | 27px | 21px | 17px
xx-large | 42px | 27px | 20px

In general, these sizes are precomputed by browsers and do not change once they have been computed. Thus, if a browser considers x-large to be 27px, then it will be that size no matter what happens. This is a shame, because it would make far more sense (and be more in line with the aims of CSS) to have the absolute sizes recomputed whenever users change their browser preferences.

Further complicating the situation is the fact that different user agents can assign the "default" font size to different absolute keywords. Take the Version 4 browsers as an example: Navigator makes medium the same size as unstyled text, whereas Internet Explorer assumes that small text is equivalent in size to unstyled text. Despite the fact that the default value for font-style is supposed to be medium, Internet Explorer's behavior isn't quite so wrongheaded as it might first appear.[2]

[2]Note that there are seven absolute-size keywords, just as there are seven FONT sizes (e.g., <FONT SIZE="5">). Since the typical default font size has historically been 3, it makes some sense that the third value on the CSS absolute-size keyword list would be used to indicate a default font size. Since the third keyword turns out to be small, you get Explorer's behavior. Technically, Microsoft has included this default style: BODY {font-size: small;}. The only way to override it is to explicitly declare a value of medium, but then the document's font size would be different in Internet Explorer than in Navigator.

5.3.2. Relative Sizes

Compared to all this, the keywords larger and smaller are simple to understand: they cause the size of an element to be shifted up or down the absolute-size scale, relative to their parent element, using the same scaling factor employed to calculate absolute sizes. In other words, if the browser used a scaling factor of 1.2 for absolute sizes, then it should use the same factor when applying relative-size keywords. Thus:

P {font-size: medium;}
STRONG, EM {font-size: larger;}

<P>This paragraph element contain <STRONG>a strong-emphasis element
which itself contains <EM>an emphasis element that also contains
<STRONG>a strong element.</STRONG></EM></STRONG></P>

<P> medium <STRONG>large <EM> x-large
<STRONG>xx-large</STRONG></EM></STRONG></P>

Thanks to the way font-size operates, the sizes get larger (or smaller) as shown in Figure 5-19.

Figure 5-19. Relative font sizing

Unlike the relative values for weight, the relative-size values are not necessarily constrained to the limits of the absolute-size range. Thus, a font's size can be pushed beyond the values for xx-small and xx-large. For example:

H1 {font-size: xx-large;}
EM {font-size: larger;}

<H1>A Heading with <EM>Emphasis</EM> added</H1>
<P>This paragraph has some <EM>emphasis</EM> as well.</P>

<H1> xx-large <EM> xx-large </EM> xx-large </H1>
<P> medium <EM>large </EM> medium </P>

As we can see in Figure 5-20, the emphasized text in the H1 element is slightly larger than xx-large. The amount of scaling is left up to the user agent, with the recommended scaling factor of 1.2 being preferred. The EM text in the paragraph, of course, is shifted one slot up the absolute-size scale (large).

Figure 5-20. Relative font sizing at the edges of the absolute sizes

5.3.3. Percentages and Sizes

In a way, percentage values are very similar to the relative-size keywords in that a percentage value is always computed in terms of whatever size is inherited from an element's parent. Percentages, unlike the relative-size keywords, permit much finer control over the computed font size. Consider the following, illustrated in Figure 5-21:

P {font-size: 12px;}
EM {font-size: 120%;}
STRONG {font-size: 135%;}
SMALL, .fnote {font-size: 75%;}

<P>This paragraph contains both <EM>emphasis</EM> and <STRONG>strong
emphasis</STRONG>, both of which are larger than their parent element.
The <SMALL>small text</SMALL>, on the other hand, is smaller by a quarter.</P>
<P CLASS="fnote">This is a 'footnote' and is smaller than regular text.</P>

<P> 12px <EM> 14.4px </EM> 12px <STRONG> 16.2px </STRONG>  12px
<SMALL> 9px </SMALL> 12px </P>
<P CLASS="fnote"> 9px </P>

Figure 5-21. Throwing percentages into the mix

In this example, the exact pixel size values are shown. In practice, a web browser would very likely not round the values off to the nearest whole-number point size, such as 14px, but instead would use fractional sizes.

Incidentally, CSS defines the length value em to be equivalent to percentage values, in the sense that 1em is the same as 100%. Thus, the following would yield identical results:

P.one {font-size: 166%;}
P.two {font-size: 1.6em;}

When using em measures, the same principles apply as with percentages, such as the inheritance of computed sizes and so forth.

5.3.4. Font Size and Inheritance

In CSS, although font-size is inherited, it is the computed values that are inherited, not percentages, as shown in Figure 5-21. Thus, the value inherited by the STRONG element is 12px, and this value is modified by the declared value 135% to arrive at 16.2 pixels (which might be rounded off to 16 pixels).

As with the relative-size keywords, percentages are effectively cumulative. Thus, the following markup is displayed as shown in Figure 5-22:

P {font-size: 12px;}
EM {font-size: 120%;}
STRONG {font-size: 135%;}

<P>This paragraph contains both <EM>emphasis and <STRONG>strong
emphasis</STRONG></EM>, both of which are larger than the paragraph text. </P>

<P> 12px <EM>14.4px <STRONG>19.44px</STRONG></EM> 12px  </P>

Figure 5-22. The issues of inheritance

The size value for the STRONG element shown in Figure 5-22 is computed as follows:

12 px x 120% = 14.4 px

14.4 px x 135% = 19.44 px (possibly rounded to 19 px)

There is an alternative scenario, however, in which the final value is slightly different. In this scenario, the user agent rounds off pixel size, and these rounded values are then inherited normally by any child elements. Thus, we would have:

12 px x 120% = 14.4 px [14.4 px [image] 14 px]

14 px x 135% = 18.9 px [18.9 px [image] 19 px]

If one assumes that the user agent is rounding off at each step, then the end result of both this calculation and the previous one is the same: 19 pixels. However, as more and more percentages are multiplied together, the rounding errors will begin to accumulate. This shouldn't be a major problem -- after all, CSS doesn't guarantee you precise control over anything -- but it is still a factor to consider.

5.3.5. Using Length Units

The font-size can be set using any of the length values discussed in detail in Chapter 3, "Units and Values". In a 72 dots-per-inch (dpi) environment, all of the following font-size declarations should be equivalent:

P.one {font-size: 36pt;}   /* assuming 72 dpi, these are all the same thing */
P.two {font-size: 3pc;}
P.three {font-size: 0.5in;}
P.four {font-size: 1.27cm;}
P.five {font-size: 12.7mm;}

Correct display assumes that the user agent knows how many dots per inch are used in the display medium. Different user agents make different assumptions -- some based on the operating system, some based on preferences settings, and some based on the assumptions of the programmer who wrote the user agent. However, the five lines should always be the same size. So, while the result may not exactly match reality (for example, the actual size of P.three may not be half an inch), the measures should all be consistent to one another.

There is one more value that is potentially the same as those just discussed, and that's 36px , which would be the same physical distance if the display medium is 72 pixels per inch (ppi). However, there are very few monitors with that setting anymore. Most are much higher, in the range of 96 dpi to 120 ppi. Despite this, many Macintosh web browsers tend to treat points (pt) and pixels (px) as though they were equivalent, so the values 14pt and 14px may look the same on a Macintosh. This is not the case, however, for Windows and other platforms, which is one of the primary reasons why points can be a very difficult measure to use in document design.

The variations between operating systems are a primary reason why many authors choose to use pixel values for font sizes. This approach is especially attractive when mixing text and images together on a web page, since text can (in theory) be set to the same height as graphic elements on the page by declaring font-size: 11px; or something similar, as illustrated by Figure 5-23.

Figure 5-23. Keeping text and graphics in scale with pixel sizes

Using pixel measures is certainly one way to get "consistent" results with font-size (and, indeed, with any length at all), but remember what can happen when a user agent mistakenly defines "pixel" to be the same as "smallest dot." In a 300-dpi environment, that will make text nearly twenty times smaller than was likely intended. In addition, pixel-sized text will be of different physical sizes on different monitors, and under different resolutions, such that any use of px for measurements effectively prohibits the use of measurements such as in and cm within the same document. In fact, if you're designing for display in a web browser, it's generally best to avoid length units altogether. The other approaches shown in this chapter, such as keywords and percentages, are a much more robust (and user-friendly) way to go.

Previous | Home | Next
5.2. Font Weights | Book Index | 5.4. Styles and Variants


Styles and Variants (Cascading Style Sheets: The Definitive Guide)

5.4. Styles and Variants

In comparison with everything that's gone before, this section is practically a no-brainer. The properties discussed herein are so straightforward, and the complexities so minimal, that this will probably all come as a great relief. First we'll talk about font-style, and then move on to font-variant before wrapping up the font properties.

5.4.1. Fonts with Style

font-style is very simple: it's used to select between normal text, italic text, and oblique text. That's it! The only complications are in recognizing the difference between italic and oblique text and knowing why browsers don't always give you a choice anyway.

font-style

Values

italic | oblique | normal

Initial value

normal

Inherited

yes

Applies to

all elements

The default value of font-style is, as we can see, normal. This refers to "upright" text, which is probably best described as "text that is not italic or otherwise slanted." The vast majority of text in this book is upright, for instance.

That leaves only an explanation of the difference between italic and oblique text. For that, it's easiest to turn to Figure 5-24, which illustrates the differences very clearly.

Figure 5-24. Italic and oblique text in detail

Basically, italic text is in some way its own font, with small changes made to the structure of each letter to account for the altered appearance. This is especially true of serif fonts, where in addition to the fact that the text characters "lean," the serifs may be altered in an italic face. Oblique text, on the other hand, is simply a slanted version of the normal, upright text. Font faces with labels like Italic, Cursive, and Kursiv are usually mapped to the italic keyword, while oblique can be assigned faces with labels such as Oblique, Slanted, and Incline.

If you wanted to make sure that a document uses italic text in familiar ways, you could write a style sheet like this:

P {font-style: normal;}
EM, I {font-style: italic;}

As we can see in Figure 5-25, these styles would make paragraphs use an upright font, as usual, and cause the EM and I elements to use an italic font -- again, as usual.

Figure 5-25. Ordinary document behavior through CSS

On the other hand, you might decide that there should be a subtle difference between EM and I:

P {font-style: normal;}
EM {font-style: oblique;}
I {font-style: italic;}

If you look closely at Figure 5-26, you'll see there is no apparent difference between the EM and I elements. In practice, not every font is so sophisticated as to have both an italic face and an oblique face, and even fewer web browsers are sophisticated enough to tell the difference when both faces do exist.

Figure 5-26. More font styles

If either of these is the case, a few things can happen. If there is no Italic face, but there is an Oblique face, then the latter can be used for the former. If the situation is reversed -- an Italic face exists, but there is no defined Oblique face -- the user agent may not substitute the former for the latter, according to the CSS specification. Finally, the user agent can simply generate the oblique face by computing a slanted version of the upright font. In fact, this is what most often happens in a digital world, where it's fairly easy to slant a font using a simple computation.

Furthermore, you may find that in some operating systems, a given font that has been declared to be italic may switch from being italic to oblique depending on the actual size of the font. The display of Times on a Macintosh, for example, is as shown in Figure 5-27, and the only difference there is a single point in size.

Figure 5-27. Same font, same style, different sizes

There isn't much that can be done about this, unfortunately, save better font handling by operating systems. Usually, the italic and oblique fonts look exactly the same in web browsers.

Still, font-style can be useful. For example, it is a common typographic convention that a block quote should be italicized, but that any specially emphasized text within the quote should be upright. In order to employ this effect, shown in Figure 5-28, you would use these styles:

BLOCKQUOTE {font-style: italic;}
BLOCKQUOTE EM, BLOCKQUOTE I {font-style: normal;}

Figure 5-28. Common typographical conventions through CSS

5.4.2. Font Variations

In addition to sizes and styles, fonts can also have variants. CSS offers a way to address one very common variant.

font-variant

Values

small-caps | normal

Initial value

normal

Inherited

yes

Applies to

all elements

As for font-variant, it has but two values: the default of normal, which describes ordinary text, and small-caps, which calls for the use of small caps text. If you aren't familiar with such an effect, It Looks Something Like This . Instead of upper- and lowercase letters, a small-caps font employs uppercase letters of different sizes. Thus you might see something like the following, shown in Figure 5-29:

H1 {font-variant: small-caps;}
P {font-variant: normal;}

<H1>The Uses of font-variant</H1>
<P>
The property <CODE>font-variant</CODE> is very interesting...
</P>

Figure 5-29. Small caps in use

As you may notice, in the display of the H1 element, there is a larger uppercase letter wherever an uppercase letter appears in the source and a small uppercase wherever there is a lowercase letter in the source. This may remind you rather strongly of text-transform: uppercase, with the only real difference that here, the uppercase letters are of different sizes. That's true, but the reason that small-caps is declared using a font property is that some fonts have a specific small-caps face. Thus, a font property is used to select that face.

What happens if no such face exists? There are two options provided in the specification. The first is for the user agent to create a small-caps face by scaling uppercase letters on its own. The second is simply to make all letters uppercase and the same size, exactly as if the declaration text-transform: uppercase; had been used instead, as shown in Figure 5-30. This is obviously not an ideal solution, but it is permitted.

H1 {font-variant: small-caps;}

Figure 5-30. Legal, if not optimal, rendering of small caps

WARNING

Of the browsers which even recognize font-variant: small-caps (Explorer 4 and 5, and Opera 3.5), only Opera and IE5 for Macintosh do what authors would expect in the display of the text. Other versions of Explorer take the all-capitals route.

Previous | Home | Next
5.3. Font Size | Book Index | 5.5. Using Shorthand: The font Property


Using Shorthand: The font Property (Cascading Style Sheets: The Definitive Guide)

5.5. Using Shorthand: The font Property

All of these properties are very sophisticated, of course, but using them all could start to get a little tedious:

H1 {font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 30px;
   font-weight: 900; font-style: italic; font-variant: small-caps;}
H2 {font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 24px;
   font-weight: bold; font-style: italic; font-variant: normal;}

Some of that could be solved by grouping selectors, but wouldn't it be easier to combine everything into a single property? Enter font, which is the shorthand property for all the other font properties (and a little more besides).

font

Values

[ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height> ]? <font-family>

Initial value

refer to individual properties

Inherited

yes

Applies to

all elements

Generally speaking, a font declaration can have one value from each of the other font properties. Thus the preceding example could be shortened, while having exactly the same effect as the preceding example (illustrated by Figure 5-31):

H1 {font: italic 900 small-caps 30px Verdana, Helvetica, Arial, sans-serif;}
H2 {font: bold normal italic 24px Verdana, Helvetica, Arial, sans-serif;}

Figure 5-31. Typical font rules

I say that the styles "could be" shortened in this way because there are a few other possibilities, thanks to the relatively loose way in which font can be written. If you look closely at the preceding example, you'll see that the first three values don't occur in the same order. In the H1 rule, the first three values are the values for font-style, font-weight, and font-variant, in that order, whereas in the second, they're ordered font-weight, font-variant, and font-style. There is nothing wrong here, because these three can be written in any order. Furthermore, if any of them has a value of normal, that can be left out altogether.

H1 {font: italic 900 small-caps 30px Verdana, Helvetica, Arial, sans-serif;}
H2 {font: bold italic 24px Verdana, Helvetica, Arial, sans-serif;}

In this example, the value of normal was left out of the H2 rule, but the effect is exactly the same as in Figure 5-31.

It's important to realize, however, that this free-for-all situation only applies to the first three values of font. The last two are much more strict in their behavior. Not only must font-size and font-family appear in that order as the last two values in the declaration, but both must always be present in a font declaration. Period, end of story. If either is left out, then the entire rule will be invalid, and very likely ignored completely by a user agent. Thus the following rules will get you the result shown in Figure 5-32:

H1 {font: normal normal italic 30px sans-serif;}   /* no problem here */
H2 {font: 1.5em sans-serif;}   /* also fine; omitted values set to 'normal' */
H3 {font: sans-serif;}   /* INVALID--no 'font-size' provided */
H4 {font: light 24pt;}   /* INVALID--no 'font-family' provided */

Figure 5-32. The necessity of both size and family

5.5.1. Adding the Line Height

So far, we've treated font as though it has only five values, which isn't quite true. It is also possible to set the line-height using font, despite that fact that line-height is a text property, not a font property. It's done as a sort of addition to the font-size value, separated from it by a forward slash (/):

H2 {font: bold italic 200%/1.2 Verdana, Helvetica, Arial, sans-serif;}

This rule, demonstrated in Figure 5-33, sets all H2 elements to be bold and italic, using the face for one of the sans serif font families, plus it sets the font-size to 24px and the line-height to 30px .

Figure 5-33. Adding line height to the mix

This addition of a value for line-height is entirely optional, just as the first three font values are, and need only be present if it is needed for some reason. Remember, however, that the font-size always comes before line-height, never after, and the two are separated by a slash.

This may seem repetitive, but it's one of the most common errors by CSS authors, so I can't say it enough times: the required values for font are font-size and font-family, in that order. Everything else is strictly optional.

Previous | Home | Next
5.4. Styles and Variants | Book Index | 5.6. Font Matching


Font Matching (Cascading Style Sheets: The Definitive Guide)

5.6. Font Matching

As we've seen, CSS allows for the matching of font families, weights, and variants. This is done through font matching, which is a vaguely complicated procedure. Understanding it is important for authors who wish to help user agents make good font selections when displaying their documents. I left it for the end of this chapter because it's not really necessary to understand how the font properties work, and some people will probably want to skip this part and go on to Chapter 6, "Colors and Backgrounds". If you're still interested, here's how font matching works.

In the first step of font matching, the user agent creates, or otherwise accesses, a database of font properties. This database lists the various CSS1 properties of all the fonts to which the UA has access. Typically, this will be all fonts installed on the machine, although there could be others (for example, the UA could have its own built-in fonts). If the UA encounters two identical fonts, it will simply ignore one of them.

Second, the UA takes apart an element to determine which font properties have been applied, and constructs a list of font properties necessary for the display of that element. Based on that list, the UA makes an initial choice of a font family to use in displaying the element. If there is a complete match, then the UA can use that font. Otherwise, it needs to do a little more work.

Third, if there was no font match in step two, the UA looks for alternate fonts within the same font family. If it finds any, then it repeats step two for that font.

Fourth, assuming a generic match has been found, but it doesn't contain everything needed to display a given element -- the font is missing the copyright symbol, for instance -- then the UA goes back to step three, which entails a search for another alternate font and another trip through step two.

Finally, if no match has been made and all alternate fonts have been tried, the UA selects the default font for the given generic font family and does the best it can to display the element correctly.

As you can see, step two gets visited a lot in this process. It can be broken down into more precise steps:

  1. A font is first matched against the font-style. The keyword italic is matched by any font which is labeled as either "italic" or "oblique." If neither is available, then the match fails.

  2. The next match attempt is on font-variant. Any font which is not labeled "small-caps" is assumed to be normal. A font can be matched to small-caps by any font which is labeled as "small-caps," by any font which allows the synthesis of a small-caps style, or by any font where lowercase letters are replaced by uppercase letters.

  3. The next match is to font-weight, which can never fail, thanks to the way font-weight is handled under CSS1.

  4. Finally, font-size is tackled. This must be matched within a certain tolerance, but the tolerance is left to the user agent to define. Thus, one user agent might allow matching within a 20% margin of error, whereas another might allow only 10% differences between the size specified and the size that is actually used.

The whole process is long and tedious, but it helps to understand how user agents pick the fonts they do. For example, you might specify the use of Times or any other serif font in a document, to get what's shown in Figure 5-34.

BODY {font-family: Times, serif;}

Figure 5-34. The end result of font matching

For each element, the user agent should examine the characters in that element and determine whether Times can provide characters to match. In most cases, it can do so with no problem. Assume, however, that a Chinese character has been placed in the middle of a paragraph. Times has nothing that can match this character, so the user agent has to either work around the character or look for another font that can fulfill the needs of displaying that element. Of course, any Western font is highly unlikely to contain Chinese characters, but should one exist (let's call it AsiaTimes), the user agent could use it in the display of that one element -- or simply for the single character. Thus, the whole paragraph might be displayed using AsiaTimes, or everything in the paragraph might be in Times except for the single Chinese character, which is displayed in AsiaTimes.

Previous | Home | Next
5.5. Using Shorthand: The font Property | Book Index | 5.7. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

5.7. Summary

Although authors cannot count on a specific font being used in a document, they can very easily specify generic font families to be used. This particular behavior is generally very well supported, since any user agent that didn't let authors (or even readers) assign fonts would quickly find itself out of favor.

As for the other areas of font manipulation, support varies. Changing the size of fonts usually works well, but twentieth-century implementations ranged from frustratingly simplistic to very nearly correct in this area. The frustrating part for authors, though, is usually not how font sizing is supported, but how a unit they want to use (points) can yield very different results in different media, or even different operating systems and user agents. The dangers of using points are many, and using length units for web design is generally not a good idea. Percentages, em units, and ex units are usually best for changing font sizes, since these scale very well in all common display environments.

Now that we've worked our way through altering text and fonts, let's turn to ways to style the elements that contain the text.

Previous | Home | Next
5.6. Font Matching | Book Index | 6. Colors and Backgrounds


Colors and Backgrounds (Cascading Style Sheets: The Definitive Guide)

Chapter 6. Colors and Backgrounds

Contents:

Colors
Complex Backgrounds
Summary

Many of you will no doubt remember the first time you changed the colors of a web page. Instead of the old black text on a gray background with blue links, all of a sudden you could use any combination of colors you desired -- perhaps light blue text on a black background with lime green hyperlinks. From there, you probably moved on to putting images in the background and combining background images with appropriately colored text to make some really cool-looking pages.

Eventually, though, one comes to realize that setting a single color for all of the text in a page just isn't enough. That's how <FONT COLOR="..."> came into being. Without it, you wouldn't be able to have pages where some text is black, some red, and some white, for example.

Now, thanks to the power of CSS, you can have many, many different colors within a single page, and without using a single FONT tag. This gives authors the ability to set up pages where the main text is black with a white background, but the navigational hyperlinks along the side of the page are black on a light purple background. There are almost infinite possibilities: defining red text for warnings, using a dark purple to make boldfaced text even more obvious, setting each heading to be a different shade of green, and on and on.

Of course, this means that when you're designing a page, you need to put some thought into it first. That's generally true in any case, but with colors, it's even more so. For example, if you're going to set all hyperlinks to be yellow, will that clash with the background color in any part of your document? If you use too many colors, will the user be too overwhelmed? If you change the default hyperlink colors, will users still be able to figure out where your links are? If you set both regular text and hyperlink text to be the same color, for instance, then it will be much harder to spot links -- in fact, almost impossible if the user's links aren't underlined.

Despite all these issues, the ability to change the colors of elements is something almost every author will want to use, probably quite often. Used properly, colors can really strengthen the presentation of a document. Once you've decided how you plan to use color, you have to decide how you'll apply it, since some approaches will require the use of classes as well as simple element selectors.

As an example, let's say you have a design where all H1 elements should be green, most H2 elements should be blue, and all hyperlinks should be dark red. However, in some cases H2 elements should be dark blue because they're associated with different types of information. The simplest way to handle this is to put a class of dkblue on each H2 that needs to be dark blue and declare the following:

H1 {color: green;}
H2 {color: blue;}
H2.dkblue {color: navy;}
A:link {color: maroon;}   /* a good dark red color */

Any H2 which should be dark blue would then be marked up as <H2 CLASS="dkblue">...</H2>.

TIP

It's actually better to pick class names that are descriptive of the type of information contained within, not of the visual effect you're trying to achieve at the moment. For example, let's say that we want the dark blue color to be applied to all H2 elements that are subsection headings. It would be much better to pick a class name like subsec or even sub-section. Both of these names have the advantage of actually meaning something -- and, furthermore, of being independent of any presentational concepts. After all, you might decide later to make all subsection titles dark red instead of dark blue, and the statement H2.dkblue {color: maroon;} is a little silly.

From this simple example, we draw the general lesson that when you're planning to use styles, it's generally to your advantage to plan ahead and use all of the tools you can. To take the preceding example a little further, suppose that a navigational bar is added to the page. Within this bar, hyperlinks should be yellow, not dark red. If the bar is marked with an ID of navbar, then you need only add this rule:

#navbar A:link {color: yellow;}

This will change the color of hyperlinks within the navigation bar without affecting other hyperlinks throughout the document.

6.1. Colors

There is really only one type of color in CSS, and that's plain, solid color. If you set the background of a page to be red, then the entire background will be the same shade of red. This is no different than what's been possible in HTML up until now, of course. When you declare <BODY LINK="blue" VLINK="blue">, you probably expect that all hyperlinks will be the same shade of blue, no matter where they are in the document.

Well, don't change that thinking when you're using CSS. If you use CSS to set the color of all hyperlinks (both visited and unvisited) to be blue, then that's what they'll be. In the same way, if you use styles to set the background of a page to be green, then the entire page background will be the same shade of green throughout the entire document. If you set the background of H1 elements to be navy, then the whole background of every H1 will be the same dark blue color.

In CSS, you can set both the foreground and background colors of any element, from the BODY down to the underline and italics tags, and almost everything in between -- list items, entire lists, headings, hyperlinks, table cells, form elements, and even (in a limited fashion) images. In order to understand how this works, though, it's important to understand what's in the foreground of an element and what isn't.

What's the foreground of an element? Generally speaking, it's the text of an element, although that isn't the whole story: the borders around an element are also considered to be part of its foreground. Thus, there are two ways to directly affect the foreground color of an element: by using the color property and by setting the border colors using one of a number of border properties. Primarily there is the border-color property, as well as shorthand properties such as border-top, border-right, border-bottom , border-left, and border.

The background of an element is all of the space behind the foreground, out to the edge of the borders; thus, the content box and the padding are all part of an element's background. There are two ways to set the background color: the background-color and background properties.

6.1.1. Foreground Colors

The easiest way to set the foreground color of an element is with the property color.

color

Values

<color>

Initial value

UA specific

Inherited

yes

Applies to

all elements

This property accepts as a value any valid color, as discussed in Chapter 3, "Units and Values", such as #FFCC00 or rgb(100%,80%,0%). It has the effect of setting the color of the text in the element, as shown in Figure 6-1:

<P STYLE="color: gray;">This paragraph has a gray foreground.</P>
<P>This paragraph has the default foreground.</P>

Figure 6-1. Declared color versus default color

TIP

In Figure 6-1, the default foreground color is black. That doesn't have to be the case, since users might have set their browsers (or other user agents) to use different foreground (text) colors. If the default text were set to green, the second paragraph in the preceding example would be green, not black -- but the first paragraph would still be gray.

You need not restrict yourself to such simple operations, of course. There are plenty of ways to use color. You might have some paragraphs that contain text warning the user of a potential problem. In order to make this text stand out more than usual, you might decide to color it red. All that's needed is a class of warn on each paragraph that contains warning text (<P CLASS="warn">) and the following rule:

P.warn {color: red;}

In the same document, you decide that any links within a warning paragraph should be green. Thus:

P.warn {color: red;}
P.warn A:link {color: green;}

Then you change your mind, deciding that warning text should be gray and that links in such text should be silver. The preceding rules need only be changed to reflect the new values:

P.warn {color: gray;}
P.warn A:link {color: silver;}

Another use for color is to draw attention to certain types of text. For example, boldfaced text is already fairly obvious, but you could give it a different color to make it stand out even further:

B {color: maroon;}

Then you decide that you want all table cells with a class of highlight to contain yellow text:

TD.highlight {color: yellow;}

This sets the foreground color of all elements within any table cell with a class of highlight to be yellow, as shown in Figure 6-2:

Figure 6-2. Highlighting a table cell contents

6.1.1.1. BODY attributes

There are many uses for color, of course, the most basic of which is to replace the BODY attributes TEXT, LINK , ALINK , and VLINK. In conjunction with the anchor pseudo-classes, color can replace these BODY attributes outright. The first line in the following example can be rewritten with the subsequent CSS, and either will have the result depicted in Figure 6-3:

<BODY TEXT="black" LINK="#808080" ALINK="silver" VLINK="#333333">

BODY {color: black;}     /* replacement CSS */
A:link {color: #808080;}
A:active {color: silver;}
A:visited {color: #333333;}

Figure 6-3. Replacing BODY attributes with CSS

While this may seem like a lot of extra typing, consider that using the old method of BODY attributes, you could only make changes at the document level. For example, if you wanted some links to be medium gray and others a relatively dark gray, you couldn't do that with the BODY attributes. Instead, you'd have to use <FONT COLOR="#666666"> on every single anchor that needed to be relatively dark. Not so with CSS; all you need to do is add a class to all anchors that need to be this shade of gray and modify your styles accordingly, with the result seen in Figure 6-4:

BODY {color: black;}
A:link {color: #808080;}      /* medium gray */
A.external:link  {color: silver;}
A:active {color: silver;}
A:visited {color: #333333;}   /* a very dark gray */

Figure 6-4. Changing colors of hyperlinks

This sets all anchors with the class external (<A CLASS="external" HREF="...">) to be silver, instead of medium gray. They'll still be a dark gray once they've been visited, of course, unless you add a special rule for that as well:

BODY {color: black;}
A:link {color: #808080;}      /* medium gray */
A.external:link  {color: #666666;}
A:active {color: silver;}
A:visited {color: #333333;}   /* a very dark gray */
A.external:visited {color: black;}

This will cause all external links to be medium gray before they're visited and black once they've been visited, while all other links will be dark gray when visited and medium gray when unvisited -- as Figure 6-5 makes clear.

Figure 6-5. Setting different colors for different hyperlink classes

This sort of thing simply isn't possible with the old BODY attributes. Furthermore, if you're going to use the BODY attributes, you have to define them in each and every document. If you ever decide to change those values ...well, you have a lot of files to edit, don't you? On the other hand, if you set up these colors as an external style sheet, and then link all of your pages to the style sheet, then you only have to edit one file in order to change the text colors of every last one of your pages.

6.1.1.2. Affecting borders

The value of color can also affect the borders around an element. Let's assume that you've declared these styles, which have the result shown in Figure 6-6:

P.aside {color: gray; border-style: solid;}

Figure 6-6. Border colors are taken from the content's color

This will result in the element <P CLASS="aside"> having gray text and a gray medium-width solid border. That's because the foreground color is applied to the borders by default. The basic way to override that is with the property border-color:

P.aside {color: gray; border-style: solid; border-color: black;}

This will make the text gray, but the borders will be black in color, as we can see from Figure 6-7. Any value set for border-color will always override the value of color.

Figure 6-7. Overriding the default border color

It's in the borders, incidentally, where you can have an effect on the foreground color of images. Since images are already composed of colors, you can't really affect them using color, but you can change the color of any border that appears around the image. This can be done using either color or border-color. Therefore, the following rules will have the same visual effect on images of class type1 and type2, as shown in Figure 6-8:

IMG.type1 {color: gray; border-style: solid;}
IMG.type2 {border-color: gray; border-style: solid;}

Figure 6-8. Setting the border color for images

Border colors, and borders in general, are all discussed in much greater detail in the Chapter 7, "Boxes and Borders".

6.1.1.3. Inheriting color

By this time, you may have guessed that color is inherited, and you're right. This makes good sense, since if you declare P {color: maroon;}, you probably expect that any text within that paragraph will also be maroon, even if it's emphasized or boldfaced or whatever. Of course, if you want such elements to be different colors, that's easy enough, as illustrated by Figure 6-9:

P {color: maroon;}
EM {color: #999999;}

Figure 6-9. Different colors for different elements

Thanks to the inheritability of color, it's theoretically possible to set all of the ordinary text in a document to be a color such as red by declaring BODY {color: red;}. This should cause all text which is not otherwise styled (such as anchors, which have their own color styles) to be red. This should not affect elements such as horizontal rules ( HR ) or images. However, early versions of Explorer did inherit colors onto HR elements, while they didn't allow the colors to inherit onto form elements. This is more of a problem with inheritance than it is with color, but unfortunately the problem is still there. In fact, even today it's possible to find browsers that have predefined colors for things like tables, which prevent BODY colors from inheriting into table cells:

BODY {color: red;}
TABLE {color: black;}

That's because the combination of your style, and the browser's built-in styles looks like Figure 6-10.

Figure 6-10. The result of combining author styles and browser styles

Since there is a color value defined by the browser for TABLE elements, it will take precedence over the inherited value. This is annoying and unnecessary, but it is an obstacle to be overcome. You can overcome it (usually) with selectors that list various table elements. For example, in order to get all your table content to be red along with your document's body, try this:

BODY, TABLE, TD, TH {color: red;}

This will often solve the problem. I say "often" because it doesn't always work, for reasons that are poorly understood. Navigator 4 has the most trouble getting it right, but its failures are not consistent. The best minds in CSS analysis have yet to come up with a recipe for predicting Navigator's behavior, unfortunately.

WARNING

Something else to watch out for is Navigator 4's handling of values for color that it doesn't recognize. If Navigator 4 encounters an unknown word (such as invalidValue) somehow, through mechanisms known only to itself, it actually arrives at and uses a color. It doesn't do so randomly, exactly, but the effect is practically the same. For example, invalidValue comes out as a dark blue, and inherit, which is a valid value under CSS2 but not CSS1, will come out as a really awful shade of yellow-green. This is not correct behavior, but you'll need to remember it as you write your styles.

6.1.1.4. Affecting form elements

Setting a value for color should (in theory, anyway) apply to form elements. As Figure 6-11 proves, declaring SELECT elements to have dark gray text is as simple as this:

SELECT {color: rgb(33%,33%,33%);}

Figure 6-11. Setting color on form elements

You could also set the foreground color of INPUT elements, although as we can see in Figure 6-12, this would have the effect of setting that color on all inputs, from text to radio-button to checkbox inputs:

SELECT {color: rgb(33%,33%,33%);}
INPUT {color: gray;}

Figure 6-12. Changing form element foregrounds

Note in Figure 6-12 that the text color next to the checkboxes is still black. This is because we've only assigned styles to elements like INPUT and SELECT, not normal paragraph (or other) text.

One limitation under CSS1 is that there isn't a way to distinguish between different types of INPUT elements. If you need to have checkboxes be a different color than radio buttons, then you'll need to assign them classes so that you get the desired result (seen in Figure 6-13):

INPUT.radio {color: #666666;}
INPUT.check {color: #CCCCCC;}

<INPUT TYPE="radio" NAME="r2" VALUE="A" CLASS="radio">
<INPUT TYPE="checkbox" NAME="c3" VALUE="one" CLASS="check">

Figure 6-13. Using classes to apply styles to different INPUT elements

In CSS2, it's a little easier to distinguish between different elements based on what attributes they have. As an example, the rules shown here will match the following two INPUT tags, respectively:

INPUT[type="radio"] {color: #333333;}
INPUT[type="checkbox"] {color: #666666;}

<INPUT TYPE="radio" NAME="r2" VALUE="A ">
<INPUT TYPE="checkbox" NAME="c3" VALUE="one ">

This allows you to dispense with the classes altogether, at least in this instance. See the Chapter 10, "CSS2: A Look Ahead", for more details on how this kind of selector works.

WARNING

Navigator 4 does not apply colors to form elements, but setting the colors for form elements does work in Internet Explorer 4 and 5, and Opera 3.5 and later.

6.1.2. Background Color

In a fashion very similar to setting the foreground color, it's possible to declare a color for the background of an element. For this, you use the property background-color, which accepts (unsurprisingly) any valid color.

background-color

Values

<color> | transparent

Initial value

transparent

Inherited

no

Applies to

all elements

The background is the area of the content box and the padding and is always behind the foreground of the element. Therefore, the declared background color is applied to both the element's content box and its padding, as illustrated in Figure 6-14:

P {background-color: gray;}

Figure 6-14. Background gray for paragraphs

If you wish the color to extend out a little bit from the text in the element, then you need only add some padding to the mix, with the result shown in Figure 6-15:

P {background-color: gray; padding: 10px;}

Figure 6-15. Backgrounds and padding

(Padding will be discussed in detail in Chapter 7, "Boxes and Borders".)

The background color of just about any element can be set, from BODY all the way down to inline elements such as EM and A. Even form elements should be affected by the property, although not all user agents can do this correctly. Also, background-color is not inherited. Its default value is transparent , which makes sense; if an element doesn't have a defined color, then its background should be transparent so that the background of its ancestor elements will be visible. Imagine for a moment that the default value were something else, such as silver. Then you would always see something along the lines of Figure 6-16. This could be quite a problem, if that's how browsers behaved! Fortunately, they don't.

Figure 6-16. Nontransparent backgrounds

Most of the time, you'll have no reason to use the keyword transparent. On occasion, though, it can be useful. Although it's the default value, users might set their browsers to make all links have a white background. When you design your page, though, you set anchors to have a white foreground, and you don't want a background on those anchors. In order to make sure that this happens, you would declare:

A:link {color: white; background-color: transparent;}

If you left out the background color, then your white foreground would combine with the user's white background to yield totally unreadable links.

6.1.2.1. Real-world issues

That's pretty much all there is to setting a background color. Well, except for one more small warning: Navigator 4 gets the placement of background colors completely wrong. Instead of applying the background color to the entire content box and padding, the color only appears behind the text itself, as shown in Figure 6-17.

Figure 6-17. Navigator's incorrect behavior

Let me reiterate: this is totally wrong. However, there is a way around it, which is to set a border on the element. You can do this by setting the border the same color as the background color of your document:

BODY {background: silver;}
P {background-color: gray; padding: 1px; border: 0.1px solid gray;}

It is necessary to set a border-style for this technique to work. Whether you use that specific property, or simply a value of the border property, doesn't really matter.

Of course, by doing this, you're setting a border on the element, and that border will show up in other user agents as well. And, just to top things off, Navigator doesn't handle padding very well, so the previous example would result in a small amount of blank space between the content box and the borders. Altogether, it isn't a very pretty picture.

6.1.3. Special Effects

Let's return to the happier realm of how things should work. Thanks to color and background-color, you can create some nice effects. This example is shown in Figure 6-18:

P {color: black;}
H1 {color: white; background-color: rgb(20%,20%,20%);}

Figure 6-18. A nifty effect for H1 elements

This shows but one example of how displays can be dramatically changed with just a few styles. Of course, there are as many combinations as there are colors, but we can't exactly show them here -- being stuck in grayscale as we are -- however, we'll try to give you some idea of what you can do. Here are a few ideas to get you started.

This is a simple style sheet, as shown in Figure 6-19:

BODY {color: rgb(0%,50%,0%); background-color: #CCFFCC;}
H1, H2 {color: yellow; background-color: rgb(0,51,0);}

Figure 6-19. The results of a simple style sheet

This style sheet is more sophisticated (shown in Figure 6-20):

BODY {color: black; background-color: white;}
P {color: #333;}
PRE, CODE, TT {color: rgb(50%,50%,50%); background-color: #FFFFCC;}
A:link {color: blue; background-color: yellow;}
A:visited {color: navy; background-color: white;}

Figure 6-20. The results of a more sophisticated style sheet

This is but the tiniest beginning of what's possible, of course. By all means, try some examples of your own!

6.1.4. Good Practices

You may have noticed that in almost every circumstance, where we set a foreground color, we also set a background color. In general, this is a good idea. Since you don't know what styles a user may have predefined, you don't know how your styles might interact with them. Remember the example where links ended up being white on white? That's the sort of thing we want to avoid.

Let's explore this in a little more detail. Assume the following:

/* reader styles */
BODY {color: white; background-color: black;}

/* author styles */
BODY {color: black;}

Since, in this circumstance, the author's styles will outweigh the reader's styles -- that's how it is under CSS1, anyway -- then the new style sheet for this document will be as follows (shown in Figure 6-21):

/* combined styles */
BODY {color: black; background-color: black;}

Figure 6-21. Black on black

Not exactly readable, is it? Only the hyperlinks are visible, thanks to their default styles. That's why it's always a good idea to combine foreground and background colors in the same declaration. If it's important enough that you declare one, then it's definitely important enough to declare both.

Previous | Home | Next
5.7. Summary | Book Index | 6.2. Complex Backgrounds


Complex Backgrounds (Cascading Style Sheets: The Definitive Guide)

6.2. Complex Backgrounds

Having covered the basics of foreground and background colors, we turn now to the subject of background images. In HTML, it's possible to associate an image with the background of the document by using the BODY attribute BACKGROUND:

<BODY BACKGROUND="bg23.gif">

This will cause a user agent to load the file bg23.gif and then "tile" it in the document background, repeating it in both the horizontal and vertical directions to fill up the entire background of the document, as shown in Figure 6-22.

Figure 6-22. Applying a background image in HTML

This effect can be duplicated in CSS, but CSS contains a great deal more than simple tiling of background images. We'll start with the basics and then work our way up.

6.2.1. Background Images

In order to get an image into the background in the first place, the property background-image is used.

background-image

Values

<url> | none

Initial value

none

Inherited

no

Applies to

all elements

The default value of none means about what you'd expect: no image is placed in the background. If you want a background image, then you need only give this property a URL value:

BODY {background-image: url(bg23.gif);}

Due to the default values of other background properties, this will cause the image bg23.gif to be tiled in the document's background, as shown in Figure 6-22.

It's usually a good idea to specify a background color to go along with your background image. I won't do so in this section, since we're concentrating on background-image for the moment. We'll come back to why setting a color is a good idea later on in the chapter.

A background image can be applied to any element, whether block-level or inline. BODY is the most common element to which backgrounds are applied, of course, but there's no need to stop there. For example:

P.starry{background-image: url(http://www.site.web/pix/stars.gif);
   color: white;}

<P CLASS="starry">It's the end of autumn, which means the stars will be
brighter than  ever!  Join us...

As we can see in Figure 6-23, a background has been applied to a single paragraph and no other part of the document.

Figure 6-23. Applying a background image for a single element

This ability goes even further, allowing you to place background images on inline elements like hyperlinks, as depicted in Figure 6-24. Of course, if you want to be able to see the tiling pattern, the image will probably need to be pretty small. After all, individual letters aren't that large!

A.grid {background-image: url(smallgrid.gif);}

<P>This paragraph contains <A HREF="..." CLASS="grid">an anchor with a
background image</A> which is tiled only within the anchor.</P>

Figure 6-24. A background image on an inline element

There are a number of ways to employ this technique. You might place an image in the background of STRONG elements, in order to make them stand out more. You could fill in the background of headings with a wavy pattern, or with little dots. You can even fill in the cells of tables with patterns to make them distinct from the rest of the page, as shown in Figure 6-25:

TD.nav {background-image: url(darkgrid.gif);}

Figure 6-25. Setting a background image for a table cell

You could even, in theory, apply images to the background of replaced elements like TEXTAREAs and SELECT lists, although user agents aren't very good about that sort of thing yet -- in fact, as of this writing, no browser will correctly place images in the backgrounds of form elements.

WARNING

Just like background-color, background-image is not inherited -- in fact, none of the background properties are inherited. Remember also that when specifying the URL of a background image, it falls under the usual restrictions and caveats for url values: a relative URL should be interpreted with respect to the style sheet, but Navigator 4.x doesn't do this correctly, so absolute URLs may be a better answer.

6.2.1.1. Good background practices

An interesting thing about images is that they're laid on top of whatever background color you may have specified. If you're completely tiling GIF, JPEG, or other opaque image types, this doesn't really make a difference, since they'll fill up the document background, leaving nowhere for the color to "peek through," so to speak. However, image formats with an alpha channel, such as PNG, can be partially or wholly transparent, and this will cause the image to be combined with the background color. In addition, if the image fails to load for some reason, the user agent will use the background color specified in place of the image. Consider how the "starry paragraph" example would look if the background image failed to load, as in Figure 6-26.

Figure 6-26. The consequences of a missing background image

Given this reason alone, it's always a good idea to specify a background color when using a background image, so that your white text will at least be visible:

P.starry {background-image: url(http://www.site.web/pix/stars.gif);
   background-color: black; color: white;}

<P CLASS="starry">It's the end of autumn, which means the stars will be
brighter than ever!  Join us...

Besides, if you have the image do something other than fully tile across the entire background of the document, then you'll need a color to cover the parts that the image doesn't. Speaking of which ...

6.2.2. Repeats with Direction

Thus far, all we've ever been able to do in document design is repeat background images in both the horizontal and vertical directions. If we wanted some kind of "sidebar" background, it was necessary to create a very short, but incredibly wide, image to place in the background; a favorite size for these images is 10 pixels tall by 2,500 pixels wide. Most of that image is blank space, of course. Only the left 100 or so pixels contain the "sidebar" image. The rest of the image is basically wasted, as we can see in Figure 6-27.

Figure 6-27. Using a really wide image for a really small effect

Wouldn't it be much nicer to just create a sidebar image which is 10 pixels tall and 100 pixels wide, with no wasted blank space, and then repeat it only in the vertical direction? This would certainly make your design job a little easier, and your users' download times a lot shorter. Enter background-repeat.

background-repeat

Values

repeat | repeat-x | repeat-y | no-repeat

Initial value

repeat

Inherited

no

Applies to

all elements

As you might guess, repeat causes the image to tile in both the horizontal and vertical directions, just as background images have always done in the past. repeat-x and repeat-y cause the image to be repeated in the horizontal or vertical directions, respectively, and no-repeat prevents the image from tiling in any direction.

By default, the background image will start from the top left corner of an element. (We'll see how to change this later in the chapter.) Therefore, the following rules will have the effect seen in Figure 6-28:

BODY {background-image: url(yinyang.gif);
   background-repeat: repeat;}

Figure 6-28. Tiling the background image in CSS

I've left out a background color in order to keep the rule short, but remember to include a background color any time you have a background image. And, of course, the effect shown in Figure 6-28 would have been the same if we'd left out the background-repeat property altogether, since repeat is its default value.

Let's assume, though, that we just want images down the left side of the document. Instead of having to create a special image with a whole lot of blank space to the right of the image, we can instead make a small change to our styles:

BODY {background-image: url(yinyang.gif);
   background-repeat: repeat-y;}

As Figure 6-29 demonstrates, the image is simply repeated along the y-axis (that is, vertically) from its starting position -- in this case, the top left corner of the browser window.

Figure 6-29. Tiling along the vertical axis

In effect, there is a repeated column in the background, and there is only one such column. Should you want two columns of symbols in this example, then the base image would have to be altered to contain side-by-side symbols, as in Figure 6-30.

Figure 6-30. Tiling a slightly larger image on the vertical axis

The expected result occurs when we change the repeat value to be repeat-x:

BODY {background-image: url(yinyang.gif);
   background-repeat: repeat-x;}

Now the image is repeated along the x-axis (in other words, horizontally), as illustrated in Figure 6-31.

Figure 6-31. Tiling along the horizontal axis

Finally, of course, we may wish not to repeat the background image at all. In that case, we use the last value, no-repeat, which is illustrated in Figure 6-32:

Figure 6-32. No tiling at all

BODY {background-image: url(yinyang.gif);
   background-repeat: no-repeat;}

This may not seem terribly useful, given that there is only a small symbol in the top left corner of the document, but let's try it again with a much bigger symbol, as shown in Figure 6-33:

Figure 6-33. Placing a single, large backround image

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;}

6.2.2.1. Real-world uses

The ability to control the repeat direction dramatically expands the range of effects possible in document design. For example, let's say you want a triple border on the left side of each H1 element in your document. You could then declare the following:

H1 {background-image: url(triplebor.gif); background-repeat: repeat-y;}

As we can see in Figure 6-34, the very small image triplebor.gif is repeated vertically along the left side of the heading element, resulting in an effect that isn't otherwise possible.

Figure 6-34. Creating a "triple border" on H2 elements

We can take that further and decide to set a wavy border along the top of each H1 element, as illustrated in Figure 6-35. The image is colored in such a way that it blends with the background color and produces the wavy effect shown:

H1 {background-image: url(wavybord.gif); background-repeat: repeat-x;
    background-color: #CCCCCC;}

Figure 6-35. Setting a wavy top border on H1 elements

Simply by choosing the appropriate image for the job, and employing it in some creative ways, you can set up some truly astonishing appearances. And that isn't the end of what's possible. Now that we know how to keep a background image from repeating, how about moving it around in the background?

6.2.3. Background Positioning

Thanks to background-repeat, it's possible to place a large image in the background of a document, and then keep it from repeating. Let's add to that and actually change the image's position in the background.

background-position

Values

[<percentage> | <length>]{1,2} | [top | center | bottom ] || [left | center | right]

Initial value

0% 0%

Inherited

no

Applies to

block-level and replaced elements

WARNING

Percentage values refer to a point on both the element and the origin image (see explanation in Section 6.2.3.2, "Percentage values" later in this chapter).

For example, we could center it, with the result depicted in Figure 6-36:

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;
   background-position: center;}

Figure 6-36. Centering a single background image

This positioning is all done using background-position, of course, but there are a whole lot of ways to supply values for this property. First off, there are the keywords top, bottom , left, right, and center. Usually, these appear in pairs, but (as Figure 6-36} shows) this is not always true. Then there are length values, such as 50px or 2cm , and finally, percentage values. Each type of value has a slightly different effect on the placement of the background image.

6.2.3.1. Keywords

Easiest to understand are the keywords. They have the effects you'd expect from their names; for example, top right would cause the background image to be placed in the top right corner of the element. Let's go back to the small yin-yang symbol:

BODY {background-image: url(yinyang.gif);
   background-repeat: no-repeat;
   background-position: top right;}

Incidentally, the result, shown in Figure 6-37, would have been exactly the same had the position been declared as right top. When using the position keywords, they can appear in any order, so long as there are no more than two of them, one for the horizontal and the other for the vertical.

Figure 6-37. Placing the background image in the top right corner of the browser window

If only one keyword appears, then the other is assumed to be center. Table 6-1 shows equivalent keyword statements.

Table 6-1. Position Keyword Equivalents

Single Keyword | Equivalent To
center | center center
top | top center center top
bottom | bottom center center bottom
right | center right right center
left | center left left center

So if you want an image to appear in the very top center of each paragraph, as in Figure 6-38, you need only declare:

P {background-image: url(bg23.gif);
   background-repeat: no-repeat;
   background-position: top;}

Figure 6-38. Putting a single background image at the top of every paragraph

6.2.3.2. Percentage values

Closely related to the keywords are percentage values, although they behave in a rather interesting way. Let's say that you want to center a background image within its element by using percentage values. That's easy enough:

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;
   background-position: 50% 50%;}

This causes the background image to be placed such that its center is aligned with the center of its parent element, as demonstrated in Figure 6-39. In other words, the percentage values apply to both the element and the background image.

Figure 6-39. Centering the background image using percentages

In order to understand this concept, let's examine this process in closer detail. When you center a background image in an element, the point in the image which can be described as 50% 50% is lined up with the point in the element that can be described the same way. This is shown in Figure 6-40.

Figure 6-40. Lining up the center of the image with the center of the browser window

Thus, if you want to place a single background image a third of the way across the element and two-thirds of the way down, then your declaration would be:

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;
   background-position: 33% 66%;}

The point in the background image that is one-third across and two-thirds down from the top left corner of the image will be aligned with the point that is as far from the top left corner of the containing element, as shown in Figure 6-41.

Figure 6-41. More percentage positioning

Note that with percentages the horizontal value always comes first. If you were to switch the percentages in the preceding example, the image would be placed two-thirds of the way across the element and one-third of the way down. It's also worth noting what happens if you only supply one value. In that case, the single value supplied is taken to be the horizontal value, and the vertical is assumed to be 50%. This is basically the same as with the keywords, where if only one keyword is given, the other is assumed to be center. Thus:

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;
   background-position: 33%;}

The background image is placed one-third of the way across the page, and halfway down it, as depicted in Figure 6-42.

Figure 6-42. Declaring only one percentage means the vertical position evaluates to 50%

Table 6-2 gives a breakdown of keyword and percentage equivalencies.

Table 6-2. Positional Equivalents

Single Keyword | Equivalent To | Equivalent To
center | center center | 50% 50%
top | top center center top | 50% 0%
bottom | bottom center center bottom | 50% 100%
right | center right right center | 100% 50% 100%
left | center left left center | 0% 50% 0%
 | top left left top | 0% 0%
 | top right right top | 0% 100%
 | bottom right right bottom | 100% 100%
 | bottom left left bottom | 0% 100%

In case you were wondering, the default values for background-position are 0% 0%, which is functionally the same as top left. That's why, unless you set different values for the position, background images always start tiling from the top left corner of the containing element.

6.2.3.3. Length values

Finally, we turn to length values for positioning. When you supply lengths for the position of the background image, they are interpreted as offsets from the top left corner of the element. The offset point is the top left corner of the background image; thus, if you set the values 20px 30px , the top left corner of the background image will be 20 pixels to the right of, and 30 pixels below, the top left corner of the containing element, as in Figure 6-43:

BODY {background-image: url(bg23.gif);
   background-repeat: no-repeat;
   background-position: 20px 30px;}

Figure 6-43. Offsetting the background image using length measures

This is, of course, different than percentage values, in the sense that the offset is simply from one top left corner to another. In other words, the top left corner of the background image lines up with the point specified in the background-position declaration. You can combine length and percentage values, though, to get a sort of "best of both worlds" effect. Let's say you need to have a background image that is all the way to the right side of an element and 10 pixels down from the top, as illustrated in Figure 6-44. As always, the horizontal value comes first:

BODY {background-image: url(bg23.gif);
   background-repeat: no-repeat;
   background-position: 100% 10px;}

Figure 6-44. Mixing percentages and length values

You cannot, however, mix keywords with other values. Thus, top 75% is not valid. If you use a keyword, you're stuck using only keywords, but percentages and lengths can be mixed together.

Not only that, but if you're using lengths or percentages, you can give negative values, thus pushing the image out of the element, to some degree. Consider the example with the very large yin-yang symbol for a background. At one point, we centered it, but what if we only want part of it visible in the top left corner of the containing element? No problem, at least in theory. First, assume the image is 300 pixels tall by 300 pixels wide. Then, assume that only the bottom right third of it should be visible. We can get the desired effect (shown in Figure 6-45) like this:

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;
   background-position: -200px -200px;}

Figure 6-45. Using negative length values

Or, let's say we want a little more of it visible, as in Figure 6-46:

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;
   background-position: -150px -100px;}

Figure 6-46. Another set of negative lengths

Negative percentages are also possible in theory, although there are two issues involved. The first is the limitations of user agents, which may not recognize negative values for background-position. The other is that negative percentages are somewhat interesting to calculate. Figure 6-47 shows why.

Figure 6-47. Aligning negative percentage points: two scenarios

This isn't to say that you shouldn't use negative values, of course, just that there are issues to consider. As always.

WARNING

Although most CSS-aware browsers (Explorer 4.x and 5.x and Opera 3.5 and later) honor negative background positions, the effects are wildly unpredictable at best. This applies even to negative lengths, which can cause unwanted tiling, inappropriate positioning of the background images, and more. If you really need to set a single background image so that it's hanging off the page, you're probably better off producing an image that is already cut off and just putting it in the top left corner.

Throughout this section, every example has had a repeat value of no-repeat. The reason for this is simple: with only a single background image, it's much easier to see how positioning affects the placement of the first background image. We don't have to prevent the background image from repeating, though:

BODY {background-image: url(bigyinyang.gif);
   background-position: -150px -100px;}

So, with the background repeating, we can see from Figure 6-48 that the tiling pattern starts with the position specified by background-position. This first image is known as the origin image , and it's very important to understanding the next section.

Figure 6-48. Use of the background-position property sets the origin of the tiling pattern

As it happens, the positioning of backgrounds does contradict something I said earlier. background-position is the only background property with restrictions, as it may only be applied to block-level and replaced elements; background image positioning cannot be done on inline elements such as hyperlinks.

6.2.4. Repeats with Direction (Revisited)

In the previous section on repetition, we explored the values repeat-x , repeat-y, and repeat, and how they affect the tiling of background images. In each case, however, the tiling pattern always started from the top left corner of the containing element (e.g., BODY). That isn't a requirement, of course; as we've seen, the default values for background-position are 0% 0%. So, unless you change the position of the origin image, that's where the tiling starts. Now that we know how to change the position of the origin image, we need to figure out how user agents will handle the situation.

It will be easier to show an example, and then explain it. Consider the following, which is illustrated by Figure 6-49:

BODY {background-image: url(bg23.gif);
   background-repeat: repeat-y;
   background-position: center;}

Figure 6-49. Centering the origin image and repeating vertically

So there you have it: a stripe running through the center of the document. It may look wrong, but it isn't.

The example shown in Figure 6-49 is correct because the origin image has been placed in the center of the BODY element and then tiled along the y-axis in both directions -- in other words, both up and down. In a similar fashion, when the repeat direction is horizontal, the background image is repeated to both the right and the left, as shown in Figure 6-50:

BODY {background-image: url(bg23.gif);
   background-repeat: repeat-x;
   background-position: center;}

Figure 6-50. Centering with a horizontal repeat

Therefore, setting a large image in the center of the BODY and then letting it repeat will cause it to tile in all four directions: up, down, left, and right. The only difference background-position makes is in where the tiling starts. Figure 6-51 shows the difference between tiling from the center of the BODY, and from its top left corner.

Figure 6-51. The difference between starting a repeat from top left (left) and centering it (right)

Note the differences along the edges of the browser window. When the background repeats from the center, the grid is centered within the viewport, resulting in consistent "clipping" along the edges. The variations may seem subtle, but the odds are that you'll have reason to use both approaches at some point in your design career.

In case you're wondering, there is no way to control the repeat any more than we've already discussed. There is no repeat-left, for example, although it could certainly be added in some future version of CSS. For now, you get full tiling, horizontal tiling, vertical tiling, or no tiling at all.

6.2.4.1. Repeating: Real-world issues

There are a few things to keep in mind when it comes to web browsers. First is that in Navigator 4 and Internet Explorer 4, tiling only happened down and to the right. If you're using Explorer 4, centering an image in the background and then tiling it would look like Figure 6-52.

Figure 6-52. Incorrect behavior in Internet Explorer 4

Navigator 4 manages to avoid this error by not honoring background positioning at all, which means that the origin image always appears in the top left corner of an element under Navigator 4. Of the browsers that correctly position background images, only four managed correct repeating, as of this writing: Opera 3.6 for Windows, Internet Explorer 4.5 and 5 for Macintosh, and Internet Explorer 5 for Windows.

6.2.5. Getting Attached

Okay, so we can place the origin image for the background anywhere in the background of an element, and we can control (to a degree) how it tiles. As you may have already realized, setting an image to be in the center of the document may mean, given a sufficiently long document, that the background image isn't initially visible to the reader. After all, a browser only provides a window onto the document. If the document is too long to be displayed in the window, then the user can scroll back and forth through the document. The center could be two or three "screens" below the beginning of the document, or just far enough down to push much of the background image beyond the bottom of the browser window, as shown in Figure 6-53.

Figure 6-53. The background image appears too low to be seen fully

Furthermore, even assuming that the background image is initially visible, it always scrolls with the document. Perhaps you don't want to see what Figure 6-54 depicts:

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;
   background-position: center;}

Figure 6-54. Scrolling the background image out of view

Never fear: there is a way to prevent this scrolling.

background-attachment

Values

scroll | fixed

Initial value

scroll

Inherited

no

Applies to

all elements

Using the property background-attachment, you can declare the background to be fixed with respect to the viewing area and therefore immune to the effects of scrolling:

BODY {background-image: url(bigyinyang.gif);
   background-repeat: no-repeat;
   background-position: center;
   background-attachment: fixed;}

Doing this has two immediate effects, as we can see from Figure 6-55. The first is that the background does not scroll along with the document. The second is that the position of the image is determined by the viewing area, not the document size.

Figure 6-55. Nailing the background in place

When printed, of course, the two are the same, since the display area (the paper) is the same as the document size, at least for that page. In a web browser, though, the viewing area can change as the user resizes the browser's window. This will cause the background's origin image to shift as the window changes size. Figure 6-56 depicts several views of the same document. So in a certain sense the image isn't fixed in place, but it will remain fixed so long as the viewing area isn't resized.

Figure 6-56. Centering still holds, even if the image is "fixed"

There is only one other value for background-attachment, and that's the default value scroll. As you'd expect, this causes the background to scroll along with the rest of the document when viewed in a web browser, and it doesn't necessarily change the origin image's position as the window is resized. If the document width is fixed (perhaps by assigning an explicit width to the BODY element), then resizing the viewing area won't affect the placement of the origin image.

6.2.5.1. Interesting effects

In technical terms, when a background image has been set to be fixed, it is positioned with respect to the viewing area, not the element that contains it. However, the background will only be visible within its containing element. This leads to a rather interesting consequence.

Let's say we have a document with a tiled background that actually looks like it's tiled and an H1 element with the same pattern, only in a different color. Both the BODY and H1 elements are set to have fixed backgrounds, resulting in something like Figure 6-57:

BODY {background-image: url(tile1.gif);  background-repeat: repeat;
   background-attachment: fixed;}
H1 {background-image: url(tile2.gif);  background-repeat: repeat;
   background-attachment: fixed;}

Figure 6-57. Perfect alignment of backgrounds

How is this perfect alignment possible? Remember, when a background is fixed , the origin element is positioned with respect to the canvas. Thus, both background patterns begin tiling from the top left corner of the document, not the individual elements. For the BODY, we can see the entire repeat pattern. For the H1, however, the only place we can see its background is in the padding and content of the H1 itself. Since both background images are the same size, and they have precisely the same origin position, they appear to "line up" as shown in Figure 6-57.

WARNING

There's a downside: as of this writing, web browsers don't get this fixed alignment right, so this example was just an interesting theoretical exercise.

6.2.6. Bringing It All Together

Just like with the font properties, the background properties can all be brought together in a single shorthand property: background. This property can take a single value from each of the other background properties, in literally any order.

background

Values

<background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position>

Initial value

refer to individual properties

Inherited

no

Applies to

all elements

WARNING

Percentage values are allowed for <background-position>.

Thus the following statements are all equivalent and will have the effect shown in Figure 6-58:

BODY {background-color: white; background-image: url(yinyang.gif);
   background-position: top left; background-repeat: repeat-y;
   background-attachment: fixed;}
BODY {background: white url(yinyang.gif) top left repeat-y fixed;}
BODY {background: fixed url(yinyang.gif) white top left repeat-y;}
BODY {background: url(yinyang.gif) white repeat-y fixed top left;}

Figure 6-58. Using shorthand

Actually, there is one slight restriction to how the values are ordered in background , which is that if you have two values for background-position , they must appear together, horizontal first, then vertical. That probably isn't a surprise, but it is important to remember.

As is the case for shorthand properties, if you leave out any values, the defaults for the relevant properties are filled in automatically. Thus, the following two are equivalent:

BODY {background: white url(yinyang.gif;}
BODY {background: white url(yinyang.gif) top left repeat scroll;}

What's even better, there are no required values for background -- as long as you have at least one value present, you can omit all the rest. Therefore, it's possible to set just the background color using the shorthand property, which is a very common practice:

BODY {background: white;}

This is perfectly legal, and in some ways preferred, given the reduced number of keystrokes. In addition, it has the effect of setting all of the other background properties to their defaults, which means that background-image will be set to none. This helps ensure readability by preventing other rules (in, for example, the reader style sheet) from setting an image in the background.

Any of the following rules are also legal, as illustrated by Figure 6-59:

H1 {background: silver;}
H2 {background: url(h2bg.gif);}
P {background: url(parabg.gif);}
P.type1 {background: repeat-x left center;} /* BG from previous rule is lost */
P.type2 {background: center;}  /* same BG loss applies here as well */

Figure 6-59. Applying many backgrounds to one document

Note the absence of an image on two of the paragraphs. This is because the styles for type1 and type2 paragraphs do not include the URL of a background image.

WARNING

In older browsers, such as the early version of Navigator 4, the background property was supported while many of the individual properties, such as background-color, were not. Therefore, it generally makes sense to use background whenever possible and to avoid the more specific properties when you can.

Previous | Home | Next
6. Colors and Backgrounds | Book Index | 6.3. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

6.3. Summary

Setting colors and backgrounds on elements gives authors a great deal of power in CSS. The advantage of CSS over traditional methods is that colors and backgrounds can be applied to any element in a document -- not just table cells, for example, or anything enclosed in a FONT tag. Despite a few bugs in some implementations, like Navigator 4's reluctance to apply a background to the entire content area of an element, these are very widely used properties. Their popularity isn't too hard to understand, either, since color is one easy way to distinguish the look of one page from another.

CSS allows for a great deal more in the way of element styling, however: borders that can be placed on any element, extra margins and padding, and even a way to "float" elements other than images. These are all covered in the next chapter.

Previous | Home | Next
6.2. Complex Backgrounds | Book Index | 7. Boxes and Borders


Boxes and Borders (Cascading Style Sheets: The Definitive Guide)

Chapter 7. Boxes and Borders

Contents:

Basic Element Boxes
Margins or Padding?
Margins
Borders
Padding
Floating and Clearing
Lists
Summary

Most web designers are familiar with the limitations of HTML as a page layout language, even if they're not quite aware of it. Think about your page designs for a moment. How many of them depend on tables to get everything where it's supposed to go? If you're like the vast majority of web designers, all of your pages use tables. This is because tables can be used to create sidebars, of course, and to set up a complicated structure for an entire page's appearance, but also to do simpler things, like put text in a colored box with a border.

On the face of it, though, this latter effect is a little simple to be requiring a table. If all that's needed is a paragraph that has a red border and a yellow background, why should you have to wrap a single-cell table around the paragraph just to get that effect? Wouldn't it be much easier to simply say that the paragraph itself should have the border and background, and forget about all that table markup?

Thankfully, the authors of CSS felt the same way, so they devoted a great deal of attention to including the ability to define borders for darned near everything a web page can contain. Paragraphs, headings, DIVs, anchors, images, and more can be assigned borders of various types. These borders can be used to set an element apart from others, or accentuate its appearance, or to mark certain kinds of data as having been changed, or to do any number of other things.

In addition to borders, it's also possible to define regions around an element that control how the border is placed in relation to the content and how close other elements can get. Between the content of an element and its border, we find the padding of an element, and beyond the border, the margins. These properties affect how the entire document is laid out, of course, but more importantly, they very deeply affect the appearance of a given element. This is the foundation of much of the formatting model of CSS, and in order to understand it, we need to examine how an element is constructed.

7.1. Basic Element Boxes

Thanks to CSS, all document elements generate a rectangular box. This is called the element box. This box describes the amount of space that an element and its properties occupy in the layout of the document, and each box can therefore influence the position and size of other element boxes. For example, if the first element box in the document is an inch tall, then the next box will begin an inch below the top of the document. If the first element box is somehow altered in such a way as to make it be two inches tall, then every following element box will be shifted downward two inches, and the second element box will begin two inches below the top of the document.

As we can infer from Figure 7-1, the entirety of an HTML document is composed of a number of rectangular boxes that are distributed such that they don't overlap each other. Also, within certain constraints, these boxes take up as little space as possible, while still maintaining a sufficient separation to make clear which content belongs to which element.

Figure 7-1. How one element affects all elements

For the first time, however, it is possible for authors to influence the separation between text elements in a fundamental way -- even to the point of causing elements to overlap each other! The margins and padding of the element boxes are the keys to this new power.

In order to fully understand how margins, padding, and borders are handled, you must clearly understand a number of boundaries and areas. They are shown in detail in Figure 7-2.

Figure 7-2. The CSS box model

In general, the width of an element is defined to be the distance from the left inner edge to the right inner edge, and the height is the distance from the inner top to the inner bottom. Not coincidentally, these are both properties that can be applied to an element.

width

Values

<length> | <percentage> | auto

Initial value

auto

Inherited

no

Applies to

block-level and replaced elements

WARNING

Percentage values refer to the width of the parent element.

The counterpart to width is height.

height

Values

<length> | auto

Initial value

auto

Inherited

no

Applies to

block-level and replaced elements

In the course of this chapter, we will make two assumptions about width and height. The first is that the height of an element is always calculated automatically. If an element is eight lines long, and each line is an eighth of an inch tall, then the height of the element is one inch. If it's 10 lines tall, then the height is 1.25 inches; in either case, the height is determined by the content of the element, not the author. In the next chapter, we'll see that this need not be so, but for this chapter, we assume that height is only determined by the way an element is displayed.

The second assumption is that the width of an element is just as wide as it needs to be. Under CSS, all element boxes are as wide as the content area of their parent element. Thus, if the content area of a DIV is two inches wide, then the overall element box of any paragraph within that DIV will be two inches wide as well. Figure 7-3 shows this in more detail.

Figure 7-3. Element widths depend on the width of the parent element

Under many circumstances, the width of the margins, padding, and border of an element will all total zero, so the width of the element equals the content area of its parent. If there are margins or padding, for example, these are added to the element's width in order to equal the width of the parent element's content area. In any case, in this chapter, we always assume that the width of the element is as wide as it needs to be to equal its parent's content width.

Previous | Home | Next
6.3. Summary | Book Index | 7.2. Margins or Padding?


Margins or Padding? (Cascading Style Sheets: The Definitive Guide)

7.2. Margins or Padding?

There are three ways to generate extra space around elements. The first is to add only padding to an element; second, to add only margins; and third, to add a combination of padding and margins. Under certain circumstances, it doesn't really matter which you pick. If an element has a background, however, then it does matter which of the three options you choose. That's because the background will extend into the padding, but not the margin. Thus, the amount of padding and margin you assign to a given element will influence where the background of the element will end.

If you set background colors for the elements involved, as illustrated in Figure 7-4, the difference becomes a little more clear. The elements with padding have extra background, as it were, whereas those with margins do not.

Figure 7-4. Paragraphs with different margins and padding, with backgrounds to illustrate the differences

In the end, deciding how to set margins and padding is up to the designer, who has to balance the various possibilities against the intended effect and pick the best alternative. In order to be able to make these choices, of course, it helps to know what properties can be used.

Previous | Home | Next
7. Boxes and Borders | Book Index | 7.3. Margins


Margins (Cascading Style Sheets: The Definitive Guide)

7.3. Margins

The most basic things you can add to an element are margins. These create extra blank space around an element. "Blank space" generally refers to the area in which other elements cannot also exist and in which the parent element's background is visible. For example, look at Figure 7-5, which shows the difference between two paragraphs without any margins, and the same two paragraphs with some margins.

Figure 7-5. Paragraphs with, and without, margins

The simplest way to set a margin is by using the property margin.

margin

Values

[ <length> | <percentage> | auto ]{1,4}

Initial value

not defined

Inherited

no

Applies to

all elements

WARNING

Percentage values refer to width of the parent element.

Suppose we wish to set a quarter-inch margin on H1 elements, as illustrated in Figure 7-6. (A background color has been added in order to be able to see the edges of the content area.) For example:

H1 {margin: 0.25in; background-color: silver;}

Figure 7-6. Setting a margin for H1 elements

This sets a quarter-inch of blank space on each side of an H1 element. In Figure 7-6, this is represented using dashed lines which are included for illustrative purposes. These lines would not actually appear in a web browser.

margin can accept any length measure, whether in pixels, inches, millimeters, or ems. However, the default value for margin is effectively 0 (zero), which means that if you don't declare a value, then by default, there won't be a margin.

TIP

In practice, browsers come with pre-assigned styles for many elements, and margins are no exception. For example, in CSS-enabled browsers, the "blank line" above and below each paragraph element is generated using margins. Therefore, if you don't declare margins for the P element, the browser may apply some margins on its own -- which is to say that just because you don't declare margins for an element doesn't mean that there won't be any.

You can also declare a margin to be auto. For now, assume that auto will get you an automatically calculated value, which is usually, but not quite always, zero. (Fortunately, the circumstances under which auto becomes something other than zero are very well-defined, and are discussed in detail in the next chapter.)

Finally, it's possible to set a percentage value for margin. The details of this type of value will be discussed in a later section.

7.3.1. Length Values and Margins

As stated before, any length value can be used in setting the margins of an element. If we want a 10-pixel whitespace around paragraph elements, that's simple enough. The following markup creates a normal paragraph and one that has a ten-pixel margin applied to it, shown in Figure 7-7:

P {background-color: silver;}
P.one {margin: 10px;}

Figure 7-7. Comparative paragraphs

(Again, the background color helps show the content area, and the dashed lines are for illustrative purposes only.) As Figure 7-7 demonstrates, 10 pixels of space are added to each side of the content area. This is somewhat similar to using the HSPACE and VSPACE attributes in HTML. In fact, you can use margin to set extra space around an image. Let's say you want 1 em of space surrounding all images:

IMG {margin: 1em;}

That's all it takes.

There may be times where you want a different amount of space on each side of an element. That's simple as well. If we want all H1 elements to have a top margin of 10 pixels, a right margin of 20 pixels, a bottom margin of 15 pixels, and a left margin of 5 pixels, here's all we need:

H1 {margin: 10px 20px 15px 5px; background-color: silver;}

As Figure 7-8 reveals, we have what we wanted. The order of the values is obviously important, and follows this pattern:

margin: top right bottom left

Figure 7-8. Uneven margins

A good way to remember this pattern is to keep in mind that the four values go clockwise around the element, starting from the top. The values are always applied in this order, so in order to get the effect you want, you have to arrange the values correctly.

TIP

An easy way to remember the order in which sides have to be declared, other than thinking of it as being clockwise from the top, is to keep in mind that getting the sides in the correct order helps you avoid "trouble" -- that is, TRBL, for "Top Right Bottom Left."

It's also possible to mix up the types of length value you use. You aren't restricted to using a single length type in a given rule, as shown here:

H2 {margin: 14px 5em 0.1in 3ex;}  /* value variety! */

Figure 7-9 shows us, with a little extra annotation, the results of this declaration.

Figure 7-9. Mixed-value margins

7.3.2. Percentages and Margins

As stated earlier, it's possible to set percentage values for the margins of an element. Percentages are computed in relation to the width of the parent element, so they change if the parent element's width changes in some way. For example, assume the following, shown in Figure 7-10:

P {margin: 10%;}

<DIV STYLE="width: 200px;">
<P>This paragraph is contained within a DIV which has a width of 200 pixels,
so its margin will be 10% of the width of the paragraph's parent (the DIV).
Given the declared width of 200 pixels, the margin will be 20 pixels on
all sides.</P>
</DIV>
<DIV STYLE="width: 100px;">
<P>This paragraph is contained within a DIV with a width of 100 pixels,
so its margin will still be 10% of the width of the paragraph's parent.
There will, therefore, be half as much margin on this paragraph as that
on the first paragraph.</P></DIV>

Figure 7-10. Parent widths and percentages

While this is interesting enough, consider the case of elements without a declared width, whose overall width (including margins) is therefore dependent on the width of the parent element.

P {margin: 10%}

Figure 7-11 shows how the margin of a paragraph changes as it's viewed in browsers windows of two different sizes.

Figure 7-11. Percentage margins and changing environments

As you can imagine, this leads to the possibility of "fluid" pages, where the margins and padding of elements enlarge or reduce to match the actual size of the display canvas. In theory, as the user changes the width of a browser window, the margins and padding will expand or shrink dynamically -- but not every browser supports this sort of behavior. Still, using percentages for margin and padding may be the best way to set styles that will hold up in more than one media; for example, documents that will look good on a monitor as well as a printout.

It's also possible to mix percentages with length values. Thus, to set H1 elements to have top and bottom margins of one-half em and side margins that are 10% of the width of the browser window, you can declare the following, shown in Figure 7-12:

H1 {margin: 0.5em 10% 0.5em 10%;}

Figure 7-12. Mixed margins

Here, although the top and bottom margins will stay constant in any situation, the side margins will change based on the width of the browser window. This of course assumes that all H1 elements are the child of the BODY element and that BODY is as wide as the browser window. More properly stated, the side margins of H1 elements will be 10% of the width of the H1's parent element.

Let's revisit that example for a moment:

H1 {margin: 0.5em 10% 0.5em 10%;}

Seems a little redundant, doesn't it? After all, you have to type in the same pair of values twice. Fortunately, CSS offers an easy way to avoid this.

7.3.3. Replicating Values

Sometimes, the values you're entering for margin get a little repetitive:

P {margin: 0.25em 1em 0.25em 1em;}

You don't have to keep typing in pairs of numbers like this, though. Instead of the preceding markup, try this:

P {margin: 0.25em 1em;}

These two values are enough to take the place of four. But how?

CSS defines a few steps to accommodate fewer than four values for margin:

  • If the value for left is missing, use the value provided for right.

  • If the value for bottom is missing, use the value provided for top.

  • If the value for right is missing, use the value provided for top.

If you prefer a more visual approach, take a look at the diagram shown in Figure 7-13.

Figure 7-13. Value replication pattern

In other words, if there are three values given for margin , the fourth (left) is copied from the second (right). If there are two values given, the fourth is copied from the second, and the third (bottom ) from the first (top ). Finally, if there is only one value given, then it's copied to all the others.

This simple mechanism allows authors to supply only as many values as necessary, as shown here:

H1 {margin: 0.25em 0 0.5em;} /* same as '0.25em 0 0.5em 0' */
H2 {margin: 0.15em 0.2em;}  /* same as '0.15em 0.2em 0.15em 0.2em' */
P {margin: 0.5em 10px;}  /* same as '0.5em 10px 0.5em 10px' */
P.close {margin: 0.1em;}  /* same as '0.1em 0.1em 0.1em 0.1em' */

The only drawback to this ability is a small one, but you're bound to run into it eventually. Suppose you want to set the top and left margins for H1 elements to be 10 pixels, and the bottom and right margins to be 20 pixels. In that case, you have to write the following:

H1 {margin: 10px 20px 20px 10px;} /* can't be any shorter */

Unfortunately, there is no way to cut down on the number of values needed in such a circumstance.

Let's take another example: one where we want all of the margins to be auto -- except for the left margin, which should be 3em :

H2 {margin: auto auto auto 3em;}

Again, we got the effect we wanted. The problem is all that typing of auto gets a little tedious. After all, all we want to do is affect the margin on one side of the element as shown in Figure 7-14, which leads us to the next topic.

Figure 7-14. Setting a new value for just the left margin

7.3.4. Single-Side Margin Properties

Fortunately, there's a way to assign a value to the margin on a single side of an element. Let's say we only want to set the left margin of H2 elements to be 3em. Instead of all the typing required with margin , we could take this approach:

H2 {margin-left: 3em;}

margin-left is one of four properties devoted to setting the margins on each of the four sides of an element box. Their names should come as little surprise.

margin-top, margin-right, margin-bottom, margin-left

Values

<length> | <percentage> | auto

Initial value

0

Inherited

no

Applies to

all elements

WARNING

Percentage values refer to the width of the parent element.

Using any one of these properties allows you to set a margin on that side only, without directly affecting any of the other margins.

It's possible to use more than one of these single-side properties in a single rule; for example:

H2 {margin-left: 3em; margin-bottom: 2em; margin-right: 0; margin-top: 0;}

As we see in Figure 7-15, the margins were set as we wanted them.

Figure 7-15. More than one single-side margin

However, in this case, it might have been easier to use margin after all:

H2 {margin: 0 0 2em 3em;}

The results will be exactly the same as those we saw before, only with a little bit less typing. In general, once you're trying to set margins for more than one side, it's almost easier to simply use margin. From the standpoint of your document's display, however, it doesn't really matter which approach you use, so feel free to choose whichever is easier for you.

7.3.5. Collapsing Margins

There is one interesting aspect of applying margins to block-level elements: the collapsing of adjacent vertical margins. This comes into play when an element with margins immediately follows another such element in the document's layout.

A perfect example is an unordered list, in which the list items follow one another. Assume that the following is declared for a list that contains five list items:

LI {margin-top: 10px; margin-bottom: 15px;}

Thus, each list item has a 10-pixel top margin and a 15-pixel bottom margin. However, when the list is rendered, the distance between adjacent list items is 15 pixels, not 25. This is because along the vertical axis, adjacent margins are said to be collapsed. In other words, the smaller of the two margins is eliminated in favor of the larger. Figure 7-16 shows the difference between collapsed and uncollapsed margins.

Figure 7-16. Collapsed versus uncollapsed margins

Correctly implemented user agents will collapse the vertically adjacent margins, as shown in the first list in Figure 7-16, where there are 15-pixel spaces between each list item. The second list shows what would happen if the user agent didn't collapse margins, resulting in 25-pixel spaces between list items.

Another word to use, if you don't like "collapse," is "overlap." Although the margins are not really overlapping, you can visualize what's happening using the following analogy. Imagine that each element, such as a paragraph, is a small piece of paper with the content of the element written on it. Around each piece of paper is some amount of clear plastic; this plastic represents the margins. The first piece of paper (say an H1 piece) is laid down on the canvas (browser window). The second (a paragraph) is laid below it and then slid up until the edge of one of the piece's plastic touches the edge of the other's content. If the first piece of paper has half an inch of plastic along its bottom edge, and the second has a third of an inch along its top, then when they slide together, the first piece's plastic will touch the top edge of the second piece of paper. The two are now done being placed on the canvas, and the plastic attached to the pieces is overlapping.

This is also occurs where multiple margins meet, such as at the end of a list. Adding to the earlier example, let us assume the following rules:

UL {margin-bottom: 10px;}
LI {margin-top: 10px; margin-bottom: 20px;}
H1 {margin-top: 28px;}

Therefore, the last item in the list has a bottom margin of 20 pixels, the bottom margin of the UL is 10 pixels, and the top margin of a succeeding H1 is 28 pixels. Given all this, once the margins have been collapsed (or, if you prefer, overlapped), the distance between the end of the LI and the beginning of the H1 is 28 pixels, as shown in Figure 7-17.

Figure 7-17. Collapsing in detail

This collapsing behavior only applies to margins. Padding and borders, where they exist, are never collapsed by anything.

7.3.6. Negative Margin Values

There's another side to margins: the negative side. That's right, it's possible to set negative values for margins. This will have some interesting effects, assuming that a user agent supports negative margins at all.

TIP

User agents are not, according to the CSS1 specification, required to fully support negative margins, using the phrase, "A negative value is allowed, but there may be implementation-specific limits." In the world of web browsers, though Navigator 4.x, Explorer 4.x/5.x, and Opera 3.x do permit negative margins:

Negative margins have an impact on vertical formatting, affecting how margins are collapsed. If there are negative vertical margins, then the browser should take the absolute maximum of the negative margins and subtract that from the maximum of any positive margins.

In the case where there are only two margins to be collapsed, one positive and the other negative, the situation is handled in a fairly simple manner. The absolute value of the negative margin is subtracted from the positive margin -- or, to put it another way, the negative is added to the positive -- and the resulting value is the distance between the elements.

To see what this means, let's start with a paragraph that has a negative top margin and no margins on its other sides -- this will keep the example simple. In addition, we'll make the paragraph bold, so that it's easier to distinguish from its neighbors:

<P STYLE="margin: -1.75em 0 0 0; font-weight: bold;">
This paragraph has a negative top margin...
</P>

We can see in Figure 7-18 that the paragraph has been pulled up so far that it's practically overlapping the end of the previous paragraph. This is the expected effect.

Figure 7-18. Negative top margin

In a like manner, setting a negative value on the other sides will pull them beyond their normal limits:

<P STYLE="margin: -2em; font-weight: bold;">...

As Figure 7-19 makes abundantly clear, the paragraph has spilled beyond the edges of the browser window and has not only pulled up far enough to overlap the end of the previous paragraph, but has also pulled the following paragraph up to overlap its last line.

Figure 7-19. Negative margin

Negative percentages are also permitted. These will behave like any negative length value, with the obvious difference that the amount of negativity will depend on the width of the parent element. Thus:

P {margin: -10%;}

Figure 7-20 illustrates the consequences of such a rule, where the amount by which paragraphs overlap each other and spill beyond the browser window is entirely dependent on the width of the window itself -- and the wider the window, the worse the situation becomes.

Figure 7-20. The dangers of document-wide negative-margin rules

Using negative margins with block-level elements such as these can quite obviously be dangerous and is rarely worth the trouble -- but it can also be rewarding. It takes a good deal of practice, and many mistakes, to learn to tell the difference between the two.

7.3.7. Margins and Inline Elements

So far, we've only talked about how margins apply to block-level elements like paragraphs and headers. Margins can also be applied to inline elements, although the effects are a little different.

Let's say that you want to set top and bottom margins on boldfaced text. You declare:

B {margin-top: 25px; margin-bottom: 50px;}

This is allowed in the specification, but it will have absolutely no effect on the line height, and since margins are effectively transparent, this will have no visual effect whatsoever -- as you can see for yourself in Figure 7-21.

Figure 7-21. Margins on an inline element

This happens because margins on inline elements don't change the line height of an element. (In fact, the only properties that can change the distance between lines containing only text are line-height, font-size, and vertical-align.)

However, all of this is true only for the top and bottom sides of inline elements; the left and right sides are a different story altogether. We'll start by considering the simple case of a small inline element within a single line, as depicted in Figure 7-22.

Figure 7-22. A single-line inline element with a left margin

Here, if we set values for the left or right margin, they will be visible, as Figure 7-23 makes obvious:

B {margin-left: 10px; background: silver;}

Figure 7-23. An inline element with a left margin

Note the extra space between the end of the word just before the inline element, and the edge of the inline element's background. This can end up on both ends of the inline if we wish:

B {margin: 10px; background: silver;}

As expected, Figure 7-24 shows a little extra space on the right and left sides of the inline element, and no extra space above or below it.

Figure 7-24. An inline element with a 10-pixel margin

This all seems simple enough, but when the boldfaced text stretches across multiple lines, the situation becomes a little odd. First, realize that the margins set for inline elements are not applied at the point where line-breaking occurs. This line-breaking happens in the course of wrapping text so that it fits inside the browser's window, for example, or inside a parent element. The only effect margins have on line-breaking is that, by causing extra space to appear within the line, they can move content over. This may cause a line to break at a different spot than it ordinarily would have.

Turn to Figure 7-25 to see what happens when an inline element with a margin is displayed across multiple lines:

B {margin: 10px; background: silver;}

Figure 7-25. An inline element displayed across two lines of text with a 10-pixel margin

The left margin is applied to the beginning of the element, and the right margin to the end of it. Margins are not applied to the right and left side of each line. Also, you can see that if not for the margins, the line may have broken after "text" instead of after "boldfaced." This is the only real way in which margins affect line-breaking.

To understand why, let's go back to the paper-and-plastic analogy employed in the previous section. Think of an inline element as a strip of paper with marginal plastic surrounding it. Displaying the inline element on multiple lines is like cutting up the strip into smaller strips. However, no extra plastic is added to each smaller strip. The only plastic used is that which was on the strip to begin with, so it only appears at the beginning and end of the inline element.

7.3.8. Margins: Known Issues

As useful as margins are, a number of problems can arise with their use -- enough, in fact, that they warrant their own section, instead of just a small warning box.

The first is that Navigator 4.x generally adds margin rules to its built-in margins, instead of replacing the built-in values. For example, let's say you want to eliminate the space between H1 elements and paragraphs. Here's the simplest case for doing so:

H1 {margin-bottom: 0;}
P {margin-top: 0;}

This is, after all, one correct way to eliminate the space between succeeding elements. Navigator 4.x, however, will display the elements with the usual blank line between them, as you can see in Figure 7-26. This is because it's adding the zero values to its own default margins.

Figure 7-26. Navigator 4.x and margins

If you want to overcome this space, you can always use negative margins. Here's one possible declaration:

H1 {margin-bottom: 0;}
P {margin-top: -1em;}

The problem with this solution arises when the document is viewed in Internet Explorer, which will display what's shown in Figure 7-27. The overlapping text is not a mistake on Explorer's part -- it's doing exactly as you specified. Basically, there isn't an easy way to circumvent this problem, although two possible approaches are detailed in Chapter 11, "CSS in Action".

Figure 7-27. Overlapping text in Explorer

It gets worse, unfortunately. If you apply margins to inline elements, as was discussed previously, you'll get results from Navigator 4.x like those shown in Figure 7-28.

Figure 7-28. Margins, inline elements, and Navigator 4.x

The style used to generate Figure 7-28 was as follows:

STRONG {margin-left: 10px;}

Instead of adding ten pixels of blank space to the beginning of the STRONG element, Navigator assumes that the margin refers to the left edge of the browser window, and places the STRONG element accordingly This is utterly, completely wrong. (There are those who speculate that Navigator turns the inline element into a block-level element, but its placement implies that things may be otherwise. It's difficult to be sure.) Unfortunately, the fact that this happens means that the use of margins on inline elements is a risky proposition, and not one to be undertaken lightly.

Previous | Home | Next
7.2. Margins or Padding? | Book Index | 7.4. Borders


Borders (Cascading Style Sheets: The Definitive Guide)

7.4. Borders

The border of an element is simply a line (sometimes more than one) that surrounds the content and padding of an element. Thus, the background of the element will stop at the outer edge of the border, since the background does not extend into the margins, and the border is just inside the margin. The CSS specification strongly implies that the background extends to the outside edge of the border, since it talks about the borders being drawn "on top of the background of the element," but not all browsers seem to agree. This is important because some borders are "intermittent" -- for example, dotted and dashed styles -- and the element's background should appear in the spaces between the visible portions of the border.

Every border has three aspects: its width, or thickness; its style, or appearance; and its color. The default value for the width of a border is medium , which is not explicitly defined but usually works out to be two or three pixels. Despite this, the reason you don't usually see borders is that the default style is none, which prevents them from existing. If a border has no style, then it may as well not exist, so it doesn't. The absence of a border style also resets the width, but we'll get to that in a little while.

Finally, the default border color is the foreground color of the element itself. If no color has been declared for the border, then it will be the same color as the text of the element. If, on the other hand, an element has no text -- let's say a table which contains only images -- then thanks to the fact that color is inherited, the border color for that table would be the text color of its parent element. This is likely to be BODY, DIV, or another TABLE. Thus, if an image has a border, and the BODY is its parent, given this rule:

BODY {color: purple;}

then, by default, the border around the image will be purple. Of course, to get that border to appear, you have to do a little work first.

7.4.1. Borders with Style

We'll talk about the border's style first because it is the most important part of a border. It's most important not because it controls the appearance of the border, although it does do that, but because without a style there would be no border at all.

border-style

Values

none | dotted | dashed | solid | double | groove | ridge | inset | outset

Initial value

none

Inherited

no

Applies to

all elements

WARNING

Support for only solid is required for CSS1 compliance.

There are nine distinct styles for the property border-style defined in CSS1, including the default value of none. They are demonstrated in Figure 7-29.

Figure 7-29. Border styles

TIP

The most interesting border style is double. It's defined such that the width of the two lines, plus the width of the space between them, is equal to the value of border-width (discussed in the next section). However, the specification doesn't say whether one of the lines should be thicker than the other, or if they should be the same width, or if the space should be thicker or thinner than the lines. All of these things are left up to the user agent to decide.

All of the borders shown in Figure 7-30 are based on a color of gray, which makes all of the effects easier to see. The look of a border style is always based in some way on the color of the border, although the exact method may vary between user agents. For example, Figure 7-30 illustrates two different ways of rendering an inset border.

Figure 7-30. Two valid ways of rendering inset

So let's assume that you want to define a border style for images that are inside a hyperlink. You might make them outset, so they have a "raised button" look, as depicted in Figure 7-31:

A:link IMG {border-style: outset;}

Figure 7-31. Applying an outset border to a hyperlinked image

Again, the color of the border is based on the element's value for color, which in this circumstance is likely to be blue (although we can't show that in print). This is due to the fact that the image is contained with a hyperlink, and the foreground color of hyperlinks is usually blue. If we so desired, we could change that color to be silver, like this:

A:link IMG {border-style: outset; color: silver;}

As Figure 7-32 shows, the border is now based on the light gray silver, since that's now the foreground color of the image -- even though the image doesn't actually use that color, it's still passed on to the border. We'll talk about another way to change border colors in a later section.

Figure 7-32. Changing the color of the border

7.4.1.1. Multiple styles

It's also possible to define more than one style for a given border. For example:

P.aside {border-style: solid dashed dotted solid;}

The result, shown in Figure 7-33, is a paragraph with a solid top border, a dashed right border, a dotted bottom border, and a solid left border.

Figure 7-33. Multiple border styles on a single element

Again we see the top-right-bottom-left order of values. This is just like the ability to set different margins with multiple values. All the same rules about value replication apply to border styles, just as they did with margins and padding. Thus, the following two statements would have the same effect, as depicted in Figure 7-34:

P.new1 {border-style: solid dashed none;}
P.new2 {border-style: solid dashed none dashed;}

Figure 7-34. Equivalent style rules

In case you're wondering, under CSS1, there is no way to directly set the style for only a single side using something like border-top-style, since no such property exists in CSS1 (although that property, and others like it, were introduced in CSS2). You can, however, sneak around this limitation by declaring the style for a given border using one of the shorthand properties we'll discuss later in the chapter.

7.4.1.2. Falling back on solid

There is one interesting thing about CSS that can make life difficult for authors. According to CSS1, a user agent is allowed to interpret any value of border-style (besides none) as solid. Because of this allowance, a user agent that is technically CSS1-compliant could display the following as all solid:

P.new3 {border-style: ridge dashed double;}

The result shown in Figure 7-35 wouldn't be what the author had in mind, of course, but it's technically correct. So long as none and solid are supported, and any other legal values are interpreted as solid, that's enough to be CSS1-compliant. Accordingly, even though Navigator 4.x fails to render dashed and dotted borders, since it does render them as solid, it's not behaving badly.

Figure 7-35. Using solid to stand in for unrecognized border styles

You may have noticed that all of the examples in this section had borders of exactly the same width. That's because we didn't define a width, so it defaulted to a certain value. Next, we'll find out about that default, and much more.

7.4.2. Border Widths

Once you've assigned a style, the next step in customizing a border is to give it some width. This is done with the property border-width. You can also use one of the cousin properties: border-top-width , border-right-width , border-button-width , and border-left-width .

Each of these is used to set the width on a specific border side, of course, just as with the margin properties.

border-width

Values

[ thin | medium | thick | <length> ]{1,4}

Initial value

not defined for shorthand properties

Inherited

no

Applies to

all elements

border-top-width, border-right-width, border-bottom-width, border-left-width

Values

thin | medium | thick | <length>

Initial value

medium

Inherited

no

Applies to

all elements

There are four ways to assign a width to a border: you can give it a length value such as 4px or 0.1em or use one of three keywords. These keywords are thin , medium (the default value), and thick. These keywords don't necessarily correspond to any particular width but are simply defined in relation to one another. According to the specification, thick is always wider than medium , which is in turn always wider than thin.

However, the exact widths are not defined, so one user agent could set them to be equivalent to 5px , 3px , and 2px , while another sets them to be 3px , 2px , and 1px . Whatever width the user agent uses for each keyword, it will be the same throughout the document, regardless of the circumstances. If medium is the same as 2px , then a medium-width border will always be two pixels wide, whether the border surrounds an H1 or a P element. Figure 7-36 illustrates one way to handle these three keywords, as well as how they relate to each other and to the content they surround.

Figure 7-36. The relation of border-width keywords to each other

Let's suppose a paragraph has margins, a background color, and a border style set as shown in Figure 7-37:

P {margin: 5px; background-color: silver; border-style: solid;}

Figure 7-37. Margins, backgrounds, and borders

The border's width is, by default, medium , as we can see in Figure 7-37. We can change that to the result in Figure 7-38 as follows:

P {margin: 5px; background-color: silver;
  border-style: solid; border-width: thick;}

Figure 7-38. Changing the width of the border

This can be taken to fairly ridiculous extremes, such as setting 20-pixel borders as depicted in Figure 7-39:

P {margin: 5px; background-color: silver;
  border-style: solid; border-width: 20px;}

Figure 7-39. Inflating the border width to unhealthy levels

This is all as expected: the style and width combine to create a border whose color is based on the foreground color of the element.

It's also possible to set widths for individual sides. This is done in two familiar ways. The first is to use any of the specific properties mentioned at the beginning of the section, such as border-bottom-width. The other way is to use value replication in border-width. These are both illustrated in Figure 7-40.

H1 {border-style: none none dotted; border-bottom-width: thin;}
P {border-style: solid; border-width: 15px 2px 7px 4px;}

Figure 7-40. Value replication and uneven border widths

7.4.2.1. No border at all

So far, we've only talked about what happens when you're using a visible border style such as solid or outset. Things start to get interesting, though, when the border style is set to be none:

P {margin: 5px; border-style: none; border-width: 20px;}

As we can see in Figure 7-41, despite the fact that the border's width was set to be 20px , when the style is set to none, not only does the border's style go away, so does its width! Why?

Figure 7-41. The incredible disappearing border

If you'll remember, the terminology used in the previous section was that a border with a style of none does not exist. Those words were picked carefully because they help explain what's going on here. Since the border doesn't exist, it can't have any width, so the width is automatically set to 0 (zero). This may seem completely backward, but it actually makes a great deal of sense. After all, if a drinking glass is empty, you can't really describe it as being half-full of nothing. You can only discuss the depth of a glass's contents if it has actual contents. In the same way, talking about the width of a border only makes sense in the context of borders that have some existence.

This is important to bear in mind because a common mistake is to forget to declare a border style. This leads to all kinds of author frustration because at first glance, the styles appear correct. The result, though, is a paragraph with no border:

P {margin: 5px; border-width: 20px;}

Since the default value of border-style is none, failure to declare a style is exactly the same as declaring border-style: none. Therefore, if you want a border to appear, you need to pick a style and declare it.

7.4.3. Border Colors

Compared to the other aspects of borders, setting the color is pretty easy. In CSS1, there is the single property border-color, which can accept up to four color values at one time.

border-color

Values

<color>{1,4}

Initial value

the value of <color> for the element

Inherited

no

Applies to

all elements

If there are less than four values, value replication takes effect. So if you want H1 elements to have thin, black top and bottom borders with thick, gray side borders, and medium, gray borders around P elements, this will suffice, as we can see in Figure 7-42:

H1 {border-style: solid; border-width: thin thick; border-color: black gray;}
P {border-style: solid; border-color: gray;}

Figure 7-42. Borders have many aspects

By default, a single color value will be applied to all four sides, as with the paragraph in the previous example. On the other hand, if you supply four color values, you can get a different color on each side. Any type of color value can be used, from named colors to hexadecimal and RGB values.

P {border-style: solid; border-width: thick;
  border-color: black rgb(25%,25%,25%) #808080 silver;}

Figure 7-43 shows us varying shades of gray for borders. Thanks to the grayscale nature of this book, I've been sticking mostly to shades of gray, but any color could be used. If you wanted an H1 with a red, green, blue, and yellow border, it's this easy:

H1 {border-style: solid; border-color: red green blue yellow;}

Figure 7-43. One border, many colors

As previously discussed, if no colors are defined, then the default color is the foreground color of the element. Thus, the following declaration will be displayed as shown in Figure 7-44:

P.shade1 {border-style: solid; border-width: thick; color: gray;}
P.shade2 {border-style: solid; border-width: thick; color: gray;
   border-color: black;}

Figure 7-44. Border colors based on the element's foreground (top) and the value of the border-color property (bottom)

The result is that the first paragraph has a gray border, having taken the value gray from the foreground color of the paragraph itself. The second paragraph, on the other hand, has a black border because that color was explicitly assigned using border-color.

7.4.4. Shorthand Border Properties

While it's nice to have shorthand properties like border-color and border-style, they aren't always a whole lot of help. For example, you might want to set all H1 elements to have a thick, gray, solid border, but only along the bottom. There are two ways to accomplish this:

H1 {border-bottom-width: thick;   /* option #1 */
  border-style: none none solid;
  border-color: gray;}
H1 {border-width: 0 0 thick;     /* option #2 */
  border-style: none none solid;
  border-color: gray;}

Neither is really convenient, given all the typing involved. Fortunately, a better solution is available:

H1 {border-bottom: thick solid gray;}

This will apply the values to the bottom border alone, as shown in Figure 7-45, leaving the others to their defaults. Since the default border style is none, no borders appear on the other three sides of the element.

Figure 7-45. Shorthand properties make styles easier

As you may have guessed, there are a total of four such shorthand properties.

border-top, border-right, border-bottom, border-left

Values

<border-width> || <border-style> || <color>

Initial value

refer to individual properties

Inherited

no

Applies to

all elements

It's possible to use these properties to create some complex borders, such as those shown in Figure 7-46:

H1 {border-left: 3px solid gray;
  border-right: black 0.25em dotted;
  border-top: thick silver inset;
  border-bottom: double rgb(33%,33%,33%) 10px;}

Figure 7-46. Very complex borders

As you can see, the order of the actual values doesn't really matter. The following three rules will yield exactly the same border, as illustrated in Figure 7-47:

H1 {border-bottom: 3px solid gray;}
H2 {border-bottom: solid gray 3px;}
H3 {border-bottom: 3px gray solid;}

Figure 7-47. Getting the same result in three different ways

You can also leave out some values and have their defaults kick in, like this:

H3 {color: gray; border-bottom: 3px solid;}

Since no border color is declared, the default value (the element's foreground) is applied instead, as we can see in Figure 7-48. Just remember that if you leave out a border style, the default value of none will prevent your border from appearing at all.

Figure 7-48. Letting default values fill in the gaps

By contrast, if you set only a style, you will still get a border. For example, let's say you simply want a border style of dashed for the top of an element and are willing to let the width default to medium and the color to be inherited from the element itself. All you need in such a case is the following:

P.roof {border-top: dashed;}

Another thing to note is that since each of these "border-side" properties applies only to a specific side, there isn't any possibility of value replication -- it wouldn't make any sense. There can only be one of each type of value: that is, only one width value, only one color value, and only one border style. So don't try to declare more than one value type:

H3 {border: thin thick solid purple;}  /* two width values--WRONG */

In such a case, the entire statement will be invalid and should be ignored altogether.

Finally, you need to take the usual precautions with shorthand properties: if you omit a value, the default will be filled in automatically. This can have unintended effects. Consider the following:

H4 {border-style: dashed solid double;}
H4 {border: medium green;}

This will result in H4 elements having no border at all, because the lack of a border-style in the second rule means that the default value of none will be used. As we've seen, that will turn the border off altogether.

7.4.4.1. Setting borders as quickly as possible

With all of this shorthand stuff, you're probably starting to suspect that it goes even further, and you're right. We finally come to the shortest shorthand border property of all: border.

border

Values

<border-width> || <border-style> || <color>

Initial value

refer to individual properties

Inherited

no

Applies to

all elements

This property has the advantage of being very compact, although that brevity introduces a few limitations. Before we worry about that, let's see how border is used. If you want all H1 elements to have a thick, silver border, it's very simple. This declaration would be displayed as shown in Figure 7-49:

H1 {border: thick silver solid;}

Figure 7-49. A really short border declaration

The values are applied to all four sides. This is certainly preferable to the next-best alternative, which would be:

H1 {border-top: thick silver solid;
  border-bottom: thick silver solid;
  border-right: thick silver solid;
  border-left: thick silver solid;}  /* same as previous markup */

The drawback with border is that you can only define "global" styles, widths, and colors. In other words, the values you supply for border will apply to all four sides equally. If you want the borders to be different for a single element, you'll need to use some of the other border properties. Of course, it's possible to turn the cascade to your advantage:

H1 {border: thick silver solid;
  border-left-width: 20px;}

The second rule overrides the width value for the left border assigned by the first rule, thus replacing thick with 20px , as we see in Figure 7-50.

Figure 7-50. Using the cascade to one's advantage

7.4.5. Borders and Inline Elements

A lot of this story will sound pretty familiar because it's largely the same as what we discussed with margins and inline elements.

In the first place, no matter how thick you make your borders on inline elements, the line-height of the element won't change. Let's set top and bottom borders on boldfaced text:

B {border-top: 10px solid gray; border-bottom: 5px solid silver;}

Once more, this is allowed in the specification, but it will have absolutely no effect on the line height. However, since borders are visible, they'll be drawn -- as you can see for yourself in Figure 7-51.

Figure 7-51. Borders on inline elements

The borders have to go somewhere. This is where they went.

Again, all of this is only true for the top and bottom sides of inline elements; the left and right sides are a different story. We'll start by considering the simple case of a small inline element within a single line, as depicted in Figure 7-52.

Figure 7-52. An inline element

Here, if we set values for the left or right border, not only will they be visible, but they'll displace the text around them, as we see in Figure 7-53:

B {border-left: 10px double gray; background: silver;}

Figure 7-53. An inline element with a left border

As expected, Figure 7-53 shows a little extra space on the left side of the inline element and no extra space above or below it.

With borders, just as with margins, the browser's calculations for line-breaking are not directly affected by any box properties set for inline elements. The only effect is that the space taken up by the borders may shift portions of the line over a bit, which may in turn change which word is at the end of the line. Turn to Figure 7-54 to see what happens when an inline element with a border is displayed across multiple lines:

B {border: 3px solid gray; background: silver;}

Figure 7-54. An inline element with a border displayed across multiple lines of text

In Figure 7-54, the left border is applied to the beginning of the element, and the right border to the end of it. Borders are not necessarily applied in this fashion; they can also be applied to the right and left side of each line in the element, if the situation seems to demand it. For example, a grooved border might look better enclosed on each line end, as shown in Figure 7-55.

Figure 7-55. An inline element with a border displayed across multiple lines of text, with the border boxes closed

It's also acceptable for the lines to be "open" as shown in Figure 7-54.

WARNING

Borders cannot be applied to inline elements in Navigator 4.x or Explorer 4.x/5.x. Only Opera 3.x draws borders around inline elements, and it only caps the beginning and end of the element. This is in agreement with the CSS specification, although this is not discussed here (see Chapter 8, "Visual Formatting", for more details).

7.4.6. Borders: Known Issues

Of course, there are a few problems with using borders. The most distressing is the fact that Navigator 4.x won't draw a border around the content area of a block-level element but instead inserts some space between the content and the border. There doesn't seem to be any way to override this behavior.

Despite its limitations, border is obviously a very useful property. It can even be used to work around what seems like a completely unrelated bug in Netscape Navigator 4.x. If you assign a background color to an element and then view it in Navigator 4.x, the color will only appear behind the letters in the text and not cover the entire content area and padding. You can get around this by declaring:

border {0.1px solid none;}

Despite the fact that no border will appear, and this shouldn't have anything to do with background colors, this will cause Navigator 4.x to fill in the background of the content area with the assigned color.

Speaking of Navigator, it is extremely dangerous to set borders -- or any other box properties -- on inline elements. This is as true for borders as it is for margins, and for much the same reasons.

Previous | Home | Next
7.3. Margins | Book Index | 7.5. Padding


Padding (Cascading Style Sheets: The Definitive Guide)

7.5. Padding

Between the borders and the content area, we find the padding of the element box. It will come as no surprise that the simplest property used to affect this area is called padding.

padding

Values

[ <length> | <percentage> ]{1,4}

Initial value

0

Inherited

no

Applies to

all elements

WARNING

Percentage values refer to the width of the parent element.

As you can see, this property accepts any length value or a percentage. That's all. So if you want all H1 elements to have 10 pixels of padding on all sides, it's this easy, as the result shown in Figure 7-56 makes clear:

H1 {padding: 10px; background-color: silver;}

Figure 7-56. Padding applied to an H1 element

On the other hand, we might want H1 elements to have uneven padding and H2 elements to have regular padding, as shown in Figure 7-57:

H1 {padding: 10px 0.25em 3ex 3cm;} /* uneven padding */
H2 {padding: 0.5em 2em;} /* values replicate to the bottom and left sides */

Figure 7-57. Uneven padding

It's a little tough to see the padding, though, so let's add a background color, as shown in Figure 7-58:

H1 {padding: 10px 0.25em 3ex 3cm; background: silver;}
H2 {padding: 0.5em 2em; background: silver;}

Figure 7-58. Uneven padding with background colors

As Figure 7-58 demonstrates, the background of an element extends into the padding. As we discussed before, it also extends to the outer edge of the border, but the background has to go through the padding before it even gets to the border.

The default value of padding is 0 (zero), and padding values cannot be negative.

WARNING

Opera 3.5 allows negative padding values, but this was fixed in Opera 3.6. The other browsers don't allow negative padding lengths.

7.5.1. Percentage Values and Padding

As stated earlier, it's possible to set percentage values for the padding of an element. Percentages are computed in relation to the width of the parent element, so they can change if the parent element's width changes in some way. For example, assume the following, which is illustrated in Figure 7-59:

P {padding: 10%; background-color: silver;}

<DIV STYLE="width: 200px;">
<P>This paragraph is contained within a DIV which has a width of 200 pixels,
so its padding will be 10% of the width of the paragraph's parent element.
Given the declared width of 200 pixels, the padding will be 20 pixels on
all sides.</P>
</DIV>
<DIV STYLE="width: 100px;">
<P>This paragraph is contained within a DIV with a width of 100 pixels,
so its padding will still be 10% of the width of the paragraph's parent.
There will, therefore, be half as much padding on this paragraph as that
on the first paragraph.</P>

Figure 7-59. Padding, percentages, and the widths of parent

We've seen this before, of course -- in Section 7.3, "Margins", in case you don't remember -- but it's worth reviewing again, just to see how it operates.

7.5.2. Single-Side Padding

You guessed it: there are properties that let you set the padding on a single side of the box, without affecting the other sides.

padding-top, padding-right, padding-bottom, padding-left

Values

<length> | <percentage>

Initial value

0

Inherited

no

Applies to

all elements

WARNING

Percentage values refer to the width of the parent element.

These properties operate as you'd expect by now. For example, the following two rules will give the same amount of padding:

H1 {padding: 0 0 0 0.25in;}
H2 {padding-left: 0.25in;}

7.5.3. Padding and Inline Elements

There is one major difference between margins and padding when it comes to inline elements. Let's turn things around and talk about left and right padding first off. Here, if we set values for the left or right padding, they will be visible, as Figure 7-60 makes apparent.

B {padding-left: 10px; padding-right: 10px; background: silver;}

Figure 7-60. Padding on an inline element

Note the extra background space that appears on either end of the boldfaced text. There's your padding.

This all seems familiar enough, even when the boldfaced text stretches across multiple lines. Turn to Figure 7-61 to see what happens with padding set on an inline element displayed across multiple lines:

B {padding: 10px; background: silver;}

Figure 7-61. Padding on an inline element that spans multiple lines

As with margins, the left padding is applied to the beginning of the element, and the right padding to the end of it; padding is not applied to the right and left side of each line.

Now let's talk about top and bottom padding. In theory, an inline element with a background color and padding could have the background extend above and below the element. Figure 7-61 gives us some idea of what that might look like. The line height isn't changed, of course, but since padding does extend the background, it should be visible, right?

Here's where the famous phrase returns: "there may be implementation-specific limits." User agents aren't required to support this type of effect.

7.5.4. Padding: Known Issues

In the first place, padding and Navigator 4.x just plain don't get along. The main problem is that you can set padding on an element with a background color, but the background won't extend into the padding unless you get very sneaky. You need to add a border, as was discussed earlier in "Margins: Known Issues." Therefore, if you have a background color, some padding, and a border set for an element, you'll see the background fill the content area and the padding as requested, but a transparent space will incorrectly appear between the two, as shown in Figure 7-62.

Figure 7-62. Padding problems in Navigator 4

This may be an interesting effect, but it isn't permissible under the CSS specification, and no other browser will do the same thing, so it's best to avoid this altogether.

Even worse, if you try applying padding to inline elements in Navigator 4.x, you get a huge mess. The same sorts of things that happen when you apply margins to inline elements will happen if you apply padding, so it is wise to avoid setting margins, borders, or padding on inline elements.

Opera 3.5 incorrectly permits negative values for padding, but version 3.6 does not suffer from this problem. Internet Explorer 4.x will not apply padding to inline elements at all -- which is probably just as well.

Previous | Home | Next
7.4. Borders | Book Index | 7.6. Floating and Clearing


Floating and Clearing (Cascading Style Sheets: The Definitive Guide)

7.6. Floating and Clearing

You are almost certainly acquainted with the concept of floated elements. Ever since Netscape 1.0, it has been possible to float images by declaring, for instance, <IMG SRC="b5.gif" align="right">. This causes an image to float to the right, and allows other content (text or other images) to "flow around" the image. In the past, this was only possible with images and, in some browsers, tables. CSS, on the other hand, allows any element to float, from images to paragraphs to lists. In CSS, this behavior is accomplished using the property float.

float

Values

left | right | none

Initial value

none

Inherited

no

Applies to

all elements

For example, to float an image to the right, you could use this markup:

<IMG SRC="b5.gif" style="float: right;" alt="section b5">

As Figure 7-63 makes clear, the image "floats" to the right side of the browser window. This is just what we expect. However, some interesting issues are raised in the course of floating elements in CSS.

Figure 7-63. A floating image

7.6.1. Floated Elements

There are a few things to keep in mind with regard to floating elements. In the first place, a floated element is in some respects removed from the normal flow of the document, although it still affects the layout. In a manner utterly unique to CSS, floated elements exist almost on their own plane, yet they still have major influence over the rest of the document.

Of course, when an element is floated, other content "flows around" it. This is familiar behavior with floated images, but the same is true if you float a paragraph, for example. In Figure 7-64, we can see this effect (a margin has been added to make the situation more clear):

P.aside {float: left; width: 5em; margin: 1em;}

Figure 7-64. A floating paragraph

One of the first interesting things to notice about floated elements is that margins around floated elements do not collapse. If you float an image with 20-pixel margins, there will be at least 20 pixels of space around that image. If other elements adjacent to the image -- and that means adjacent horizontally and vertically -- also have margins, those margins will not collapse with the margins on the floated image, as we can see in Figure 7-65:

P IMG {float: right; margin: 20px;}

Figure 7-65. Floating images with margins

(To resurrect the old paper-and-plastic analogy, the plastic margins around an image never overlap the plastic surrounding other elements.)

If you do float a text element, realize that unless you declare a width for that element, the CSS specification says that its width will tend toward zero. Thus, a floated paragraph could literally be one character wide, assuming that to be the browser's minimum value for width. In order to avoid this problem, make sure that you declare a width for your floated elements. Otherwise, you could get something like Figure 7-66.

Figure 7-66. Floated text without an explicit width

7.6.1.1. Backgrounds and floats

There are many other interesting effects associated with floating elements. Take the example of a short document, composed of no more than a few paragraphs and H3 elements, where the first paragraph contains a floated image. Further, this floated image has a right margin of five pixels (5px). You would expect the document to be rendered very much as shown in Figure 7-67.

Figure 7-67. Floating an image

Nothing unusual there, of course, but look what happens when we set the first paragraph to have a background, as has been done in Figure 7-68.

Figure 7-68. Floating images and element backgrounds

There is nothing different about the second example, except for the visible background. As you can see, the floated image sticks out of the bottom of its parent element. Of course, it did so in the first example, but it was less obvious there because we couldn't see the background then. There is nothing forbidden about this behavior.

WARNING

In practice, some browsers may not do this correctly. Instead, they will increase the height of a parent element so that the floated element is contained within it, even though this results in a great deal of extra blank space within the parent element.

Then there is the question of what happens to elements that flow past a floated element but have visible backgrounds. Let's take the preceding example and change it so that the second H3 element has a visible background and border, as has been done in Figure 7-69.

Figure 7-69. More floating images and element backgrounds

Yes, the figure is correct: the content of the H3 flows past the image, and the background "slides under" the image, so to speak. This is, in its way, no different than the example in which the paragraph that contained the floated image had a visible background.

7.6.1.2. Negative margins and floating

Negativity, of course, always complicates the situation. Let's consider an image that is floated to the left and has left and top margins of -15px . This image is placed inside a DIV that has no padding, borders, or margins. The result will be as shown in Figure 7-70.

Figure 7-70. A floating image with negative top and left margins

The math in this situation works out something like this: assume the top inner edge of the DIV is at the pixel position 100. The browser, in order to figure out where the top inner edge of the floated element should be will do this: 100px + (-15px) margin + 0 padding = 85px . Thus the top inner edge of the floated element should be at pixel position 85.

A similar line of reasoning explains how the left inner edge of the floated element can be placed to the left of the left inner edge of its parent. This ability can be used for interesting effects like hanging floated images, but only if the browser honors negative margins on floated elements. If it does, the result will be something like that shown in Figure 7-71.

Figure 7-71. Hanging float

There is one important question here, which is this: what happens to the document display when an element is floated out of its parent element by using negative margins? For example, an image could be floated so far up that it intrudes into a paragraph that has already been displayed by the user agent.

In this case, it's up to the user agent, but the CSS specifications explicitly state that user agents are not required to reflow previous content to accommodate things that happen later in the document. In other words, if an image is floated up into a previous paragraph, it may simply overwrite whatever was already there. On the other hand, the user agent may handle the situation by flowing content around the float, even though doing so isn't required behavior. Either way, it's probably a bad idea to count on a particular behavior, which makes the utility of negative margins on floats rather limited. Hanging floats are probably fairly safe, but trying to push an element upward on the page is generally a bad idea.

There is one other case where a floated element can run outside of its parent element, and that's when the floated element is wider than its parent. In that case, the floated element will simply overrun either the right or left inner edge in its best attempt to display itself correctly, depending on which way it was floated. In such a case, you get the result shown in Figure 7-72.

Figure 7-72. Floating an image wider than its parent element

Here, a left-floated image is wider than its parent, so its right edge overruns the right edge of the parent element. Had the image been floated to the right, then it would have overrun the left side of the parent element instead.

7.6.1.3. No floating at all

There is one other value for float besides left and right. float: none is used to prevent an element from floating at all. This might seem a little silly, since the easiest way to keep an element from floating is to simply avoid declaring a float, right? Well, first of all, the default value of float is none. In other words, the value has to exist in order for normal, nonfloating behavior to be possible; without it, all elements would float in one way or another.

Second, it's possible that you might want to override a certain style from an imported style sheet. Imagine that you're using a server-wide style sheet that floats images. On one particular page, you don't want those images to float. Rather than writing a whole new style sheet, you could simply place IMG {float: none;} in your document's embedded style sheet. Beyond this type of circumstance, though, there really isn't much call to use float: none in your HTML documents.

7.6.2. Clear

Well, we talked about a lot of floating behavior, so there's only one more thing to discuss. You won't always want your content to flow past a floated element -- in some cases, you'll specifically want to prevent it.

If you have a document that is grouped into sections, you might not want the floated elements from one section hanging down into the next. In that case, you'd want to set the first element of each section to prohibit floating elements from appearing next to it. If it might otherwise be placed next to a floated element, it will be pushed down until it appears below the floated image, and all subsequent content will appear after that, as shown in Figure 7-73.

Figure 7-73. Displaying an element in the clear

This is done with clear.

clear

Values

left | right | both | none

Initial value

none

Inherited

no

Applies to

all elements

For example, to make sure all H2 elements are not placed to the right of left-floated elements, then you would declare H2 {clear: left;}. This can be translated as "make sure that the left side of an H2 is clear of floating images" and is a replacement for the HTML construct <BR clear="left">. Figure 7-74 shows the following declaration, which uses clear to prevent H2 elements from flowing past floated elements to the left side:

H2 {clear: left;}

Figure 7-74. Clear to the left

However, this will allow floated elements to appear on the right side of H2 elements, as shown in Figure 7-75.

Figure 7-75. Clear to the left, but not the right

To avoid this sort of thing, and to make sure that H2 elements do not coexist on a line with any floated elements, we use the value both. This value prevents coexistence with floated elements on both sides of the element, as shown in Figure 7-76:

H2 {clear: both;}

Figure 7-76. Clear on both sides

If, on the other hand, we're only worried about H2 elements flowing past floated elements to their right, then we'd use H2 {clear: right;}, with the result shown in Figure 7-77.

Figure 7-77. Clear to the right

Finally, there's clear: none, which allows elements to float to either side of an element. As with float: none, this value mostly exists to allow for normal document behavior, in which elements will permit floated elements to both sides. none can be used to override other styles, of course, as shown in Figure 7-78. Despite the document-wide rule that H2 elements will not permit floated elements to either side, one H2 in particular has been set so that it does permit floated elements on either side:

H2 {clear: both;}

<H2 STYLE="clear: none;">Not Cleared!</H2>

Figure 7-78. Not clear at all

clear works by increasing the top margin of an element so that it ends up below a floated element, so any margin width set for the top of a cleared element should be effectively ignored. That is, instead of being 1.5em , for example, it could be increased to 10em , or 25px , or 7.133in , or however much is needed to move the element down far enough so that the content area is below the bottom edge of a floated element.

Previous | Home | Next
7.5. Padding | Book Index | 7.7. Lists


Lists (Cascading Style Sheets: The Definitive Guide)

7.7. Lists

There are a total of three properties that can affect the display of a list item under CSS1 -- CSS2 adds a few more, all of which are mentioned in Chapter 10, "CSS2: A Look Ahead" -- and one shorthand property to tie them all together. These properties are used to affect the type of bullet used in a list, to replace the bullet with an image, and to affect where the bullet or image appears in relation to the text of the list item.

Just in case you're unfamiliar with the concept of a "bullet," it's the little decoration to the side of a list item, as depicted in Figure 7-79.

Figure 7-79. Bullets

In an unordered list, these will be little symbols, but in an ordered list, the bullet could be a letter or number.

7.7.1. Types of Lists

This part will probably seem very familiar to those of you who have been fiddling with lists in HTML. In order to change the type of counter or bullet used for a list's items, you would use the list-style-type.

list-style-type

Values

disc | circle | square | decimal | upper-alpha | lower-alpha | upper-roman | lower-roman | none

Initial value

disc

Inherited

yes

Applies to

list-item elements

The meaning of these values is shown in Table 7-1.

Table 7-1. Values of the list-style property and their results

Keyword | Effect
disc | use a disc (usually a filled circle) for list item bullets
circle | use a circle (usually open) for bullets
square | use a square (filled or open) for bullets
decimal | 1, 2, 3, 4, 5, ...
upper-alpha | A, B, C, D, E, ...
lower-alpha | a, b, c, d, e, ...
upper-roman | I, II, III, IV, V, ...
lower-roman | i, ii, iii, iv, v, ...
none | use no bullet

These properties can only be applied to any element that has a display of list-item , of course, but CSS doesn't distinguish between ordered and unordered list items. Thus, you might be able to set an ordered list to use discs instead of numbers. In fact, the default value of list-style-type is disc, so you might theorize that without explicit declarations to the contrary, all lists (ordered or unordered) will use discs as the bullet for each item. In fact, that's up to the user agent to decide. Even if the user agent doesn't have a predefined rule such as OL {list-style-type: decimal;}, it may prohibit ordered bullets from being applied to unordered lists, and vice versa. You can't count on this, of course, so be careful.

If you wish to suppress the display of bullets altogether, then none is the value you seek. none will cause the user agent to refrain from putting anything where the bullet would ordinarily be, although it does not interrupt the counting in ordered lists. Thus, the following markup would have the result shown in Figure 7-80:

OL LI {list-style-type: decimal;}
LI.off {list-style-type: none;}

<OL>
<LI>Item the first
<LI CLASS="off">Item the second
<LI>Item the third
<LI CLASS="off">Item the fourth
<LI>Item the fifth
</OL>

Figure 7-80. Switching off list-item markers

list-style-type is inherited, so if you want to have different styles of bullet in nested lists, you'll need to define them individually. You may also have to explicitly declare styles for nested lists because the user agent's style sheet may already have defined such styles. Assume that a UA has the following styles defined:

UL {list-style-type: disc;}
UL UL {list-style-type: circle;}
UL UL UL {list-style-type: square;}

If this is so, and it's likely that it will be, you will have to declare your own styles to overcome the UA's styles. Inheritance won't be enough in such a case.

7.7.2. List Item Images

Sometimes, of course, a pregenerated bullet just won't do. Instead, you feel the need to use an image for each bullet. In the past, the only way to achieve this sort of effect was to fake it. Now all you need is a list-style-image declaration.

list-style-image

Values

<url> | none

Initial value

none

Inherited

yes

Applies to

list-item elements

Here's how it works:

UL LI {list-style-image: url(ohio.gif);}

Yes, that's really all there is to it. One simple url value, and you're putting images in for bullets, as you can see in Figure 7-81.

Figure 7-81. Using images as bullets

Of course, you should exercise care in the images you use, as this example makes painfully clear (shown in Figure 7-82):

UL LI {list-style-image: url(big-ohio.gif);}

Figure 7-82. Using really big images as bullets

You should usually provide a fallback for the bullet type. Do this just in case your image doesn't load, or gets corrupted, or is in a format that some user agents might not be able to display (as is the case in Figure 7-83). Therefore, you should always define a backup list-style-type for the list:

UL LI {list-style-image: url(ohio.bmp); list-style-type: square;}

Figure 7-83. Providing fallbacks for unusable images

The other thing you can do with list-style-image is set it to the default value of none. This is good practice because list-style-image is inherited -- so any nested lists will pick up the image as the bullet, unless you prevent this from happening:

UL {list-style-image: url(ohio.gif); list-style-type: square;}
UL UL {list-style-image: none;}

Since the nested list inherits the item type square but has been set to use no image for its bullets, squares are used for the bullets in the nested list, as shown in Figure 7-84.

Figure 7-84. Switching off image bullets in sublists

WARNING

Remember that this may not be true in the real world: a user agent may have already defined a list-style-type for UL UL, so the value of square won't be inherited after all. Your browser may vary.

In the case of ordered lists, CSS2 goes a great deal further than CSS1 to provide control over the ordering. For example, there is no way in CSS1 to automatically create subsection counters such as "2.1" or "7.1.3." This can, however, be done under CSS2 and is briefly discussed in Chapter 10, "CSS2: A Look Ahead".

7.7.3. List Item Positions

There is one other thing you can do to influence the appearance of list items under CSS1, and that's change the position of the bullet itself, in relation to the content of the list item. This is accomplished with list-style-position.

list-style-position

Values

inside | outside

Initial value

outside

Inherited

yes

Applies to

list-item elements

If a bullet's position is set to outside, it will appear the way list items always have on the Web, as you can see in Figure 7-85:

LI {list-style-position: outside;}

Figure 7-85. Placing the bullets outside list items

Should you desire a slightly different appearance, though, you can pull the bullet in toward the content by setting the value to be inside:

LI.first {list-style-position: inside;}

This causes the bullet to be placed "inside" the list item's content. The exact way this happens is undefined, but Figure 7-86 shows one possibility.

Figure 7-86. Placing the bullets inside and outside list items

CSS2, by the way, provides a good deal more control over the positioning of the bullets (called "markers" in CSS2); again, this is discussed in Chapter 10, "CSS2: A Look Ahead".

7.7.4. List Styles In Shorthand

For brevity's sake, you can combine the three list-style properties into a convenient single property: list-style.

list-style

Values

<list-style-type> || <list-style-image> || <list-style-position>

Initial value

refer to individual properties

Inherited

yes

Applies to

list-item elements

For example:

LI {list-style: url(sm-ohio.gif) square inside;}

As we can see in Figure 7-87, all three values are applied to the list items.

Figure 7-87. Bringing it all together

The values for list-style can be listed in any order, and any of them can be omitted. As long as one is present, the rest will fill in their default values. For instance, the following two rules will have the same visual effect:

LI.norm {list-style: url(img42.gif);}
LI.odd {list-style: url(img42.gif) disc outside;} /* the same thing */

They will also override any previous rules in the same way. Take the following markup:

LI {list-style-type: square;}
LI.norm {list-style: url(img42.gif);}

No list item with a CLASS of norm will ever use a square. This is because the implied list-style-type value of disc for the rule LI.norm will override the previously declared value of square.

Previous | Home | Next
7.6. Floating and Clearing | Book Index | 7.8. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

7.8. Summary

The ability to apply margins, borders, and padding to any element is one of the things that sets CSS so far above traditional Web markup. In the past, enclosing a heading in a colored, bordered box meant wrapping the heading in a table, which is a really bloated and awful way to create so simple an effect. It is this sort of power that makes CSS so compelling.

Unfortunately, this is also one of the areas where CSS support failed us in early implementations. Explorer 3 and Navigator 4 both had poor implementations of the box properties, although Navigator 4's bugs are almost legendary and are certainly close to being epic in nature. As the year 2000 dawned, however, the situation was rapidly improving, thanks to Explorer 4 and 5, and Opera 3.6 (and later).

List styles, on the other hand, were fairly well supported from the very beginning of CSS implementations. The ability to set images for bullets was missing from many early user agents, but support for the various kinds of counting schemes has long been evident.

Although this chapter attempted to provide a clear view of how the box properties work, there are many nuances and details to the CSS formatting model. Including all of them would have dramatically slowed down the progress of the chapter. Instead, these are all covered in the next chapter, which is largely theoretical in nature but which provides a comprehensive explanation of the workings of the CSS formatting model.

Previous | Home | Next
7.7. Lists | Book Index | 8. Visual Formatting


Visual Formatting (Cascading Style Sheets: The Definitive Guide)

Chapter 8. Visual Formatting

Contents:

Basic Boxes
Block-Level Elements
Floated Elements
Inline Elements
Summary

In the previous chapter, we covered a great deal of information on how CSS handles the visual formatting of a document. However, we did this in a mostly practical fashion: lots of explanation about how things work, with only a little lip service paid to the questions of why. In this chapter, we turn to the theoretical side of visual rendering, with only occasional references to the practical.

You may wonder why it's necessary to spend an entire chapter on the theoretical underpinnings of visual rendering in CSS. The main reason is to cover all the bases. I attempted to provide as many and varied examples as possible in the previous chapters, but with a model as open and powerful as that contained within CSS, no book could hope to cover every possible way of combining properties and effects. Every reader of this book will obviously go on to discover new ways of using CSS for their own document effects.

In the course of so doing, you may encounter what seems like strange behavior on the part of user agents. With a thorough grasp of how the visual rendering model works in CSS, you'll be able to determine whether the behavior is a correct (if unexpected) consequence of the rendering engine CSS defines or whether you've stumbled across a bug that needs to be reported. (See Appendix A, "CSS Resources", for details on how to report problems with rendering engines.)

8.1. Basic Boxes

In the rendering of elements, CSS assumes that every element generates one or more rectangular boxes, called element boxes . (Future versions of the specification may allow for nonrectangular boxes, but for now everything is rectangular.) Each element box consists of a content area at its core. This content area is surrounded by optional amounts of padding, borders, and margins. These are considered optional because all could be set to a width of zero, effectively removing them from the element box. An example content area is shown in Figure 8-1, along with the surrounding regions of padding, border, and margins.

Figure 8-1. The content area and its surroundings

Each of the margins, borders, and padding can be set using various properties, such as margin-left or border-bottom. The content's background (for example, a color or tiled image) is also applied to the padding, while the margins are always transparent, allowing the background of any parent elements to be visible. In effect, the margins simulate the HSPACE and VSPACE attributes of images, although in a much more sophisticated fashion. Padding cannot be set to a negative value, but margins can. The effects of negative margins are explored later in this chapter.

The borders, on the other hand, have their own rules. Borders are generated using defined styles, such as solid or inset, and their color can be set using the border-color property. If no color is set, then the color of the border is based on the foreground color of the element's content. For example, if the text of a paragraph is white, then any borders around that paragraph will be white, unless a different border color is explicitly declared by the author. If a border style has "gaps" of some type, then the element's background is visible through those gaps; in other words, the border has the same background as the content and padding. Finally, the width of a border can never be negative.

There are differences in how different types of elements are formatted, however. Block-level elements are not treated in the same way that inline elements are, for example, and floated elements introduce a whole new level of complexity. Let's examine each type of element in turn.

Previous | Home | Next
7.8. Summary | Book Index | 8.2. Block-Level Elements


Block-Level Elements (Cascading Style Sheets: The Definitive Guide)

8.2. Block-Level Elements

Block-level elements -- such as paragraphs, H1s, lists, and list elements -- behave in interesting ways, sometimes predictable, sometimes surprising. There are differences in the handling of element placement along the horizontal and vertical axes, for example. In order to fully understand how block-level elements are handled, you must clearly understand a number of boundaries and areas. They are shown in detail in Figure 8-2.

Figure 8-2. The complete box model

In general, the width of an element is defined to be the distance from the left inner edge to the right inner edge, and the height is the distance from the inner top to the inner bottom. These are both, not coincidentally, properties that can be applied to an element.

The various widths, heights, padding, margins, and borders all combine to determine how a document is laid out. In most cases, the height and width are automatically determined by the browser, based on the available display region and other factors. Under CSS, of course, you can assert more direct control over the way elements are sized and displayed. There are different effects to consider for horizontal and vertical layout, so we'll tackle them separately.

8.2.1. Vertical Formatting

Vertical formatting is much easier to cover, so let's do that first. A good deal of this was covered in the previous chapter, so we'll revisit the high points and delve into some trivia before moving on to the much more complex subject of horizontal formatting.

8.2.1.1. Height

In general, the height of an element is determined by its content. This can be affected by its width, of course; the skinnier a paragraph becomes, for example, the taller it has to be in order to contain all of the textual (and other) content.

In CSS, it is possible to set an explicit height on any block-level element. If this is done, the resulting behavior is somewhat uncertain. Assume that the specified height is greater than that needed to display the content:

<P STYLE="height: 10em;">

In this case, then the extra height is treated somewhat like extra padding, as depicted in Figure 8-3.

Figure 8-3. Setting the height property for block-level elements

If, on the other hand, the height is less than that needed to display the content:

<P STYLE="height: 3em;">

then the browser is supposed to provide a way to see all content without increasing the height. This could possibly mean adding a scrollbar to the element, as shown in Figure 8-4.

Figure 8-4. One way to handle a short height on a tall element

In practice, most browsers will not do this. They will instead simply increase the height of the element, as though the value of height had been set to auto. This is permitted under CSS1, which states that browsers can ignore any value of height other than auto if an element is not a replaced element such as an image. Under CSS2, it is possible to set up a situation where scrollbars would be applied to an element such as a paragraph.

It's also possible to set the top and bottom margins of a block-level element to be auto. If either of these properties is set to auto, it is reset to 0 (zero), effectively removing any top or bottom margin from the element box, as shown in Figure 8-5. The lack of any space between the borders of each paragraph is a result of auto being reinterpreted as zero:

P {margin-top: auto; margin-bottom: auto;}

Figure 8-5. Automatically setting margins to zero

8.2.1.2. Collapsing vertical margins

There is one other important aspect of vertical formatting, which is the collapsing of adjacent margins. This comes into play when an element with declared margins immediately follows another such element in the document's layout. This was discussed in the previous chapter, using this example:

LI {margin-top: 10px; margin-bottom: 20px;}

Padding and borders, where they exist, are never collapsed. If neither is declared, then both will default to 0 (zero). This assumes that no style is set for the border. If a border style is set, then the value of border-width defaults to medium , not zero. The exact width of medium will depend on the user agent's programming, but a common value is 2 or 3 pixels.

8.2.2. Horizontal Formatting

In contrast to vertical formatting, horizontal formatting can get a little complicated. Fortunately, it starts out simply enough; it's only when you start putting things together that the situation becomes difficult.

First off, the simplest rule is this: unlike vertical margins, horizontal margins are not collapsed. If you somehow manage to have two block-level elements next to each other, and each has a margin, the margins will not collapse. The easiest way to illustrate this principle is to set margins on two images and then have them appear on the same line, as they do in Figure 8-6:

<IMG SRC="test1.gif" STYLE="margin: 5px;" ALT="first test">
<IMG SRC="test2.gif" STYLE="margin: 5px;" ALT="second test">

(Note that the images in Figure 8-6 are actually inline elements, but they effectively demonstrate that horizontally adjacent margins do not collapse.)

Figure 8-6. Horizontal margins don't collapse

Almost as simple is this: the sum of the horizontal components of a nonfloated block-level element box always equals the width of the parent. Take two paragraphs within a DIV, for example, whose margins have been set to be 1em. The content width (in other words, the value of width) of the paragraph, plus its left and right padding, borders, and margins, always add up to the width of the DIV 's content, as illustrated in Figure 8-7.

Figure 8-7. Element boxes are as wide as the width of their parent element

Thus, if the width of the DIV is 30em , then the sum total of the content width, padding, borders, and margins of each paragraph will be 30em. In Figure 8-7, the "blank" space around the paragraphs is actually their margins. (If the DIV had any padding, there would be even more blank space, but that wasn't the case here.)

In a similar fashion, the overall width of a list item's element box is equal to the content width of the list element that contains it. As you can see in Figure 8-8, the margins of a parent element can influence the layout of a child element.

Figure 8-8. List items' overall width equals the width of the UL element

8.2.2.1. Horizontal properties

There are a number of properties relating to the layout of boxes. These are known as the "seven properties" of horizontal formatting: (from the left) margin-left, border-left, padding-left, width , padding-right, border-right, and margin-right. These are illustrated in Figure 8-9. The values of these seven properties must equal the value of width for an element's parent.

Figure 8-9. The "seven properties" of horizontal formatting

Only three of these seven properties can be set to auto: the width of the element's content, and the left and right margins. The left and right padding and borders must be set to specific values, or else they default to a width of zero (again, assuming no border-style is declared; if one has been set, then the width of the borders is set to be the vaguely defined value medium ). Figure 8-10 provides a handy illustration for remembering which parts of the box can take a value of auto, and which cannot.

Figure 8-10. Horizontal properties that can be set to auto

width must be set to either auto or a non-negative value of some type. CSS also allows browsers to set a minimum value for width, below which a block-level element's width cannot drop. The value of this minimum can vary between browsers, as it is not defined in the specification.

8.2.2.2. Using auto

If only one of width , margin-left, or margin-right is set to a value of auto, while the others are given specific values, then the property set to be auto will evaluate to whatever length is required to make the element box's width equal the parent element's width. Thus, if the sum of the seven properties must equal 400 pixels, and no padding or borders are set, and the right margin and width are set to 100px while the left margin is set to auto, then the left margin will be 200 pixels wide:

P {margin-left: auto; margin-right: 100px; width: 100px;}

The results are shown in Figure 8-11.

Figure 8-11. Automatic left margin

In a sense, auto can be used to say, "make up the difference between everything else and the required total." However, what if all three of these properties are set to 100px , and none of them to auto ?

In the case where all three properties are set to something other than auto -- or, to borrow a term from the CSS specification, when these formatting properties have been over-constrained -- then margin-right is always forced to be auto. This means that if both margins and the width are set to 100px , then the right margin will be set by the user agent to auto:

P {margin-left: 100px; margin-right: 100px; width: 100px;}

It will then evaluate to 200px , as shown in Figure 8-12.

Figure 8-12. Overriding the margin-right setting

TIP

Note that margin-right is forced to be auto only for left-to-right languages such as English. In right-to-left languages, everything gets flipped around, so margin-left is forced to be auto, not margin-right. This is not so much an issue under CSS1 as it is in CSS2, which introduces properties related to writing direction.

If both margins are set explicitly, and width is auto, then the value of width will be set to be whatever is needed to reach the required total (that is, the content width of the parent element). The following markup is displayed as shown in Figure 8-13:

P {margin-left: 100px; margin-right: 100px; width: auto;}

Figure 8-13. Automatic width

This is the most common case, in fact, since it is equivalent to setting the margins and not declaring anything for the width. The result of this markup is exactly the same as that shown in Figure 8-13:

P {margin-left: 100px; margin-right: 100px;} /* same as before */

WARNING

In practice, only browsers released in early 1999 or later correctly handle auto, and not even all of them get it right. Those that do not handle auto margins correctly will behave in inconsistent ways, but the safest bet is to assume that they will set both margins to zero. The browsers that do get this right are Internet Explorer 4.5 and 5 for Macintosh, and Opera 3.6.

8.2.2.3. More than one auto

Now let us consider the cases where two of these three properties are set to auto. If both the margins are set to auto, then they are set to equal lengths, thus centering the element within its parent, as you can see from Figure 8-14:

P {width: 100px; margin-left: auto; margin-right: auto;}

Figure 8-14. Setting an explicit width

This is the correct way to center block-level elements, as a matter of fact. text-align is supposed to apply to only the inline content of a block-level element, so setting an element to have a text-align of center shouldn't center it. Instead, you should declare:

P {margin-left: auto; margin-right: auto; width: 50%;}

This will center all paragraphs within their parent elements, as shown in Figure 8-15.

Figure 8-15. Centering an element with automatic margins

WARNING

As of this writing, only Internet Explorer 4.5 and 5 for the Macintosh and Opera 3.6 will center elements using auto margins.

The other possibility is when one of the margins and the width are set to be auto. In this case, then the margin set to be auto is reduced to zero:

P {width: auto; margin-left: auto; margin-right: 100px;}

The width is then set to the value necessary to reach the required total, as demonstrated in Figure 8-16.

Figure 8-16. Setting an explicit right margin

Finally, what happens when all three properties are set to auto ? The answer is simple: both margins are set to zero, and the width is made as wide as possible. This result is the same as the default situation when there are no values explicitly declared for margins or the width. In such a case, the margins default to zero (0) and the width defaults to auto. This is illustrated in Figure 8-17.

Figure 8-17. Everything set to auto

Note that since horizontal margins do not collapse, the padding, borders, and margin of a parent element can affect its children. This is an indirect effect, of course, in that the margins (and so on) of an element can induce an offset for child elements. Vertical margins are still collapsed, as shown in Figure 8-18:

DIV {margin: 20px; padding: 20px;}
P {margin: 10px; padding: 10px;}

Figure 8-18. Offset is implicit in the parent's margins and padding

8.2.2.4. Negative margins

So far, this probably all seems rather straightforward, and you may be wondering why I said things could be complicated. As it turns out, the complication is that margins can have negative values.

You'll remember that I said the second-simplest rule of horizontal formatting was this: the total of the seven horizontal properties always equals the width of the parent element. At first glance, this can be interpreted to mean that an element can never be wider than its parent's content area -- and as long as all properties are zero or greater, that's quite true. However, consider the following, depicted in Figure 8-19:

DIV {width: 400px; border: 3px solid black}
P.wide {margin-left: 10px; width: auto; margin-right: -50px;
  border: 1px solid gray;}

Figure 8-19. Wider children through negative margins

Yes, the child element is wider than its parent! This is mathematically correct: 10 + + + 450 + + - 50 = 400. Even though this leads to a child element sticking out of its parent, technically the specification hasn't been violated, because the values of the seven properties add up to the required total. It's a semantic dodge, but it's valid behavior.

Let's consider another example, illustrated in Figure 8-20, where the left margin is set to be negative:

DIV {width: 400px; border: 1px solid black;}
P.wide {margin-left: -50px; width: auto; margin-right: 10px;
  border: 3px solid gray;}

Figure 8-20. Setting a negative left margin

In this case, not only does the paragraph spill beyond the borders of the DIV, but also beyond the edge of the browser window itself!

TIP

Remember that padding, borders, and content widths can never be negative. Only margins can be less than zero.

Negative margins have an impact on vertical formatting as well, affecting how margins are collapsed. If there are negative vertical margins, then the browser should take the absolute maximum of the negative margins and subtract that from the maximum of any positive margins.

In the case where there are only two margins to be collapsed, one positive and the other negative, the situation is handled in a fairly simple manner. The absolute value of the negative margin is subtracted from the positive margin -- or, to put it another way, the negative is added to the positive -- and the resulting value is the distance between the elements. Figure 8-21 provides two concrete examples.

Figure 8-21. Examples of negative vertical margins

You'll notice the "pulling" effect of negative top and bottom margins. This is really no different from the way in which negative horizontal margins cause an element to push outside of its parent. Consider:

DIV {width: 400px; border: 1px solid black;}
P.neg {margin-top: -50px; width: auto; margin-right: 10px;
  margin-left: 10px; border: 3px solid gray;}

<DIV STYLE="width: 420px; background-color: silver;
   padding: 10px; margin-top: 75px;">
<P CLASSS="neg">
A paragraph.
</P>
</DIV>

As we can see from Figure 8-22, the paragraph has simply been pulled upward by its negative top margin, such that it's outside the parent DIV !

Figure 8-22. The effects of a negative top margin

With a negative bottom margin, though, it looks as though everything following the paragraph has been pulled upward. Compare the following markup to the situation shown in Figure 8-23:

DIV {border: 1px solid black;}
P.neg {margin-bottom: -50px; width: auto; margin-right: 10px;
  margin-left: 10px; border: 3px solid gray;}

<DIV STYLE="width: 420px; background-color: silver;
   padding: 10px; margin-top: 75px;">
<P CLASS="neg">
A paragraph.
</P>
</DIV>
<P>
The next paragraph.
</P>

Figure 8-23. The effects of a negative bottom margin

What's really happening in Figure 8-23 is that the elements following the DIV are placed according to the location of the bottom of the DIV. As we can see, the end of the DIV is actually above the visual bottom of its child paragraph. The next element after the DIV is the appropriate distance from the bottom of the DIV. The fact that it overlaps the paragraph doesn't matter, at least not technically.

Now let's consider an example where the margins of a list item, an unordered list, and a heading are all collapsed. In this case, the unordered list and heading will be set to have negative margins:

LI {margin-bottom: 20px;}
UL {margin-bottom: -15px;}
H1 {margin-top: -18px;}

The larger of the two negative margins (-18px ) is added to the largest positive margin (20px ), yielding (20px-18px = 2px ). Thus, there are only two pixels between the bottom of the list item's content and the top of the paragraph's content. This is what we see in Figure 8-24.

Figure 8-24. Collapsing margins and negative margins, in detail

There is one area of unresolved behavior, which is this: if elements overlap each other due to negative margins, which elements are "on top?" You'll note that few of the examples in this section use background colors for all elements. That's because if they did, content might get overwritten by the background color of a following element. The CSS specification does not say what should happen when elements overlap in this manner; instead, it's left up to implementors to decide.

It has been argued that all foreground content is always shown "in front of " all background content, and the behavior of floated elements seems to support this interpretation. On the other hand, the CSS2 property z-index makes this reasoning more complicated. As of this writing, implementations have not yet advanced sufficiently to test this out, and the CSS2 description of z-index doesn't really shed any light on this subject.

Ultimately, if you use negative margins, you may not get the same results from all browsers. Since no one can clearly say which is right, none of them can really be considered to be buggy -- at least, not until the specification is sufficiently clarified.

8.2.3. List Items

Speaking of list items, they have a few special rules in addition to everything discussed so far. List items are typically preceded by a marker, such as a small dot or a number. This marker isn't actually part of the list-item's content area, so you get effects like those illustrated in Figure 8-25.

Figure 8-25. The content of list items

In CSS1, very little is said about the placement and effects of this marker with regard to the layout of a document. CSS2 introduces properties specifically designed to address this issue, such as marker-offset. Since this property and its cousins are not widely supported at the time of this writing, we will not spend time on it here. There is a brief discussion of the marker properties in Chapter 10, "CSS2: A Look Ahead".

8.2.4. Block-Level Replaced Elements

Block-level replaced elements are also subject to a few differences in how formatting is handled. The most important is that replaced elements are assumed to have an intrinsic height and width; for example, an image will be a certain number of pixels high and wide. Given this, if either height or width are set to auto for a replaced element, then the value will always evaluate to the intrinsic height or width of the element. Thus, if an image is 150 pixels wide, and its width property is set to the value auto, then its width will evaluate to 150px , as shown in Figure 8-26:

IMG {display: block; width: auto;}

Figure 8-26. Replaced elements with auto width are rendered using their intrinsic size

Replaced elements can have their height and width set to a value other than auto or their intrinsic dimensions. This is most commonly used to "scale" images, either up or down. Thus, if an image is 150 pixels wide and its width is set to 75px , then the image will be displayed half as wide as it would ordinarily appear. In most browsers, the height will be scaled to match, unless it has been explicitly set to a certain value. Figure 8-27 shows a few possibilities.

Figure 8-27. Scaling images with the width property

It's also possible to scale an image (or other replaced element) using height:

<IMG SRC="test.gif" STYLE="display: block;" ALT="test image">
<IMG SRC="test.gif" STYLE="display: block; height: 50px;" ALT="test image">
<IMG SRC="test.gif" STYLE="display: block; height: 200px;" ALT="test image">

This is exactly the same as using the HEIGHT attribute on the IMG tag in HTML. If an image is 100 pixels tall, then by default its height will be 100px . If you specify another value, then the image will be scaled appropriately, as illustrated in Figure 8-28.

Figure 8-28. Scaling images with the height property

In almost all other ways, block-level replaced elements behave the same as block-level elements when it comes to formatting: vertical margins are collapsed while horizontal margins are not, and the borders and padding default to zero unless explicitly declared otherwise. Remember, however, that not all replaced elements are images. Most form elements are replaced, for example.

In general, all replaced elements (block-level or otherwise) can be scaled using height and width. In most other ways, inline replaced elements are handled very differently, as we'll see later in this chapter.

Previous | Home | Next
8. Visual Formatting | Book Index | 8.3. Floated Elements


Floated Elements (Cascading Style Sheets: The Definitive Guide)

8.3. Floated Elements

As we saw in the previous chapter, CSS allows any element to be floated, from images to paragraphs to lists. This is not without a price: floated elements introduce their own set of strangeness. As was discussed, floated elements have an unusual place in determining the flow of the document. For example, the boxes generated by other elements are drawn as though floated elements don't exist, but the content of those elements is rendered while taking the float's presence into account. This in turn influences the generation of element boxes, which means that floats indirectly do affect these boxes.

Some particulars can help explain some of this behavior. An element that has been floated becomes a block-level element, regardless of its previous status. Thus, if an image (which is ordinarily treated as an inline element) is floated, it becomes a block-level element. This block-level status helps explain why when an element is floated, other content flows around it.

Remember that if you float a text element, its width will tend toward zero. This is exactly the opposite of the normal horizontal rules, where width is increased until the seven properties equal the parent's width. A floated element's width will default to auto, which then defaults to zero, which is then increased to the browser's minimum allowed width. Thus, a floated paragraph could literally be one character wide -- assuming that to be the browser's minimum value for width. In practice, it's more likely that the browser will make the floated element as narrow as the longest word in the element, as shown in Figure 8-29.

Figure 8-29. Floated elements tend toward a width of zero

8.3.1. Floating: The Details

A series of specific rules govern the placement of a floated element. They are vaguely similar to those that govern the evaluation of margins and widths and have the same initial appearance of common sense. They are as follows:

1. The left (or right) outer edge of a floated element may not be to the left (or right) of the inner edge of its parent element.

Straightforward enough. The furthest to the left the outer left edge of a left-floated element may go is the inner left edge of its parent element; similarly, the furthest right a right-floated element may go is its parent's inner right edge, as shown in Figure 8-30. (In this and subsequent figures, the circled numbers show the position where the markup element actually appears in relation to the source, and the numbered box shows the position and size of the floated visible element.)

Figure 8-30. Floating to the left (1) or right (2)

2. The left (or right) outer edge of a floated element must be to the right (or left) of the right (left) outer edge of a left-floating (or right-floating) element that occurs earlier in the document's source, unless the top of the latter element is below the bottom of the former.

This rule prevents floated elements from overwriting each other. If an element is floated to the left, and there is already a floated element there due to its earlier position in the document source, then the latter element is placed against the outer right edge of the previously floated element. If, however, a floated element's top is below the bottom of all earlier floated images, then it can float all the way to the inner left edge of the parent. Some examples of this are shown in Figure 8-31.

Figure 8-31. Keeping floats from overlapping

The advantage of this rule is that, since you don't have to worry about one floated element obscuring another, you can be assured that all of your floated content will be visible. This makes floating a fairly safe thing to do. The situation is markedly different when using positioning, where it is very easy to cause elements to overwrite one another.

3. The right outer edge of a left-floating element may not be to the right of the left outer edge of any right-floating element to its right. The left outer edge of a right-floating element may not be to the left of the right outer edge of any left-floating element to its left.

This rule also prevents floated elements from overlapping each other. Let's say you have a BODY that is 500 pixels wide, and its sole content is two images that are 300 pixels wide. The first is floated to the left, and the second to the right. This rule prevents the second image from overlapping the first by 100 pixels. Instead, the second image is forced down until its top is below the bottom of the left-floated image, as depicted in Figure 8-32.

Figure 8-32. More overlap prevention

4. A floating element's top may not be higher than the inner top of its parent.

Another simple rule. This one keeps floating elements from floating all the way to the top of the document. The correct behavior is illustrated in Figure 8-33.

Figure 8-33. Unlike balloons, floated elements can't float upward

5. A floating element's top may not be higher than the top of any earlier floating or block-level element.

Similar to rule 4, this keeps a floated element from floating all the way to the top of its parent element. Thus, if a DIV 's first child element is a paragraph, followed by a floated image and then another paragraph, the top of the floated image can't be any higher than the top of the paragraph that precedes it. It is also impossible for a floated element's top to be any higher than the top of a floated element that occurs earlier. Figure 8-34 is an example of this.

Figure 8-34. Keeping floats below their predecessors

6. A floating element's top may not be higher than the top of any line box with content that precedes the floating element.

Similar to rules 4 and 5, this further limits the upward floating of an element by preventing it from being above the top of a line containing content that precedes the floated element. Let's say that, right in the middle of a paragraph, there is a floated image. The highest the top of that image may be placed is the top of the line box from which the image originates. As you can see in Figure 8-35, this keeps images from floating too far upward.

Figure 8-35. Keeping floats level with their context

7. A left (or right) floating element that has another floating element to its left (or right) may not have its right outer edge to the right (or left) of its containing block's right (or left) edge.

In other words, a floating element cannot stick out beyond the edge of its containing element, unless it's too wide to fit on its own. This prevents a situation where a succession of floated elements could appear in a horizontal line and far exceed the edges of the containing block. Instead, if a float would stick out of its containing block by appearing next to another one, it is floated down to a point below any previous floats, as illustrated by Figure 8-36 (where the floats start on the next line in order to more clearly illustrate the principle at work here). This rule first appeared in CSS2, to correct its omission in CSS1.

Figure 8-36. If there isn't room, floats get pushed to a new line

8. A floating element must be placed as high as possible.

Subject to the restrictions introduced by the previous seven rules, of course. Historically, browsers aligned the top of a floated element with the top of the line box after the one in which the image's tag appears. Rule 8, however, implies that its top should be even with the top of the same line box as that in which its tag appears, assuming there is room to do so. The theoretically correct behaviors are shown in Figure 8-37.

Figure 8-37. Given the other constraints, go as high as possible

WARNING

Unfortunately, since there is no precise definition meaning for "as high as possible" (which could be, and in fact has been, argued to mean "as high as conveniently possible"), you cannot rely on consistent behavior even among browsers that are considered CSS1-compliant. Most browsers will follow historical practice and float the image down into the next line, but a few -- Opera 3.6, for one -- will float the image into the current line if it has room to do so.

9. A left-floating element must be put as far to the left as possible, a right-floating element as far to the right as possible. A higher position is preferred to one that is further to the right or left.

Again, this rule is subject to restrictions introduced in the preceding rules. There are similar caveats here as in Rule 8, although they are not quite so fuzzy. As you can see from Figure 8-38, it is pretty easy to tell when an element has gone as far as possible to the right or left.

Figure 8-38. Get as far to the left (or right) as possible

8.3.2. Applied Behavior

There are a number of interesting consequences of the above rules, both because of what they say and what they don't say. The first thing to discuss is what happens when the floated element is taller than its parent element.

This happens quite often, as a matter of fact, and was discussed in the previous chapter. Take the example of a short document, composed of no more than a few paragraphs and H3 elements, where the first paragraph contains a floated image. Further, this floated image has a right margin of 5 pixels (5px ). You would expect the document to be rendered very much as shown in Figure 8-39.

Figure 8-39. Expected floating behavior

Nothing unusual there, of course, but Figure 8-40 shows what happens when we set the first paragraph to have a background.

Figure 8-40. Backgrounds and floated elements

There is nothing different about the second example, except for the visible background. As you can see, the floated image sticks out of the bottom of its parent element. Of course, it did so in the first example, but it was less obvious there, because we couldn't see the background. There is nothing forbidden about this behavior. The floating rules we discussed earlier only address the left, right, and top edges of floats and their parents. The deliberate omission of bottom edges permits the behavior in Figure 8-40.

WARNING

In practice, some browsers do not do this correctly. Instead, they will increase the height of a parent element so that the floated element is contained within it, even though this results in a great deal of extra blank space within the parent element.

A related topic is the subject of backgrounds and their relationship to floated elements that occur earlier in the document, which was also discussed in the previous chapter, as has been illustrated in Figure 8-41.

Figure 8-41. Backgrounds "slide under" floated elements

Because the floated element is both within and without the flow, this sort of thing is bound to happen. What's going on? Well, the content of the paragraphs is being "displaced" by the floated element. However, each paragraph's element width is still as wide as its parent element. Therefore, its content area spans the width of the parent, and so does the background. The actual content doesn't flow all the way across its own content area in order to avoid being obscured behind the floating element.

8.3.2.1. Negative margins

As was discussed in the previous chapter, negative margins can cause floated elements to move outside of their parent elements. This seems to be in direct contradiction to the rules explained earlier, but it isn't. In the same way that elements can appear to be wider than their parents through negative margins, floated elements can appear to protrude out of their parents.

Let's consider once again a floated image which is floated to the left, and which has left and top margins of -15px . This image is placed inside a DIV which has no padding, borders, or margins. The result will be as shown in Figure 8-42.

Figure 8-42. Floating with negative margins

Contrary to appearances, this does not technically violate the restrictions on floated elements being placed outside their parent elements. Here's the technicality that permits this behavior: a close reading of the rules listed earlier will show that the outer edges of a floating element must be within the element's parent. However, negative margins can place the floated element's content such that it effectively overlaps its own outer edge, as detailed in Figure 8-43.

Figure 8-43. The details of floating up and left with negative margins

The math in this situation works out something like this: assume the top inner edge of the DIV is at the pixel position 100. The browser, in order to figure out where the top inner edge of the floated element should be will do this: 100px + (-15px) margin + 0 padding = 85px . Thus the top inner edge of the floated element should be at pixel position 85; even though this is higher than the top inner edge of the float's parent element, the math works out such that the specification isn't violated. A similar line of reasoning explains how the left inner edge of the floated element can be placed to the left of the left inner edge of its parent.

Many of you may have an overwhelming desire to cry "Foul!" right about now. Personally, I don't blame you. It seems completely wrong to allow the top inner edge to be higher than the top outer edge, for example, but with a negative top margin, that's exactly what you get -- just as negative margins on normal, nonfloated elements can make them wider than their parents. The same is true on all four sides of a floated element's box: set the margins to be negative, and the content can overrun the outer edge without technically violating the specification.

There is one important question here, which is this: what happens to the document display when an element is floated out of its parent element by using negative margins? For example, an image could be floated so far up that it intrudes into a paragraph that has already been displayed by the user agent. In this case, it's up to the user agent to decide whether or not the document should be reflowed. The CSS specifications explicitly state that user agents are not required to reflow previous content to accommodate things which happen later in the document. In other words, if an image is floated up into a previous paragraph, it may simply overwrite whatever was already there. On the other hand, the user agent may handle the situation by flowing content around the float, even though doing so isn't required behavior. Either way, it's probably a bad idea to count on a particular behavior, which makes the utility of negative margins on floats somewhat limited. Hanging floats are probably fairly safe, but trying to push an element upward on the page is a generally bad idea.

There is one other way for a floated element to exceed its parent's inner left and right edges, and that's when the floated element is wider than its parent. In that case, the floated element will simply overrun the right or left inner edge -- depending on which way the element is floated -- in its best attempt to display itself correctly. This will lead to a result like that shown in Figure 8-44.

Figure 8-44. Floating an element that is wider than its parent

Previous | Home | Next
8.2. Block-Level Elements | Book Index | 8.4. Inline Elements


Inline Elements (Cascading Style Sheets: The Definitive Guide)

8.4. Inline Elements

Any visible element that is not a block-level element (either directly, or by implication, as with floated elements) is an inline element. Setting box properties for inline elements gets into even more interesting territory than we've already covered. Some good examples of inline elements are the EM tag and the A tag, both of which are nonreplaced elements, and images, which are replaced elements.

WARNING

Note that none of this applies to table elements. CSS2 introduces new properties and behaviors for handling tables and table content, and these new features behave in ways fairly distinct from either block-level or inline formatting. See Section 10.1, "Changes from CSS1" for an overview.

8.4.1. Line Layout

First, we need to understand how inline content is laid out. It isn't as simple and straightforward as block-level elements, which just generate boxes and usually don't let anything coexist next to them. That's all well and good, of course (even if it does ignore floats), but look inside a block-level element such as a paragraph. There are all these lines of text, and we may well ask, "How did they get there? What controls their arrangement? How can I affect that?"

In order to understand how lines are generated, let's first consider the case of an element containing one very long line of text, as shown in Figure 8-45. Note that we've put a border around the line; this has been accomplished by wrapping the entire line in a SPAN element, and assigning it a border style:

SPAN {border: 1px dashed black;}

Figure 8-45. A single-line inline element

This is the simplest case of an inline element contained by a block-level element, no different in its way than a paragraph with two words in it. The only differences are that in Figure 8-45, we have a few dozen words and that most paragraphs don't contain an explicit inline element such as SPAN.

In order to get from this simplified state to something more familiar, all we have to do is determine how wide the element should be, and then break up the line so that the resulting pieces will fit into the width of the element. Thus we arrive at the state shown in Figure 8-46.

Figure 8-46. A multiple-line inline element

Basically, nothing's changed. All we did was take the single line and break it into pieces, and then stack those pieces on top of each other. Piece of cake.

In Figure 8-46, the borders for each line of text also happen to coincide with the top and bottom of each line box. This is only true because no padding or line height has been set for the inline text, but for the moment, let's use the visual cue for reference. Also, notice that the borders actually overlap each other slightly: for example, the bottom border of the first line is just below the top border of the second line. This is because the border is actually drawn on the next pixel (assuming we're using a monitor) to the outside of each line box. Since the line boxes are touching each other, their borders will overlap as shown in Figure 8-46.

If we alter the SPAN styles to have a background color, the actual placement of the line boxes becomes quite clear, as we can see in Figure 8-47.

Figure 8-47. The full extent of each line box

Here we see that not every line reaches to the right edge of the paragraph's content area, which has been denoted with a dotted gray border. The end of each line box is determined by the content of the line box. For comparison, let's try the same thing, but this time right-justify the paragraph, as shown in Figure 8-48.

Figure 8-48. Line-box layout with right justification

Again, all we have here are the pieces of a single line of text which have been stacked on top of one another with their right sides lined up with each other. If we had set the paragraph to have a text-align of center, then the centers of the line boxes would have lined up, and if it were set to justify, then each line box would be forced to be as wide as the paragraph's content area. The difference is made up in letter- and word-spacing, as we see in Figure 8-49.

Figure 8-49. Line-box layout with full justification

That pretty well covers how line boxes are generated, at least in the simplest cases. As we're about to see, however, the inline formatting model is not exactly simple.

8.4.2. Inline Formatting

As we saw in Chapter 4, "Text Properties", all elements have a line-height. This fact has a great deal to do with how inline elements are displayed, and it needs to be covered in detail before we move on.

First, let's establish how the height of a line is determined. A line's height (or the height of the line box) is determined by the height of its constituent elements and other content (such as text). It's important to understand that line-height really only applies to inline elements and other inline content and not to block-level elements. We can set a line-height value for a block-level element, but the only way this will have any visual impact is by being applied to inline content within that block-level element. Consider the following paragraph, for example:

<P STYLE="line-height: 0.25em;"></P>

Without content, the paragraph won't have anything to display, so it will not. The fact that this paragraph has a line-height of any value -- be it 0.25em or 25in -- makes no difference without inline content to take advantage of it.

In a certain sense, then, each line of text contained within a block-level element is its own inline element, even though it isn't surrounded by any tags. If you like, picture a fictional tag sequence something like this:

<P>
<LINE>This is a paragraph with a number of</LINE>
<LINE>lines of text which make up the</LINE>
<LINE>contents.</LINE>
</P>

Even though the LINE tags don't exist, the situation is the same as if they did. Each line of text inherits styles from the paragraph, so they may as well be contained within tags such as these. Therefore, the only reason we create line-height rules for block-level elements is so that we don't have to explicitly declare a line-height for all its inline elements, fictional or otherwise.

TIP

The fictional LINE element actually clarifies the behavior that results from setting line-height on a block-level element. According to the CSS specification, declaring line-height on a block-level element sets a minimum line-box height for the content of that block-level element. Thus, declaring P.spacious {line-height: 24pt;} means that the minimum height for each line box is 24 points. Technically, the only way content will inherit this line height is if it is inherited by an inline element. Most text isn't contained by an inline element. Thus, if we pretend that each line is contained by the fictional LINE element, then the model works out very nicely.

8.4.2.1. Generating a line box

Here are the steps a user agent has to go through in order to generate a line box. First, for each inline nonreplaced element (or string of text outside of an inline element), the font-size is used to determine the initial content-height. Thus, if an inline element has a font-size of 15px , then the content-height starts out as 15px .

Second, all of the inline elements in a given line are aligned according to their values for vertical-align. By default, this will cause all text in the line to be aligned along their baselines, but of course different vertical-align values will have different effects. All of the elements could be top-aligned, for example. We'll return to vertical alignment later in the chapter, but for now will assume that everything is baseline-aligned.

Now the line-height comes into play. Let's assume the following case:

<P STYLE="font-size: 12px; line-height: 12px;">
This is text, <EM>some of which is emphasized</EM>, plus other text<BR>
which is <B STYLE="font-size: 24px;">boldfaced</B> and which is<BR>
larger than the surrounding text.
</P>

What we have here is a situation where some of the text has a font-size of 12px , while other text has a size of 24px . However, all of the text has a line-height of 12px, since line-height is an inherited property. What happens is that the difference between font-size and line-height is divided in half, and then applied to the top and bottom of each element's content-height to arrive at the inline box. Each half of the divided difference is referred to as half-leading .

Thus, for each bit of text where both the font-size and line-height are 12px , nothing is applied to the content-height (since 12 minus 12 equals zero, and half of nothing is nothing), and so the inline box is 12px high. For the boldfaced text, however, the difference between font-size and line-height is 12px . This is divided in half to determine the half-leading (6px), and the half-leading is subtracted from both the top and bottom of the content-height to arrive at an inline box which is, in this case, 12px high. This 12-pixel inline box is centered vertically within the content-height of the element.

So far it sounds like we've done the same thing to each bit of text. This is not quite the case. The inline boxes don't actually line up, as we can see in Figure 8-50, because the text is all baseline-aligned.

Figure 8-50. How the inline boxes (gray) influence the height of the line box

However, it is precisely the inline boxes which determine the height of the overall line box. The line box is defined to be the distance from the top of the highest inline box in the line to the bottom of the lowest inline box, as illustrated by Figure 8-51.

Figure 8-51. Stacking the line boxes together

Then the top of the line box is placed against the bottom of the line box for the preceding line. This will give us a paragraph as shown in Figure 8-52.

Figure 8-52. The final paragraph of stacked line boxes

As we can see, the middle line is taller than the other two, but it still isn't big enough to contain the text within it. That's because the position of the inline boxes in the line forces it to be taller than 12 pixels, but the line-box still isn't tall enough for the text to avoid overlapping other lines.

The situation can become markedly different if we change the vertical alignment of the inline boxes. Suppose that we change the boldface text to have a vertical alignment of middle. This would have the result shown in Figure 8-53.

Figure 8-53. Changing the vertical alignment of the larger text

Here, the middle of the boldfaced text's inline box has lined up with the middle of the inline boxes of the other text in the line. Because the inline boxes are all 12px tall, and their middles are all lined up, this means that the line box for this line is now only 12 pixels high, just like the others. However, it also means that the oversized text intrudes into other lines even more than before.

Let's consider another situation where another inline element is in the same line as the boldfaced text, but its alignment is other than the baseline:

<P STYLE="font-size: 12px; line-height: 12px;">
This is text, <EM>some of which is emphasized</EM>, plus other text<BR>
which is <B STYLE="font-size: 24px;">boldfaced</B>
and <SPAN STYLE="vertical-align: top;">tall</SPAN> and which is<BR>
larger than the surrounding text.
</P>

Now we're back to our earlier example, where the middle line box is taller than the other line boxes. However, notice how the "tall" text is aligned in Figure 8-54.

Figure 8-54. Top-aligning text

What's happened here is that the top of the "tall" text's inline box is aligned with the top of the line box. Since the "tall" text has equal values for font-size and line-height, its content height and inline box are the same thing. However, consider this:

<P STYLE="font-size: 12px; line-height: 12px;">
This is text, <EM>some of which is emphasized</EM>, plus other text<BR>
which is <B STYLE="font-size: 24px;">boldfaced</B>
and <SPAN STYLE="vertical-align: top; line-height: 4px;">tall</SPAN>
and which is<BR>
larger than the surrounding text.
</P>

Since the line-height for the "tall" text is less than its font-size, the inline box for that element is smaller. This will change the placement of the text itself, since the top of its inline box must be aligned with the top of the line box for its line. Thus we get the result shown in Figure 8-55.

Figure 8-55. The effects of a very small inline box

On the other hand, we could set the "tall" text to have a line-height which is actually bigger than its font-size. For example:

<P STYLE="font-size: 12px; line-height: 12px;">
This is text, <EM>some of which is emphasized</EM>, plus other text<BR>
which is <B STYLE="font-size: 24px;">boldfaced</B>
and <SPAN STYLE="vertical-align: top; line-height: 18px;">tall</SPAN>
and which is<BR>
larger than the surrounding text.
</P>

Since we've given the "tall" text a line-height of 18px , the difference between font-size and line-height is 6 pixels. In this case, though, the half-leading of 3 pixels is added to the content area, not subtracted (since the line-height is more than the font-size). This will result in an inline box 18 pixels tall, and its top is aligned with the top of the line box. Thus Figure 8-56.

Figure 8-56. Top-aligning text with a different line height

Before we go any further, let's see what happens when we add box properties to inline elements.

8.4.2.2. Adding box properties

As we're aware from previous discussions, padding, margins, and borders may all be applied to inline nonreplaced elements, and they don't influence the line-height at all. If we were to apply some borders to a SPAN element without any margins or padding, we'd get results such as that shown in Figure 8-57.

Figure 8-57. Inline borders and line-box layout

The borders are placed as they are because the border edge of inline elements is controlled by the font-size, not the line-height. In other words, if a SPAN element has a font-size of 12pt and a line-height of 36pt, its content area is 12pt high, and the content area is what will be surrounded with the border.

This behavior can be altered by assigning padding to the inline element, which will push the borders away from the text itself (shown in Figure 8-58):

SPAN {border: 1px dashed black; padding: 4pt;}

Figure 8-58. Inline padding and line-box layout

Note that this padding does not alter the actual shape of the content-height, and so will not affect the height of the inline box for this element. Adding borders to an inline element will not affect the way line boxes are generated, as Figure 8-59 illustrates.

Figure 8-59. Large inline boxes can overlap many other lines

One can assign margins to nonreplaced inline elements as well, but these effectively do not apply to the top and bottom of a nonreplaced inline element, and so don't affect the height of the line box. The ends of the element are another story, as we saw in Chapter 7, "Boxes and Borders". Once again, this is because an inline element that is displayed on multiple lines is just the same as a single-line element that has been broken into pieces. Consult Figure 8-60 for a more detailed look at this situation caused by using these styles:

SPAN {border: 1px dashed black; padding: 4pt; margin: 8pt;}

Figure 8-60. Inline margins and line-box layout

8.4.3. Managing the Line Height of Inline Elements

In the previous section, we had a few cases where changing the line-height of an inline element led to the possibility of text from one line overlapping another. In each case, though, the changes were made on individual elements. So how can we affect the line-height of elements in a more general way, in order to keep them from overlapping?

One way to do this is to use the em unit in conjunction with an element whose font-size has changed. For example:

P {font-size: 14pt; line-height: 16pt;}
SPAN {background: gray;}
BIG {font-size: 250%; line-height: 1em; background: silver;}

...line in which</SPAN><BIG>some big text</BIG><SPAN>is found...

The results of this are shown in Figure 8-61. By setting a line-height for the BIG element, the overall height of the line box has been increased, thus providing enough room for the BIG element to be displayed without overlapping any other text and without changing the line-height of all lines in the paragraph. We use a value 1em so that the line-height for the BIG element will be set to the same size as BIG's font-size -- remember, line-height is set in relation to the font-size of the element itself, not the parent element.

Figure 8-61. Assigning the line-height property to inline elements

It's important to keep these sorts of things in mind when you're trying to do things like add borders to an inline element. Let's say you want to put 5-pixel borders around any hyperlink:

A:link {border: 5px solid blue;}

If you don't set a large enough line-height to accommodate the border, it will be in danger of overwriting other lines, as shown in Figure 8-62.

Figure 8-62. Inline borders can be overlapped

One solution is to increase the line-height of the paragraph. This will affect every line in the entire element, not just the line in which the bordered hyperlink appears:

A:link {border: 5px solid blue;}
P {font-size: 14px; line-height: 24px;}

Because there is extra space added above and below each line, the border around the hyperlink doesn't impinge on any other line, as we can see in Figure 8-63.

Figure 8-63. Increasing line-height to leave room for inline borders

This approach works in this particular case, of course, because all of the text is the same size. Just to cover all the bases, though, it might make more sense to simply increase the line-height of the anchor element itself, like this:

A:link {border: 5px solid blue; line-height: 24px;}
P {font-size: 14px;}

If all the content of a line is text of the same size, then the line box is always as tall as the biggest line-height value contained within that line box (since this will coincide with the height of the tallest inline box in the line), so this works. Furthermore, it only affects those lines in which a hyperlink appears. However, there is yet another alternative.

8.4.3.1. Scaling the line heights

There's an even better way to set line-height, as it turns out, and that's to use a raw number as the value of line-height. This is so much better because the number is used as a scaling factor, and it is the factor that is inherited, not the computed value. Let's say you want the line-height of all elements in a document to be one-and-one-half times their font-size. You would declare:

BODY {line-height: 1.5;}

This scaling factor of 1.5 is passed down from element to element, and at each level the factor is used as a multiplier of the font-size of each element. Therefore, the following markup would be displayed as shown in Figure 8-64 (backgrounds added for illustrative purposes):

P {font-size: 12px; line-height: 1.5;}
SMALL {font-size: 66%;}
BIG {font-size: 200%;}

<P>This paragraph has a line-height of 1.5 times its font-size. In addition,
any elements within it <SMALL>such as this small element</SMALL> also have
line-heights 1.5 time their font-size... and that includes <BIG>this big
element right here</BIG>. By using a scaling factor, line-heights scale
to match the font-size of any element.</P>

Figure 8-64. Using a scaling factor for line-height

In this example, the line-height for the SMALL element turns out to be 12px , and for the BIG element, it's 36px . These may seem excessive, but they're in keeping with the overall page design. Of course, if you don't want your BIG text to generate too much extra leading, just use these rules instead:

P {font-size: 12px; line-height: 1.5;}
SMALL {font-size: 66%;}
BIG {font-size: 200%; line-height: 1em;}

WARNING

Anything this useful has to have a drawback, right? As it happens, Internet Explorer 3.x will treat scaling factors as though they were pixel units. Just try to imagine a paragraph with a line-height of 1.5px . It isn't pretty.

Another solution is to set the styles such that lines are no taller than absolutely necessary to hold their content. This is where you might use a line-height of 1.0. This value will multiply itself by every font-size to get the same value as the font-size of every element. Thus, for every element, the inline box will be the same as the content area.

8.4.4. Inline Replaced Elements

Inline replaced elements, such as images, are subject to a few crucial differences in how inline formatting is handled. This difference stems from the fact that replaced elements are still assumed to have an intrinsic height and width; for example, an image will be a certain number of pixels high and wide.

However, a replaced element with an intrinsic height can cause a line box to become taller than normal. This does not change the value of line-height for any element in the line, including the image itself. Instead, the line box is simply made tall enough to accommodate the replaced element, plus any box properties. In other words, the entirety of the replaced element -- content, margins, borders, and padding -- is used to define the element's inline box. The following markup gives one such example, (shown in Figure 8-65):

P {font-size: 12px; line-height: 18px;}
IMG {height: 30px; margin: 0; padding: 0;}

Figure 8-65. Replaced elements don't actually increase the line height

Despite all the blank space, the effective value of line-height has not changed. It simply has no effect on the image's inline box, which is in this case 30px tall.

Nonetheless, an inline replaced element still has a value for line-height. Why? In order to be able to correctly position the element if it's been vertically aligned. Recall that, percentage values for vertical-align are calculated with respect to an element's line height. Thus:

P {line-height: 18px;}
IMG {vertical-align: 50%;}

<P>The image in this paragraph <IMG SRC="test.gif" ALT="test image">
will be raised 9px.</P>

The inherited value of line-height is what causes the image to be raised nine pixels, instead of some other number. Without a value for line-height, it wouldn't be possible to perform percentage-value vertical alignments. The height of the image itself has no relevance when it comes to vertical alignment: the value of line-height is all that matters.

8.4.4.1. Adding box properties

After everything else, applying margins, borders, and padding to inline replaced elements almost seems simple.

Padding and borders are applied to replaced elements as normal; padding inserts space around the actual content (for example, a graphic) and the border surrounds the padding. What's interesting is that these two things actually do influence the height of the line box. Consider Figure 8-66.

Figure 8-66. Adding padding and borders to an inline replaced element

Note that the "first" line box is tall enough to contain the image, whereas the "second" is tall enough to contain the image, its padding, and its border. This is because the totality of the replaced element (content, padding, borders) make up the inline box for the replaced element. This is what forces the line boxes to be taller in Figure 8-66.

Margins are also contained within the line box, but they have their own wrinkle. Setting a positive margin is no mystery: it will simply make the line box taller, as in Figure 8-67.

Figure 8-67. Adding padding, borders, and margins to an inline replaced element

Setting negative margins, meanwhile, has exactly the effect you might expect: it makes the line-box shorter. This is illustrated in Figure 8-68, where we can see the line above the image has been pulled down toward it.

Figure 8-68. The effect of negative margins on an inline replaced element

This is quite similar to the operation of negative margins on block-level elements, of course. In this case, the negative margins are making the replaced element's inline box smaller than ordinary. This is the only way to cause inline replaced elements to bleed into other lines.

Previous | Home | Next
8.3. Floated Elements | Book Index | 8.5. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

8.5. Summary

Although some aspects of the CSS formatting model may seem counterintuitive at first, they begin to make sense the more one works with them. In many cases, what seem like nonsensical or even idiotic rules turn out to exist in order to prevent bizarre or otherwise undesirable document displays.

As it happens, having a firm grasp of the visual formatting model is a good foundation for understanding how positioning works. Thus, the next chapter will cover positioning, and do so in a manner very similar to this chapter: the discussion is largely theoretical.

Previous | Home | Next
8.4. Inline Elements | Book Index | 9. Positioning


Positioning (Cascading Style Sheets: The Definitive Guide)

Chapter 9. Positioning

Contents:

General Concepts
Relative Positioning
Absolute Positioning
Fixed Positioning
Stacking Positioned Elements
Summary

The idea behind positioning is fairly simple. It allows you to define exactly where element boxes will appear relative to where they would ordinarily be -- or relative to a parent element, or another element, or even to the browser window itself. The power of this feature is both obvious and surprising. It shouldn't be too surprising to learn that this is the part of CSS2 that user agents usually first attempt to support. Given that there were some very good positioning implementations on the horizon as the book was being completed, we felt it worthwhile to give readers a glimpse of what's coming soon -- or, if you're reading this book a year or three after its publication, what can be done.

You may notice that, unlike other chapters, almost none of the figures in this chapter was generated with a web browser. This is something of a statement about the reliability and consistency of positioning implementations at the time of this writing: not one of them was solid enough to trust completely. It was actually easier to draw theoretical examples by hand than to take screenshots in web browsers and then retouch them in Photoshop.

This is also why this chapter is largely (but not entirely) free of browser warnings and caveats. Rather than drown the explanatory text in side notes, we have chosen to simply describe positioning as it is given by the CSS2 specification and leave things there. Perhaps the second edition of this book will contain more practical advice, but at this time, the only practical advice we can give is this: test your positioning code thoroughly, and be prepared for inconsistencies between positioning implementations.

9.1. General Concepts

Before delving into the specific mechanisms of positioning, we need to establish a number of concepts. These concepts actually form the foundation of CSS layout in general since every displayed element can be described in terms of its positioning. After all, any element that is placed onscreen, or printed on a piece of paper, has a position and must therefore be positioned -- by the user agent, if nothing else.

The containing block is the context in which formatting takes place. For example, the containing block of a boldface element could be the paragraph in which it occurs, as demonstrated in Figure 9-1.

Figure 9-1. An example of a containing block

Not every element in CSS generates a containing block for its descendant elements. The rules for the establishment of a containing block are as follows:

  1. The containing block of the "root element" (also called the initial containing block) is established by the user agent. In HTML, the root element is the HTML element, although some browsers may incorrectly use BODY.

  2. For nonroot elements that are not absolutely positioned, the containing block for an element is set as the content edge of the nearest block-level ancestor. This is true even in relative positioning, although it might not seem so at first.

  3. For nonroot elements that are absolutely positioned using a position of absolute, the containing block is set to the nearest ancestor (of any kind) that has a position other than static. This happens as follows:

    1. If the ancestor is block-level, the containing block is set to be that element's padding edge; in other words, the area that would be bounded by a border.

    2. If the ancestor is inline-level, the containing block is set to the content edge of the ancestor. In left-to-right languages, the top and left of the containing block are the top and left content edges of the first box in the ancestor, and the bottom and right edges are the bottom and right content edges of the last box. In right-to-left languages, the right edge of the containing block corresponds to the right content edge of the first box, and the left is taken from the last box. The top and bottom are the same.

    If there is no such ancestor, then the content edge of the root element is used to establish a containing block.

The main thing to remember about the containing block is that it establishes a formatting context for all of its descendant elements. For example, if margins are declared as percentages, the percentages are calculated with respect to the containing block. This gives us rule #2, which says that the containing block is usually equivalent to the content area of an element.

Another important thing about the containing block is this: elements can be positioned outside of their containing block. This is very similar to the way in which floated elements can use negative margins to float outside of their parent's content area. It also makes it seem like the term "containing block" should really be "positioning context," but since the specification uses "containing block," so will this text. (We do try to minimize confusion. Really!)

9.1.1. Positioning Schemes

You can choose one of four different types of positioning by using the position property.

position

Values

static | relative | absolute | fixed | inherit

Initial Value

static

Applies to

all elements

Inherited

no

The values of position have the following meanings:

static

The element's box is generated as normal. Block-level elements generate a rectangular box that is part of the document's flow, and inline-level boxes are generated in the context of one or more line boxes that are flowed within their parent element.

relative

The element's box is offset by some distance. Its containing block is the area that the element would occupy if it were not positioned. The element retains the shape it would have had were it not positioned, and the space that the element would ordinarily have occupied is preserved. Relative positioning is accomplished by generating the element as though it were set to static, and then simply shifting the element's box (or boxes, in the case of an inline element that crosses multiple lines). It is possible that the positioned element will overlap other content. The direction and magnitude of the offset are specified using some combination of the properties top, right, bottom, and left.

absolute

The element's box is completely removed from the flow of the document and positioned with respect to its containing block. Whatever space the element might have occupied in the normal document flow is closed up, as though the element did not exist. The size and position of the element are defined by a combination of the properties height, width, top, right, bottom, and left, plus any margins, padding, and borders set for the element. Absolutely positioned elements can have margins, but these margins do not collapse.

fixed

The element's box is positioned as though it were set to absolute, but its containing block is the viewport itself. In screen media such as web browsers, the element will not move within the browser window when the document is scrolled. This allows for frame-style layouts, for example. In paged media such as printouts, a fixed element will appear in the same place on every page. This potentially can be used to create running heads or footers.

inherit

The value is inherited from the parent element. See Chapter 10, "CSS2: A Look Ahead", for more details.

9.1.2. Side Offsets

Three of the positioning schemes described in the previous section -- relative, absolute, and fixed -- use four distinct properties to describe the offset of a positioned element's sides with respect to its containing block. These four properties, which we will refer to as the side-offset properties, are a big part of what makes positioning work.

top, right, bottom, left

Values

<length> | <percentage> | static-position | auto | inherit

Initial Value

auto

Applies to

positioned elements (that is, elements for which the value of position is something other than static)

Inherited

no

WARNING

Percentages refer to the width of the containing block (right, left) or the height of the containing block (top, bottom ).

These properties describe an offset from the nearest side of the containing block (thus the term side-offset ). For example, top describes how far the outer top edge of the positioned element should be placed from the top of its containing block. In the case of top, positive values move the top edge of the positioned element downward, while negative values move it above the top of its containing block. Similarly, left describes how far to the right (for positive values) or left (for negative values) the outer left edge of the positioned element is from the left edge of its containing block. Another way to look at it is that positive values cause inward offsets, moving the edges toward the center of the containing block, and negative values cause outward offsets.

TIP

The description of offsetting the outer edges is based on an erratum. The original CSS2 specification actually says that the content edges are offset, but it has been widely agreed that this is a serious error, and in fact, readings of other parts of the specification show that it is the outer edges that are offset.

The implication of offsetting the outer edges of a positioned element is that everything about an element -- margins, borders, padding, and content -- is moved in the process of positioning the element. In other words, it is possible to set margins, borders, and padding for a positioned element. These will be preserved and kept with the positioned element, and will be contained within the area defined by the side-offset properties.

There are two other side-offset property values that should be mentioned here. The first, static-position, causes the user agent to place the given side of a positioned element where it would have been if the element had not been positioned. For example, consider a nonpositioned element whose top edge is 3 ems from the top of its containing block. If the element is then positioned and given a top of static-position, then the top of the positioned element will be 3 ems from the top of the containing block. Later in the chapter, we'll see how this can be useful.

The other value, auto, allows for some even more interesting effects. It acts much the same as setting auto on margins, but in positioning, this can permit the creation of elements that are only as wide or tall as they need to be in order to display their content, without having to exactly specify how high or wide that will be. We'll explore this in detail later in the chapter as well.

It is important to remember that the side-offset properties define offset from the analogous side (e.g., left defines the offset from the left side) of the containing block, not from the upper-left corner of the containing block. That's why, for example, one way to fill up the lower-right corner of a containing block would use these values:

top: 50%; bottom: 0; left: 50%; right: 0;

In this example, the outer left edge of the positioned element is placed halfway across the containing block. This is its offset from the left edge of the containing block. The outer right edge of the positioned element, however, is not offset from the right edge of the containing block, so the two are coincident. Similar reasoning holds true for the top and bottom of the positioned element: the outer top edge is placed halfway down the containing block, but the outer bottom edge is not moved up from the bottom. This leads to what's shown in Figure 9-2.

TIP

What's depicted in Figure 9-2, and in most of the examples in this chapter, will only work if the containing block was established by an element with an explicitly defined height. This is because a line in the specification says that if the height of the containing block is not explicitly specified -- say, for example, that it's dependent on the content of the element, as in a normal paragraph -- then both top and bottom for any positioned element within that containing block are treated as auto.

In addition, even though they don't explicitly say so, the examples in this section (and the next few sections) are all based around absolute positioning. Since absolute positioning is the simplest scheme in which to demonstrate how top, right, bottom, and left work, we'll stick to that for now.

Figure 9-2. Positioning an element within its containing block

Note that the positioned element has padding, a double border, and a slightly different background color. In Figure 9-2, it has no margins, but if it did, they would create blank space between the borders and the offset edges. This would make the positioned element appear as though it did not completely fill the lower-right quarter of the containing block. In truth, it would do so, but this would not be immediately apparent to the eye. In other words, the following two sets of styles would have the same visual appearance, assuming the containing block to be 100 ems high by 100 ems wide:

top: 50%; bottom: 0; left: 50%; right: 0; margin: 10em;
top: 60%; bottom: 10%; left: 60%; right: 10%; margin: 0;

Again, the similarity would be only visual in nature.

By using negative values, it is possible to position an element outside its containing block. For example, the following values will lead to the result shown in Figure 9-3:

top: -5em; bottom: 50%; left: 75%; right: -3em;

Figure 9-3. Positioning an element beyond its containing block

Now let's see why leaving out width and height isn't always a bad thing in positioning, as well as how declaring them can work to your advantage.

9.1.3. Width and Height

There will be many cases when, having determined where you're going to position an element, you will want to go ahead and declare how wide and how high that element should be. In addition, there will likely be conditions where you'll want to limit how high or wide a positioned element gets, not to mention cases where you want the browser to go ahead and automatically calculate the width, or the height, or both.

9.1.3.1. Setting width and height

If you want to give your positioned element a specific width, then the obvious property to turn to is width. Similarly, height will let you declare a specific height for a positioned element.

width

Values

<length> | <percentage> | auto

Initial Value

auto

Applies to

block-level and replaced elements

Inherited

no

WARNING

Percentage values refer to the width of the containing block.

height

Values

<length> | auto

Initial Value

auto

Applies to

block-level and replaced elements

Inherited

no

Although it is sometimes important to set the width and height of an element, this is not always necessary when positioning elements. For example, if the placement of the four sides of the element is described using top, right, bottom, and left, then the height and width of the element are determined by the placement of the sides. Assume that you want an element to fill the left half of its containing block, from top to bottom. You could use these styles, with the result depicted in Figure 9-4:

top: 0; bottom: 0; left: 0; right: 50%;

Figure 9-4. Filling the left half of the containing block

Since the default value of both width and height is auto, the result shown in Figure 9-4 is exactly the same as if you had used these styles:

top: 0; bottom: 0; left: 0; right: 50%; width: auto; height: auto;

Now let's say you want to position an element that is in the upper-right corner of its containing block and is one-third as wide as its containing block, but only as tall as necessary to display its content, as shown in Figure 9-5.

Figure 9-5. "Shrink-wrapping" a positioned element

This is where auto really comes into its own. The styles needed to get the result shown in Figure 9-5 is:

top: 0; bottom: auto; left: auto; right: 0; width: 33%; height: auto;

Because top is set to 0, and bottom and height are set to auto, the user agent is free to size the element so that it's just tall enough to display its own content, and no taller. This happens thanks to the revised rules for calculating the height and width of absolutely positioned elements, which were published in an errata to the original specification.

Note that the fact that we set an explicit width helped matters. Since the user agent knew how wide the element should be, it was a trivial matter to calculate the height of the element based on its content. If width has also been set to auto, then the user agent would have had to assign some value to it. This value is likely to vary by user agent, so it's usually better to declare a width that you like.

Of course, this is not always the case: you could set an explicit height and let the width scale to fit the content. Thus:

top: 0; bottom: auto; left: auto; right: 0; width: auto; height: 10em;

Here the element will be 10 ems tall no matter what, but its width can vary to exactly fit the content. This is sometimes called "shrink-wrapping" the content, since it mimics the act of applying shrink-wrap to a box or other product. In the same way the plastic shrink-wrap precisely hugs the contents of the package, so too does a positioned element -- given the right styles, of course.

If bottom is set to an actual value -- percentage or length -- then the height of the positioned element is constrained. As a demonstration, let's set bottom to be a specific value, with the result shown in Figure 9-6:

top: 0; bottom: 10%; left: auto; right: 0; width: 33%; height: auto;

Figure 9-6. Defining a height by using an explicit bottom

In this case, the height of the element must be 90% the height of the containing block, since 100% - - 10% = 90%. This assumes, of course, that there have been no margins, borders, or padding set for the positioned element; otherwise, the effective height would be decreased, although the entire element (content, padding, borders, and margins) would still be 90% as tall as the containing block.

Similarly, if we specifically declare a height but leave bottom as auto, then something like Figure 9-7 will occur:

top: 0; bottom: auto; left: auto; right: 0; width: 33%; height: 45%;

Figure 9-7. Defining a height by using an explicit height

In this case, the placement of the bottom of the positioned element is the same as if we'd declared bottom: 55%, because 100% - - 45% = 55%.

Many of the same principles hold true for widths, of course. For example:

top: 100px; bottom: 200px; left: 30%; right: 10%; height: auto; width: auto;

Here, the width of the element is effectively 60% the width of its containing block.

As wonderful as all of this is, there arises a serious question. Suppose you have a positioned element that you don't want to be any smaller than a certain size? Consider the following styles:

top: 10%; bottom: 20%; left: 50%; right: 10%;

Thus the height is 70%, and the width 40% of the containing block's height and width. That's fine as far as it goes -- but what happens if the containing block is only 50 pixels tall by 200 pixels wide? That gives you an element only 35 pixels wide by 80 pixels tall. That doesn't leave much room to show the content, but if you use auto for the width or height, the element might fill its entire containing block, obscuring the containing block's contents.

As we'll see later in the chapter, you have the option to force your content to overflow the element. For now, however, let's concentrate on ways to deal with its width and height. You could try explicitly assigning a width and height, like this:

top: 10%; bottom: 20%; left: 50%; right: 10%; width: 30em; height: 15em;

However, this approach seems a little heavy-handed, and could have disastrous consequences in small browsing environments like handheld devices. Furthermore, it forces you to declare a specific height and width, which gives up a lot of flexibility. Wouldn't it be better to define certain limits for the size of the height and width?

9.1.3.2. Limiting width and height

Should it become necessary or desirable, you can place limits on an element's width and height by using the following CSS2 properties, which I'll refer to as the min-max properties.

min-width

Values

<length> | <percentage> | inherit

Initial Value

UA specific

Applies to

all elements except nonreplaced inline elements and table elements

Inherited

no

WARNING

Percentages refer to the width of the containing block.

max-width

Values

<length> | <percentage> | none | inherit

Initial Value

UA specific

Applies to

all elements except nonreplaced inline elements and table elements

Inherited

no

WARNING

Percentages refer to the width of the containing block.

min-height

Values

<length> | <percentage> | inherit

Initial Value

0

Applies to

all elements except nonreplaced inline elements and table elements

Inherited

no

WARNING

Percentages refer to the height of the containing block.

max-height

Values

<length> | <percentage> | none | inherit

Initial Value

none

Applies to

all elements except nonreplaced inline elements and table elements

Inherited

no

WARNING

Percentages refer to the height of the containing block.

The names of these properties make them fairly self-explanatory. Here we have one possible solution for the example given in the previous section:

top: 10%; bottom: 20%; left: 50%; right: 10%;
  min-width: 20em; min-height: 30em;

Of course, this still isn't a very good solution, since it forces the element to be at least 20em wide by 30em tall. Here's a better one:

top: 10%; bottom: auto; left: 50%; right: 10%; height: auto; min-width: 15em;

Here we have a case where the element should be 40% as wide as the containing block but can never be less than 15em wide. We've also changed the bottom and height so that they're automatically determined. This will let the element be as tall as necessary to display its content, no matter how narrow it gets (never less than 15em, of course!).

We can turn this around to keep elements from getting too wide or tall by using max-width and max-height. Let's consider a situation where, for some strange reason, we want an element to have three-quarters the width of its containing block, but to stop getting wider when it hits 400 pixels. The appropriate styles are:

left: 0%; right: auto; width: 75%; max-width: 400px;

The great advantage of the min-max properties is that they let you mix units with relative safety. You can set percentage-based sizes while setting length-based limits, or vice versa.

TIP

These min-max properties can be very useful in conjunction with floated elements as well. For example, you can allow a floated element's width to be relative to the width of its parent element (which is its containing block), while also making sure that the float's width never goes below 10em. The reverse approach is also possible:

P.aside {float: left; width: 40em; max-width: 40%;}

This will set the float to be 40em wide, unless that would be more than 40% the width of the containing block, in which case the float will be narrowed.

Of course, it's still possible to use these properties to keep an element from exceeding a certain size, as in this:

max-height: 30em; max-width: 20em;

The question here, though, is what happens if the content of the element doesn't all fit into the specified element size. Does it get cut off at the boundaries, or does it spill outside the positioned element? That's what the next section will explore.

9.1.4. Content Overflow and Clipping

Should the content of an element be too much for the element's size, it will be in danger of overflowing the element itself. There are a few alternatives in such situations, and CSS lets you select between them. It will also allow you to define a clipping region to determine the area of the element outside which these sorts of things become an issue, as well as give a way to clip off parts of an element.

9.1.4.1. Overflow

So let's say that you have, for whatever reason, an element that has been pinned to a specific size, and the content doesn't fit. You can take control of the situation with the overflow property.

overflow

Values

visible | hidden | scroll | auto | inherit

Initial Value

visible

Applies to

block-level and replaced elements

Inherited

no

This property only applies in one (or more) the following cases:

  • When an element has negative margins.

  • When a line box must be wider than its parent's content area, perhaps due to the existence of an unusually long word, nonwrapped text such as PRE text, or another circumstance where line-wrapping cannot occur.

  • When a block-level box is wider than its parent's content area.

  • When an element's box is taller than the height explicitly set for its parent.

  • When an element has been absolutely positioned.

The default value of visible means that the content may be visible outside the element's box. Typically, this would lead to the content simply running outside its own element box, but not altering the shape of that box. The following styles would result in Figure 9-8:

DIV#sidebar {position: absolute; top: 0; left: 0; width: 25%; height: 7em;
  overflow: visible;}

Figure 9-8. Overflowing the content area of an element

TIP

The specification does not say whether or not visible overflowed content can overlap the content of other elements, but it is reasonable to infer that this is possible. Since positioned elements can overlap other elements, it stands to reason that the content of a positioned element should be treated no differently.

If the overflow is set to scroll, the element's content is clipped -- that is, cannot be seen -- but some way is provided to make the extra content available to the user. In a web browser, this would mean a scrollbar (or set of them) or another method of accessing the content without altering the shape of the element itself. One possibility is depicted in Figure 9-9, which could result from the following styles:

DIV#sidebar {position: absolute; top: 0; left: 0; width: 15%; height: 7em;
  overflow: scroll;}

Figure 9-9. Invoking a scrollbar with overflow

If scroll is used, the panning mechanisms (e.g., scrollbars) should always be rendered. To quote the specification, "this avoids any problems with scrollbars appearing or disappearing in a dynamic environment." Thus, even if the element has sufficient space to display all of its content, the scrollbars would still appear. In addition, when printing a page or otherwise displaying the document in a paged medium, the content should be displayed as though the value of overflow were declared to be visible.

If the overflow is set to hidden, the element's content is clipped, but no mechanism should be provided to make the content accessible to the user. Consider the following styles:

DIV#sidebar {position: absolute; top: 0; left: 0; width: 15%; height: 7em;
  overflow: hidden;}

In such an instance, the clipped content would not be accessible to the user. This would lead to a situation like that illustrated by Figure 9-10.

Figure 9-10. Clipping content with overflow

Finally, there is overflow: auto. This allows user agents to determine what behavior to use, although they are encouraged to provide a scrolling mechanism when necessary. This is a potentially useful way to use overflow, since user agents could interpret it to mean "provide scrollbars only when needed." (They may not, but they certainly could, and probably should.)

In the simplest case, the clipping region for any positioned element is the content area of the element itself, as depicted in Figure 9-10. However, you may wish to change the clipping area. That's what we'll do in the next section.

9.1.4.2. Overflow clipping

In situations where the content of an element overflows its element box, and overflow has been set such that the content should in fact be clipped, it is possible to alter the shape of the clipping region by using the property overflow-clip.

overflow-clip

Values

rect(<top>, <right>, <bottom>, <left>) | auto | inherit

Initial Value

auto

Applies to

block-level and replaced elements with an overflow value other than visible

Inherited

no

The default value, auto, means that the clipping region should have the same size and location as the element's content area. The other possibility is to define a clipping shape that is relative to the element's content area. This does not alter the shape of the content area, but instead alters the area in which content may be rendered.

TIP

While the only clipping shape available in CSS2 is a rectangle, the specification does offer the possibility that other shapes will be included in future specifications.

This is done with the shape value rect(top, right, bottom, left). We could specify no change in the clipping region like this:

overflow-clip: rect(0, auto, auto, 0);

This would be no different than declaring overflow-clip: auto. It's more interesting to shift the clipping area, of course. For example:

DIV#sidebar {position: absolute; top: 0; left: 0; width: 5em; height: 7em;
  overflow: hidden; overflow-clip: rect(0.5em, 4em, 6.5em, 1em);}

This sets the clipping area inward half an em from the top and bottom, and one em from the right and left. This would cause a result something like that shown in Figure 9-11, where a dashed line has been added to illustrate the edges of the clipping region. This line would not actually appear in a user agent attempting to render the document.

Figure 9-11. Contracting the clipping region

The syntax of rect is an interesting case. Technically, it can be rect(top, right, bottom, left) -- note the commas -- but the CSS2 specification contains examples both with and without commas and defines rect as accepting both the comma and noncomma versions. This text will stick to the comma version mostly because it makes things easier to read.

It is extremely important to note that the values for rect(...) are not side-offsets. They are, instead, distances from the upper-left corner of the element. Thus, a clipping rectangle which encloses a square 20 pixels by 20 pixels in the upper-left corner of the element would be defined as:

rect(0, 20px, 20px, 0)

The only values permitted with rect(...) are length values and auto, which is the same as "set the clipping edge to the appropriate content edge." Thus, the following two statements mean the same thing:

overflow-clip: rect(auto, auto, 10px, 1cm);
overflow-clip: rect(0, 0, 10px, 1cm);

It is possible to set negative lengths, though, which will expand the clipping area outside the element's box. If you wanted to push the clipping area up and left by a quarter-inch, it would be done with the following styles (illustrated by Figure 9-12):

overflow-clip: rect(-0.25in, auto, auto, -0.25in);

Figure 9-12. Expanding the clipping area

This doesn't do much good, as you can see. The clipping rectangle extends up and to the left, but since there isn't any content there, the visual effect is the same as if the author had declared overflow-clip: auto.

On the other hand, it might be okay to go beyond the bottom and right edges, but not the top or left. Figure 9-13 shows the results of these styles (and remember, the dashed lines are only for illustrative purposes):

DIV#sidebar {position: absolute; top: 0; left: 0; width: 5em; height: 7em;
overflow: hidden; overflow-clip: rect(0, 6em, 9em, 0);}

Figure 9-13. Expanding the clipping region

This extends the area in which content can be seen. However, it doesn't change the flow of the content, so the only visual effect is that more content can be seen below the element. The text does not flow out to the right, because the width of its line boxes is still constrained by the width of the positioned element. If there had been an image wider than the positioned element, or preformatted text with a long line, this might have been visible to the right of the positioned element, up to the point where the clipping rectangle ends.

The syntax of rect(...) is, as you may have already realized, rather unfortunate. It is based on an early draft of the positioning section, which used the top-left-offset scheme. Internet Explorer implemented this before CSS2 was made a full Recommendation, and so came into conflict with a last-minute change that made rect(...) use side-offsets, just like the rest of CSS2. This was done, reasonably enough, because it would make positioning consistent with itself.

By then, however, it was too late: there was an implementation in the marketplace, and rather than force Microsoft to change the browser and thus potentially cause existing pages to break, the standard was changed to reflect implementation. This means, sadly, that it is impossible to set a consistent clipping rectangle in situations where the height and width are not precisely defined. For example, there is no way to create a clipping rectangle that is 1 em larger than this element's content area:

position: absolute; top: 0; bottom: 50%; right: 50%; left: 0;

Since there is no way to know how many ems tall or wide the element will be, there is no way to make a clipping rectangle that ends 1 em to the right, or 1 em below, the content area of the element.

Further compounding the problem is that rect(...) only accepts length units and auto. The addition of percentage units as valid rect(...) values would go a long way toward improving things, and hopefully a future version of CSS will add this capability.

9.1.4.3. Element clipping

There is another way to clip in CSS, but this is very different from what we've just seen.

clip

Values

rect(<top>, <right>, <bottom>, <left>) | auto | inherit

Initial Value

auto

Applies to

block-level and replaced elements

Inherited

no

This property can be used to clip the element with a simple intersection operation. The area of the element contained within the clip rectangle is displayed, and any part of it outside that rectangle is not. In addition, the clip rectangle is set in relation to the outer edge of the element -- not its content edge. Thus, let's say you wanted (for whatever reason) to clip the top 10 pixels of an image:

<IMG SRC="foo.gif" STYLE="clip: rect(10px, auto, auto, 0);">

The auto values will set the clipping rectangle's bottom to align with the bottom of the image, and the right edge to the right edge of the image. The value of 0 for left keeps the left edge of the clipping rectangle against the left edge of the image, but the 10px for top moves the top edge of the clipping rectangle downward 10 pixels. This will cause the top 10 pixels of the image to become effectively invisible.

clip can be applied to any element. Thus, you could display only the top left corner of a paragraph using something like this:

<P STYLE="clip: rect(0, 10em, 10em, 0);">

This will display a square 10 ems wide by 10 ems high. This square is drawn from the top left outer corner, so any margins, borders, and padding will influence how much of the element is visible and how much is clipped out.

9.1.5. Element Visibility

In addition to all the clipping and overflowing, you can also control the visibility of an entire element.

visibility

Values

visible | hidden | collapse | inherit

Initial Value

inherit

Applies to

all elements

Inherited

no

This one is pretty easy. If an element is set to have visibility: visible, then it is visible. Of course.

However, if an element is set to visibility: hidden, it is made "invisible" (to use the wording in the specification). In its invisible state, the element still affects the document's layout as though it were visible. In other words, the element is still there: you just can't see it. Note the difference between this and display: none. In the latter case, the element is not displayed and is removed from the document altogether so that it doesn't have any effect on document layout. Figure 9-14 shows a document in which an EM element has been set to be hidden, based on the following styles and markup:

EM.trans {visibility: hidden; border: 3px solid gray; background: silver;
  padding: 1em;}

<P>
This is a paragraph which should be visible. Lorem ipsum, dolor sit amet,
<EM CLASS="trans">consectetuer adipiscing elit, sed diam nonummy nibh </EM>
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
</P>

Figure 9-14. Hiding an element

Everything visible about an element -- such as content, background, and borders -- will be made invisible. Note that the space is still there because the element is still part of the document's layout. We just can't see it.

Note too that it's possible to set the descendant element of a hidden element to be visible. This would cause the element to appear wherever it normally would, despite the fact that the ancestor (and possibly the siblings) is invisible. In order to do so, you would need to explicitly declare the descendant element to be visible, since visibility is inherited. Thus:

P.clear {visibility: hidden;}
P.clear EM {visibility: visible;}

As for visbility: collapse, this value is used in CSS table rendering, which isn't covered in this book because it wasn't well implemented as the book was being written. According to the CSS2 specification, collapse has the same meaning as hidden if it is used on nontable elements. From a semantic standpoint, this seems somewhat confusing (since collapse sounds like it should trigger the kind of behavior you'd see with display: none), but there it is nonetheless.

Previous | Home | Next
8.5. Summary | Book Index | 9.2. Relative Positioning


Relative Positioning (Cascading Style Sheets: The Definitive Guide)

9.2. Relative Positioning

The simplest of the positioning schemes to understand is relative positioning. In this scheme, a positioned element is shifted by use of the side-offset properties. However, this can have some interesting consequences.

On the surface, it seems simple enough. Let's say we want to shift an image up and to the left. Figure 9-15 shows us the result of these styles:

IMG {position: relative; top: -20px; left: -20px;}

Figure 9-15. A relatively positioned element

All we've done here is offset the image's top edge 20 pixels upward and offset the left edge 20 pixels to the left. However, notice the blank space where the image was previously positioned. That space exists because when an element is relatively positioned, it's shifted from its normal place, but the space it would have occupied doesn't disappear. Consider the results of the following styles, which are depicted in Figure 9-16:

EM {position: relative; top: 8em; color: gray;}

Figure 9-16. A relatively positioned EM element

As you can see, the paragraph has some blank space in it. That's where the EM element would have been, and the layout of the EM element in its new position exactly mirrors the space it left behind.

This works because the containing block of a relatively positioned element is the space that it would have occupied had its position been static. This is an important thing to note, since one might expect that the containing block was defined by the parent element. Instead, the relatively positioned element sets its own containing block, and then offsets itself relative to that context.

Of course, it's also possible that you can shift a relatively positioned element to overlap other content. For example, the following styles and markup will get you Figure 9-17:

EM {position: relative; bottom: -0.5em; color: gray;}
B {position: relative; bottom: 0.5em; color: gray;}

<P>This is a paragraph which should be visible. Lorem ipsum, dolor sit amet,
consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
laoreet dolore magna aliquam erat volutpat.
<EM>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
suscipit lobortis nisl ut aliquip ex ea commodo consequat.</EM>
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
molestie consequat, vel illum dolore eu feugiat nulla <B>facilisis at vero
eros et accumsan et iusto odio dignissim qui blandit praesent luptatum</B>
zzril delenit augue duis dolore te feugait nulla facilisi.</P>

Figure 9-17. Two relatively positioned elements

When you relatively position an element, it immediately establishes a new containing block for any of its children. This containing block corresponds to the place where the element has been positioned. Thus, you can position an element relative to its parent element, which has itself been relatively positioned. Figure 9-18 shows us the results of the following styles and markup:

P {color: gray;}
EM {position: relative; bottom: -0.75em; color: black;}
B {position: relative; bottom: 0.5em; left: 1em; color: black;}

<P>This is a paragraph which should be visible. Lorem ipsum, dolor sit amet,
consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
laoreet dolore magna aliquam erat volutpat.
<EM>Ut wisi enim ad minim veniam, <B>quis nostrud exerci tation ullamcorper
</B> suscipit lobortis nisl ut aliquip ex ea commodo consequat.</EM>
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros
et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril
delenit augue duis dolore te feugait nulla facilisi.</P>

Figure 9-18. Nested relative positioning

The emphasized text has been shifted down 0.75 em from where it would have ordinarily appeared, which is to be expected. The boldface text has been moved 1 em to the right and upward half an em, but it is moved relative to the position of the emphasized text after it has been moved.

There is one interesting wrinkle to relative positioning: what happens when a relatively positioned element is overconstrained? For example:

EM {position: relative; top: 1em; bottom: 2em;}

Here we have values that call for two very different behaviors. If you only consider top: 1em , then the element should be shifted downward an em, but bottom: 2em clearly calls for the element to be shifted upward by 2 ems.

The original CSS2 specification does not say what should happen in this case. As of this writing, there is a published errata that states that when it comes to overconstrained relative positioning, one value would be reset to be the negative of the other. Thus, bottom would always equal -top and right would equal -left. This means that the previous example would be treated as though it had been this:

EM {position: relative; top: 1em; bottom: -1em;}

Thus the element will be shifted downward by 1 em. This proposed change also makes allowances for writing directions. It states that in relative positioning, right always equals -left in left-to-right languages, but in right-to-left languages, this is reversed: left would always equal -right.

Previous | Home | Next
9. Positioning | Book Index | 9.3. Absolute Positioning


Absolute Positioning (Cascading Style Sheets: The Definitive Guide)

9.3. Absolute Positioning

Since most of the examples and figures in the chapter (besides the previous section) have been examples of absolute positioning, we're already halfway to an understanding of how it works. Most of what remain are the details of what happens when absolute positioning is invoked.

When an element is positioned absolutely, it is completely removed from the document flow. It is then positioned with respect to its containing block, and its edges are placed using the side-offset properties. The positioned element does not flow around the content of other elements, nor does their content flow around the positioned element. This implies that an absolutely positioned element may overlap other elements, or be overlapped by them. (We'll see how you can affect the overlapping order at the end of the chapter.)

Remember that the containing block of an absolutely positioned element is not necessarily its parent element. In fact, it often is not, unless the author takes steps to correct this situation. Fortunately, that's easy to do. Just pick the element that you want to use as the containing block for the absolutely positioned element, and give it a position of relative with no offsets. Thus:

P.contain {position: relative;}

Consider the example in Figure 9-19. It shows two paragraphs that contain identical text. However, the first paragraph contains an inline boldface element, and the second an absolutely positioned boldface element. In the second paragraph, the styles used would be something like what is shown here:

P {position: relative;}   /* establish containing blocks */

<B STYLE="position: absolute; top: auto; right: 0; bottom: 0; left: auto;
 width: 8em; height: 4em;">...</B>

Figure 9-19. The effects of absolute positioning

For the most part, the text in both paragraphs looks fairly normal. In the second one, however, the place where the boldface element would have appeared is simply closed up, and the positioned text overlaps the some of the content. There is no way to avoid this, short of positioning the boldfaced text outside of the paragraph (by using a negative value for right) or by specifying a padding for the paragraph that is wide enough to accommodate the positioned element. Also, since it has a transparent background, the parent element's text shows through the positioned element. The only way to avoid this is to set a background for the positioned element.

Note that the boldface element in this case is positioned in relation to its parent element's content box, which defines its containing block. Without the relative positioning of the parent element, the containing block would be another element. Consider a case where the element being positioned is a child of the BODY element, e.g., a paragraph or heading element. With the right styles, the containing block for the positioned element will be the entire BODY element. Thus, applying the following styles to the BODY and the fifth paragraph in a document would lead to a situation similar to that shown in Figure 9-20:

BODY {position: relative;}

<P STYLE="position: absolute; top: 0; right: 25%; left: 25%; bottom: auto;
 width: 50%; height: auto; background: silver;">...</P>

Figure 9-20. An absolutely positioned paragraph

The paragraph is now positioned at the very beginning of the document, half as wide as the document's width and overwriting the first few elements!

In addition, if the document is scrolled, the paragraph will scroll right along with it. This is because the element's containing block is the BODY element's content area, not the viewport. If you want to position elements so that they're placed relative to the viewport and don't scroll along with the rest of the document, then the next section is for you.

Before we get there, however, there are a few more things to cover. Remember that absolutely positioned boxes can have backgrounds, margins, borders, and padding; styles can be applied within them, just as with any other element. This can make them very useful for the creation of sidebars, "sticky notes," and other such effects. One example is the ability to set a "change marker" on any paragraph that has been edited. This could be done using the following styles and markup:

SPAN.change {position: absolute; top: 0; left: -5em; width: 4em;
  font-weight: bold;}
P {margin-left: 5em; position: relative;}

<P> Lorem ipsum, dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut <SPAN CLASS="change">***</SPAN>
laoreet dolore magna aliquam erat volutpat.</P>

While this does rely on inserting an extra element, the advantage is that the SPAN can be placed anywhere in the paragraph and still have the result depicted in Figure 9-21.

Figure 9-21. Setting a "change bar" with absolute positioning

However, maybe we'd like to place the change marker next to whatever line was changed. In that case, we need to make only one small alteration to our styles, and we'll get the result shown in Figure 9-22:

SPAN.change {position: absolute; top: static-position; left: -5em; width: 4em;
  font-weight: bold;}
P {margin-left: 5em; position: relative;}

<P> Lorem ipsum, dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut <SPAN CLASS="change">***</SPAN>
laoreet dolore magna aliquam erat volutpat.</P>

Figure 9-22. Another approach to defining a "change bar"

Remember when we mentioned static-position much earlier in the chapter? Here's one example of how it works and how it can be very useful.

Another important point is that when an element is positioned, it establishes a containing block for its descendant elements. For example, we could absolutely position an element and then absolutely position one of its children, as shown in Figure 9-23.

Figure 9-23. Nested absolutely positioned elements

The small box B in the lower-left corner of the element A is a child of A, which is in turn a child of a relatively positioned DIV. B was absolutely positioned, as was element A, using styles like these:

DIV {position: relative;}
P.A {position: absolute; top: 0; right: 0; width: 15em; height: auto;
   margin-left: auto;}
P.B {position: absolute; bottom: 0; left: 0; width: 10em; height: 50%;
   margin-top: auto;}

This is an important point to always keep in mind: only positioned elements establish containing blocks for their descendant elements. I know this has come up before, but it's so fundamental that it needs to be repeated.

Previous | Home | Next
9.2. Relative Positioning | Book Index | 9.4. Fixed Positioning


Fixed Positioning (Cascading Style Sheets: The Definitive Guide)

9.4. Fixed Positioning

As implied in the previous section, fixed positioning is just like absolute positioning, except the containing block of a fixed element is always the viewport. In this case, the element is totally removed from the document's flow and does not have a position relative to any part of the document.

This can be exploited in a number of interesting ways. First off, it's possible to create frame-style interfaces using fixed positioning. Consider Figure 9-24, which shows a very common layout scheme.

Figure 9-24. Emulating frames with fixed positioning

This could be done using the following styles:

DIV#header {position: fixed; top: 0; bottom: 80%; left: 20%; right: 0;
  background: gray;}
DIV#sidebar {position: fixed; top: 0; bottom: 0; left: 0; right: 80%;
  background: silver;}

This will fix the header and sidebar to the top and side of the viewport, where they will remain regardless of how the document is scrolled. The drawback here, though, is that the rest of the document will be overlapped by the fixed elements. Therefore, the rest of the content should probably be contained in its own DIV and employ the following:

DIV#main {position: absolute; top: 20%; bottom: 0; left: 20%; right: 0;
  overflow: scroll; background: white;}

It would even be possible to create small gaps between the three positioned DIVs by adding some appropriate margins, demonstrated in Figure 9-25:

BODY {background: black; color: silver;}  /* colors for safety's sake */
DIV#header {position: fixed; top: 0; bottom: 80%; left: 20%; right: 0;
  background: gray; margin-bottom: 2px; color: yellow;}
DIV#sidebar {position: fixed; top: 0; bottom: 0; left: 0; right: 80%;
  background: silver; margin-right: 2px; color: maroon;}
DIV#main {position: absolute; top: 20%; bottom: 0; left: 20%; right: 0;
  overflow: scroll; background: white; color: black;}

Figure 9-25. Separating the "frames"

Given such a case, a tiled image could be applied to the BODY background. This image would show through the gaps created by the margins, which could certainly be widened if the author saw fit. For that matter, if a background image was of little importance, simple borders could be applied to the DIVs instead of margins.

Previous | Home | Next
9.3. Absolute Positioning | Book Index | 9.5. Stacking Positioned Elements


Stacking Positioned Elements (Cascading Style Sheets: The Definitive Guide)

9.5. Stacking Positioned Elements

With all of the positioning going on, there will inevitably be a situation where two elements will try to exist in the same place, visually speaking. Obviously, one of them will have to overlap the other -- but how do we control which one comes out "on top"?

This is where z-index comes in.

z-index

Values

integer | auto

Initial Value

auto

Applies to

positioned elements

Inherited

no

z-index allows the author to alter the way in which elements overlap each other It takes its name from the coordinate system in which side-to-side is the x-axis and top-to-bottom is the y-axis. In such a case, the third axis -- that runs from front to back, or if you prefer, closer to further away from the user -- is termed the z-axis. Thus, elements are given values along this axis and are represented using z-index. Figure 9-26 illustrates this system.

Figure 9-26. A conceptual view of z-index stacking

In this coordinate system, an element with a high z-index value is closer to the reader than those with lower z-index values. This will cause the high-value element to overlap the others, as illustrated in Figure 9-27. This is referred to as stacking.

Figure 9-27. How the elements are stacked

Any integer can be used as a value for z-index, including negative numbers. Assigning an element a negative z-index will move it further away from the reader; that is, it will be moved lower in the stack. Consider the following styles, illustrated in Figure 9-28:

P.first {position: absolute; top: 0; left: 0;
  width: 20%; height: 10em; z-index: 6;}
P.second {position: absolute; top: 0; left: 10%;
  width: 30%; height: 5em; z-index: 2;}
P.third {position: absolute; top: 15%; left: 5%;
  width: 15%; height: 10em; z-index: -5;}
P.fourth {position: absolute; top: 10%; left: 15%;
  width: 40%; height: 10em; z-index: 0;}

Figure 9-28. Stacked elements can overlap each other

Each of the elements is positioned according to its styles, but the usual order of stacking is altered by the z-index values. Assuming the paragraphs were in numeric order, then a reasonable stacking order would have been, from lowest to highest, P.first, P.second , P.third , P.fourth. This would have put P.first behind the other three elements and P.fourth in front of the others. Now, thanks to z-index, the stacking order is under our control.

As the previous example demonstrates, there is no particular need to have the z-index values be contiguous. You can assign any integer of any size. If you wanted to be fairly certain that an element stayed in front of everything else, you might use a rule along the lines of z-index: 100000. This would work as expected in most cases -- although if you ever declared another element's z-index to be 100001 (or higher), it would appear in front.

Once you assign an element a value for z-index (other than auto), that element establishes its own local stacking context. This means that all of the element's descendants have their own stacking order, relative to the ancestor element. This is very similar to the way that elements establish new containing blocks. Given the following styles, you would see something like Figure 9-29:

P.one {position: absolute; top: 0; left: 0; width: 50%; height: 10em;
  z-index: 10;}
P.two {position: absolute; top: 30%; left: 25%; width: 50%; height: 10em;
  z-index: 7;}
P.three {position: absolute; top: 60%; left: 0; width: 50%; height: 10em;
  z-index: -1;}
P.one B {position: relative; left: 15em; top: 0; z-index: -404;}
P.two B {position: relative; left: 3em; top: -1em; z-index: 36;}
P.two EM {position: relative; top: 4em; left: 7em; z-index: -42;}
P.three B {position: relative; top: 0; left: 3em; z-index: 23;}

Figure 9-29. An example of positioning and z-index

Note where the relatively positioned inline elements fall in the stacking order. Each of them is correctly positioned with respect to its parent element, of course. However, pay close attention to the children of P.two. While the B element is in front of its parent, and the EM is behind, both of them are in front of P.three ! This is because the z-index values of 36 and -42 are relative to P.two, but not to the document in general. In a sense, P.two and all of its children share a z-index of 7, while having their own mini-z-index within the context of P.two.

If you want another way to look at this, it's as though the B element has a z-index of 7,36 while the EM 's value is 7,-42. These are merely implied conceptual values; they don't conform to anything in the specification. However, such a system helps to illustrate how the overall stacking order is determined. Consider:

P.one        10
P.one B      10,-404
P.two B      7,36
P.two        7
P.two EM     7,-42
P.three B   -1,23
P.three     -1

This conceptual framework precisely describes the order in which these elements would be stacked. While the descendants of an element can be above or below that element in the stacking order, they are all grouped together with their ancestor.

There remains one more value to examine. The specification has this to say about the default value, auto:

The stack level of the generated box in the current stacking context is the same as its parent's box. The box does not establish a new local stacking context. (CSS2: 9.9.1)

What this seems to mean is that user agents are free to use whatever stacking algorithm they already use in laying out a document. However, it can also mean that any element with z-index: auto can be treated as though it is set to z-index: 0. Unfortunately, the CSS2 specification is not entirely clear on this point, so there may be inconsistencies between different user agents.

Previous | Home | Next
9.4. Fixed Positioning | Book Index | 9.6. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

9.6. Summary

When it comes right down to it, positioning is a very compelling technology. It's also likely to be an exercise in frustration if you're trying to get it to behave consistently in a cross-browser environment. The problem isn't so much that it won't work in some browsers: it's that it will only sort of work in a number of them, such as Navigator 4 and Internet Explorer 4 and 5. It can be great fun to play with positioning, and one day we'll be able to use it in place of tables and frames while dramatically improving accessibility and backward compatibility. As of this writing, though, it remains a great way to create design prototypes, but a tricky thing to use on a public web site.

As it happens, this sentiment may be applied to the majority of CSS2, which is given an overview in the next chapter.

Previous | Home | Next
9.5. Stacking Positioned Elements | Book Index | 10. CSS2: A Look Ahead


CSS2: A Look Ahead (Cascading Style Sheets: The Definitive Guide)

Chapter 10. CSS2: A Look Ahead

Contents:

Changes from CSS1
CSS2 Selectors
Fonts and Text
Generated Content
Adapting to the Environment
Borders
Tables
Media Types and @-rules
Summary

In the course of writing this book, I vacillated back and forth over how to handle CSS2. It's a full W3C Recommendation, of course, but so little of it has actually been implemented correctly that it seemed almost a waste of time -- both mine and yours -- to talk about CSS2 in detail. After all, not only would I have to fake all of the screenshots (not to mention guess at correct behavior in a few cases), but you wouldn't be able to try out anything I discussed, since browsers wouldn't recognize your CSS2 rules.

On the other hand, CSS2 can hardly be ignored. So in the end, I settled on writing a chapter that talks about CSS2 in brief, abstract detail -- in other words, this chapter. The next edition of this book will almost certainly be driven by the need to add detailed information concerning CSS2, and will very likely be undertaken once the dust settles and browsers start to correctly implement major portions of CSS2.

Also realize that, of the figures shown in this chapter, the vast majority are -- well -- faked. There was no other way to produce most of these examples. The point of telling you this is to spare you the frustration of trying to figure out how they were produced. So, with that in mind, here's a brief taste of what CSS2 can offer.

10.1. Changes from CSS1

Only a few CSS1 properties have gained new values. These were mostly concerned with addressing issues that did not exist, or were not considered, when CSS1 was written. The one standout is a new value called inherit, which represents a huge change to everything -- but more on that in a moment.

10.1.1. Additions and Changes to the display Property

The property display has received quite a few new values in CSS2. Now, in addition to block, inline, line-item, and none, we have run-in, compact, and marker (which we'll get to later), as well as a number of values specific to tables (which we'll also cover later on).

The display value compact has an effect similar to <DL compact> (assuming your browser supports that bit of HTML). Basically, if an element is set to display: compact, then it will appear in the margin of the next element, assuming there is enough room for it. Otherwise, both elements will be treated as block-level elements. Think of a "compacted" element as one that floats, but only if there is room for it to be displayed without altering the formatting of the following element, something like the illustration in Figure 10-1.

Figure 10-1. Compact display of a definition list

On the other hand, run-in has the effect of turning a block-level element into an inline element at the beginning of the following block-level element. Another way to think of it is that a block-level element set to run-in will be combined with the next block-level element so that the two together form a single block-level element.

Given this code:

<H3 STYLE="display: run-in;">A Heading.</H3>
<P>This is a paragraph of text....</P>

the result will look something like what's shown in Figure 10-2.

Figure 10-2. A run-in heading

The display type run-in can be applied to any block-level element, not just headings. However, this rule should only work if the next element is block-level and is not floating or positioned absolutely. So, for example, if you try to set an inline anchor to run-in, it won't have any effect.

Another change for display is that its default value is inline, not block, as was defined in CSS1. The authors have termed the original default value an error, so if you don't declare a value for display, it is assumed to be inline. Of course, your browser should have its own built-in HTML styles, so don't worry about your paragraphs suddenly running together!

10.1.2. More Inheritance

Finally, there is one very important new feature of CSS2 that belongs in this section: the value inherit. If you were to ask the question, "Okay, to which properties did inherit get applied?" the answer would be, "Every last one of them." There is not a single property in the whole of CSS that does not accept a value of inherit.

inherit is used to explicitly declare that a given computed value should be inherited from its parent. In other words, if the font-size for BODY is computed to be 14 points, then the declaration P {font-size: inherit;} would set paragraph text to 14 points in size, as long as the paragraphs are children of the BODY element. Similarly, you could make sure that hyperlinks always have the same color as the text that surrounds them by using the simple declaration:

A:link, A:visited {color: inherit;}

The power of this change should not be underestimated. In effect, you are able to override the specificity mechanism that ordinarily takes effect. Usually, hyperlinks are (for instance) blue unless you explicitly declare them to be otherwise -- and if you want differently colored links in different areas of the same page, you'd have to construct a different rule for each color.

Now, thanks to inherit, if it's okay to make them the same color as surrounding text, you just need one rule that will cover all circumstances. Note that I'm not saying this is a good idea, or the only thing for which inherit can be used. It's simply the most obvious possibility.

Previous | Home | Next
9.6. Summary | Book Index | 10.2. CSS2 Selectors


CSS2 Selectors (Cascading Style Sheets: The Definitive Guide)

10.2. CSS2 Selectors

We're going to discuss CSS2 selectors in some detail because they're likely to be one of the first parts of the specification to be implemented quickly. Therefore, while you might not be able to do everything described here as soon as you read this, expect most (if not all) of this to be included in browsers released in the year 2000 or later.

10.2.1. Basic Selectors

First, in addition to the existing selector mechanisms like contextual selectors, we have several new selector symbols that will make it a lot easier to construct very specific, very sophisticated selections -- without having to resort to sprinkling classes or IDs throughout the whole document.

10.2.1.1. Universal selector

The most powerful of the new selectors is the universal selector. This is specified using an asterisk (*), and it matches any element in the document. Thus, use this declaration to make sure all elements have a color of black:

* {color: black;}

When used as part of a contextual selector, the universal selector can create some interesting effects. For example, assume that you want to make gray any UL element that is at least a grandchild of the BODY. In other words, any UL that is a child of BODY would not be gray, but any other UL -- whether it's child to a DIV, a list item, or a table -- should be gray. This is accomplished as follows:

BODY * UL {color: gray;}

Figure 10-3 shows the result of this declaration.

Figure 10-3. Making BODY's grandchildren (and their descendants) gray

On the other hand, perhaps you wish to make purple any element that is a descendant of DIV. This would be written:

DIV * {color: purple;}

At first glance, this seems no different than if the * were left out, instead relying on inheritance to carry the color to all descendants of DIV. However, there is a very real difference: the rule shown would match every DIV descendant, and therefore override the inheritance mechanism. Thus, even anchors (which are descendants of a DIV) would be made purple under the given rule, whereas simple inheritance would not be sufficient to make them purple.

While you can use the universal selector in combination with class and ID selectors, there isn't much reason to do so. The following two rules mean exactly the same thing:

*.apple {color: red;}
.apple {color: red;}

However, you should consider this: if you're concerned about older user agents that don't know about CSS2, then *.class (or *#id) is an easy way to fool them. Since both of these are examples of invalid selectors in CSS1, they should be ignored by CSS1-only parsers. If they aren't ignored, then they're likely to cause strange results. Therefore, it might be a good idea to omit the universal selector in conjunction with class and ID selectors.

10.2.1.2. Child selector

Another interesting selector is the child selector, which is written using a greater-than symbol (>). This is used to match elements that are direct children of other elements:

BODY > P {color: green;}

<BODY>
<P>This paragraph is green.</P>
<DIV>
<P>This paragraph is not green.</P>
</DIV>
<P>This paragraph is green.</P>
</BODY>

Only the first and third paragraphs match the rule because they are children of BODY. The second paragraph is a child of DIV, and therefore a grandchild of BODY, so it does not match the rule.

Child selectors must have at least two or more selectors separated by the > symbol. It is possible to make a child selector part of a contextual selector as well:

DIV OL>LI EM {color: purple;}

This rule matches any EM text that is a descendant of a list item, as long as that list item is a child of an OL element that is a descendant of a DIV. (Note also that there is no whitespace around the > symbol this time, which is legal; whitespace around this symbol is optional.) Thus:

<BODY>
<OL>
<LI>The EM text here is <EM>not</EM> purple.</LI>
</OL>
<DIV>
<OL>
<LI>Look, a list:
<UL>
<LI>The emphasized text here <EM>is</EM> purple.</LI>
</UL>
</LI>
</OL>
</DIV>
</BODY>

The purple EM text is purple because it's the great-grandchild of an LI that is the direct child of the OL, and the OL is the grandchild of the BODY element. The first EM is not matched because its grandparent OL is not the direct child of a DIV.

Even better, you can string more than one child selector together to precisely target a given type of element. Take this, for example:

BODY > OL > LI {color: silver;}

<BODY>
<OL>
<LI>The text here is silver.</LI>
</OL>
<DIV>
<UL>
<LI>Look, a list (and this text is not silver, by the way):
<OL>
<LI>The text here is <EM>not</EM> silver.</LI>
</OL>
</LI>
</UL>
</DIV>
</BODY>

Given this rule, we get results like those shown in Figure 10-4.

Figure 10-4. Selecting grandchildren only

The first list item in the source is silver because it's the child of an ordered list that is itself the child of a BODY. The second list item in the source is the child of an unordered list, so it can't match the rule. Finally, the third list item in the source is a child of an ordered list, but the OL element is the child of an LI element, so it doesn't match either.

10.2.1.3. Adjacent-sibling selector

If you thought that was interesting, consider our next subject: the adjacent sibling selector. This is in some ways like the child selector, but in this case, styles are applied to elements that share a parent and are next to each other in the document tree. For example:

H2 + P {color: silver;}

<H2>Coloring Text</H2>
<P>This paragraph is silver.</P>
<P>This paragraph is not.</P>

<H2>More Coloring Text</H2>
<UL><LI>This is not silver</LI></UL>
<P>Neither is this.</P>

<H2>More Coloring Text</H2>
This text is not silver.
<P>This paragraph is silver.</P>
<P>This paragraph is not.</P>

In the first set of markup, a paragraph immediately follows an H2, so it is silver. In the second, the element adjacent to the H2 is a UL, which does not match the rule, and neither does the paragraph right after that. Finally, even though there is text directly after the third H2, it isn't part of an element, so the paragraph right after the text matches the rule and is colored silver. All this is demonstrated in Figure 10-5.

Figure 10-5. Selecting adjacent elements

If you wanted to make any element immediately following an H2 silver, then the universal selector comes into play:

H2 + * {color: silver;}

The fact that user agents ignore text between elements can actually be used to your advantage in many circumstances. Take, for example, a document design in which you want STRONG text to be gray, except when it follows EM text, in which case it should be silver:

STRONG {color: gray;}
EM + STRONG {color: silver;}

<P>While the first strong element is <STRONG>gray</STRONG>, the
<EM>second</EM> strong element is <STRONG>silver</STRONG>, because it
follows an "EM" element.

The result is shown in Figure 10-6.

Figure 10-6. More adjacent selections

10.2.2. Attribute Selectors

With the introduction of attribute selectors , CSS gains a great deal of flexibility, precision, and power. Attribute selectors can be matched in four ways, each of which carries its own strengths and advantages.

10.2.2.1. Attribute matching

First off, there is the ability to create a selector that matches any element with the specified attribute. For example, you can match all anchors with a NAME attribute, or all IMG elements with a BORDER attribute, or all elements that have a class of some type:

A[name] {color: purple;}      /* colors any NAME anchor purple */
IMG[border] {border-color: blue;}  /* sets blue border for any bordered IMG */
[class] {color: red;}        /* sets any classed element red */

In none of these situations does it matter what value is assigned to the attributes of each element. As long as the given attribute is present for the element, the element will match the selector shown. Thus, in the following example, the first two IMG elements shown will match the preceding rule, whereas the third will not, as illustrated by Figure 10-7:

IMG[border] {border-color: blue;}

<IMG SRC="one.gif" BORDER="1" ALT="image one (match)">
<IMG SRC="two.gif" BORDER="23" ALT="image two (match)">
<IMG SRC="three.gif" ALT="image three (no match)">

Figure 10-7. Attribute matching

10.2.2.2. Value matching

It is also possible to match attributes based on their values. Assume that you wish to style all hyperlinks as gray, except for those that point to the main page of the web site of the World Wide Web Consortium (http://www.w3.org/). These links should be silver instead, as shown in Figure 10-8:

A[href] {color: gray;}
A[href="http://www.w3.org/"] {color: silver;}

Figure 10-8. Matching on attribute values

Thanks to the cascade, the second rule will apply when an anchor points to the W3C web site, overriding the previous rule.

10.2.2.3. Matching single attribute values

It has been possible since HTML 3.2 to set multiple class names on a given element, such as:

<P CLASS="footnote example reference">

In CSS1 you could only refer to one of the values, using a selector like P.example. In CSS2, you can create a selector such that the class name must be an exact match, or you can set it up so that only one of the values has to match. P[class="example"] wouldn't match the preceding three-class paragraph, because the values are different (example isn't the same as footnote example reference).

On the other hand, P[class~="example"] would match footnote example reference because this type of selector has only to match oneof the values in the class attribute. The only difference is the tilde character (~), but what a difference!

As an example, let's assume a document in which elements can have one or more class values of driving, flying, nautical, directions, and title. Thus, an element could have a class of driving directions, or perhaps flying directions title. Furthermore, we decide that while all titles should be red, anything (other than a title) relating to flying should be green and anything relating to driving should be purple. These can be declared as follows:

*[class~="flying"] {color: green;}
*[class~="driving"] {color: purple;}
*[class~="title"] {color: red;}

The tilde (~) before the equals sign is what causes these selectors to match any one of the values in the class attribute. Thus, the following rule would match any IMG element with a class of figure and an alt attribute that contains the word Figure -- such as Figure 1, Figure 2, and so on:

IMG[class="figure"][alt~="Figure"] {margin: 5px;}

<IMG SRC="picture13.jpg" CLASS="figure" ALT="Figure 13">

10.2.2.4. Simulating class and ID

Using attribute selectors, you can also simulate class and ID selectors. The following pairs of rules are roughly equivalent:

P[class="directions"] {color: red;}
P.directions {color: red;}

DIV[ID="abc123"] {color: blue;}
DIV#abc123 {color: blue;}

Obviously, the latter rule in each pair is much simpler to type and edit, and you'll probably use such rules in most circumstances.

If you want an exact match, you can use an ordinary attribute selector. Thus, the following rule:

P[class="driving directions"] {color: green;}

will match this markup:

<P CLASS="driving directions" >This is a side note (and it's green).</P>

If you aren't quite so concerned about exact matching, you can string class selectors together. This is a new feature of CSS2, and with this approach, you can match a class attribute with a value of driving directions in this way:

P.driving.directions {color: blue;}

<P CLASS="driving directions">This is a side note (and it's blue this time).
</P>

You could use the same selector to match the value directions for driving, since it contains both driving and directions -- just not in that order.

Again, this probably seems a bit easier to type. So why go to all the effort of using the longer notation of attribute selectors? The reason to use attribute selectors is that the .class and #ID selectors apply only to HTML documents, or to any other document that uses a language that includes the concepts of class and ID. Other languages, such as those based on XML, might not honor these conventions, in which case you'll need to use the attribute selectors instead.

10.2.2.5. Matching hyphenated values

The last type of attribute selector is generally used for language matching, but it does have other uses. Any attribute selector using the symbols |= will match a value that begins with the specified value, given that the value is at the start of a hyphen-separated value. For example:

P[lang|="en"]

This selector will match any paragraph whose lang attribute has the value en, en-US, en-UK, en-Cockney, and so on.

In fact, this can be used to match any value with a similar format. For example, if you have images with ALT text of fig-1, fig-2, fig-3, and so on, and want to match any of them, you could use this selector:

IMG[alt|="fig"]

This is a less likely use for |=, but it's still perfectly valid. Note that the previous rule would not match the value figure or config, as neither of them starts with fig- or is simply fig. The rule would match fig-tree, however.

10.2.3. More Pseudo-Classes and Pseudo-Elements

Even though that might seem like it's more than enough, another area of expansion is in pseudo-class and pseudo-element selectors.

10.2.3.1. :hover

To begin, there is :hover. The basic idea is that the styles in a :hover rule are applied while your mouse pointer is "hovering" over an element. For example, when the pointer is positioned over a link such that clicking the mouse button would cause the browser to follow the link, the pointer is "hovering" over the link. This is in some respects similar to the somewhat famous JavaScript "rollover" trick, where images change when the pointer hovers over them. Thanks to :hover, you can specify a hover style very easily:

A:link {background: white; color: blue;}
A:hover {background: blue; color: white;}

These styles will cause anchors to "reverse" in color when the mouse pointer hovers over them, as illustrated in Figure 10-9.

Figure 10-9. Hover styles

As a matter of fact, the rule for A:hover would be used while the pointer hovers over any anchor, not just a hyperlink. While some other pseudo-classes, like :link and :visited , are constrained to the A element in HTML, the same is not true of :hover. User agents could, in theory, allow the assignment of hover styles to any element, like this:

P:hover {font-weight: bold;}

Therefore, if you want to make sure your hover styles are applied only to your hyperlinks, you would need to use this rule:

A:link:hover {background: blue; color: white;}

The ability to combine pseudo-classes is a new feature of CSS2.

WARNING

Internet Explorer 4.x and 5.x both recognize :hover on anchors only. As of this writing, no other browser will recognize :hover under any circumstances.

10.2.3.2. :focus

Similar to :hover is :focus, which is used to define styles for elements that are "in focus." A form element, for example, has "focus" when it is currently ready to accept input. Therefore, the background of INPUT elements could be set to yellow in order to highlight the currently active input:

INPUT:focus {background: yellow;}

This style would only be applied to an element as long as it was in focus. As soon as the user switched from one input to another, the styles would be removed from the former and applied to the latter. This is a welcome capability, as it reduces the need for using JavaScript to create such effects.

TIP

There are serious issues related to document reflow with :hover and :focus. Take, for example:

A:hover {font-size: 200%;}

In theory, a user agent would have to double the size of anchor text as the pointer hovers over it, which could well cause major redisplay issues. An author could cause similar problems by declaring that TEXTAREA elements should change their size when they are in focus. User agents are not required to reflow the document based on styles assigned to these pseudo-elements, although some may do so -- it remains to be seen.

10.2.3.3. :lang

On a completely different note is the pseudo-class :lang, which is used to apply styles to elements with matching languages. Let's say you want all paragraphs in English to be black on white, and all paragraphs in French to be white on black:

P:lang(en) {color: black; background: white;}
P:lang(fr) {color: white; background: black;}

Of course, user agents aren't likely to figure out element languages on their own. Instead, they have to rely on document markup, such as the lang attribute in HTML:

<P lang="en">This paragraph is in English.</P>
<P lang="fr">Ce paragraphe est en fran&ccedil;ais.</P>

The results are shown in Figure 10-10.

Figure 10-10. Changing styles based on language

Even if this isn't something you're likely to use often, it can still come in very handy. For example, you could define styles to apply to entire documents:

HTML:lang(de) {color: black; background: yellow;}

Thus would all HTML documents marked as German be shown as black text on a yellow background. This marking could be made with the lang attribute, in a META tag in the document's head, or even as a value in the document's HTTP headers. This is somewhat similar to the |= attribute selector discussed in the previous section, but it is a little more general.

10.2.3.4. :first-child

The last of the new pseudo-class selectors we'll cover here is the :first-child selector. This is used to match an element that is the first child of another element. For example, you might want to make the first child of every DIV italicized instead of normal text, as long as that first child is a paragraph (shown in Figure 10-11):

P {color: black;}
P:first-child {font-style: italic;}

<BODY>
<P>This paragraph should be italic.</P>
<P>This paragraph should be normal.</P>
<DIV STYLE="border: 1px dashed gray;">
This text should be normal.
<P>This paragraph should be italic.</P>
<P>This paragraph should be normal.</P>
</DIV>
<DIV STYLE="border: 1px dotted gray;">
<H2>This H2 should be normal.</H2>
<P>This paragraph should be normal.</P>
<P>This paragraph should be normal.</P>
</DIV>
</BODY>

Figure 10-11. Selecting styles for certain first children

The very first paragraph is italicized because it is the first child of the BODY element. Similarly, the first paragraph in the first DIV is italicized because it is the first child of the DIV, even though text preceded it. Only structural elements count for this pseudo-class, so the text before the paragraph doesn't affect the paragraph's status as the first child. However, in the second DIV, the H2 is the first child, so it does not match the rule P:first-child. If the intent is to have the first child of any element be italicized, no matter what element that might be, then you need only leave off the element part of the selector, or use it in conjunction with the universal selector. This will yield the result shown in Figure 10-12:

*:first-child {font-style: italic;}

Figure 10-12. Selecting any first child

Now let's say we want to apply styles to elements that are part of a first child; for example, all emphasized text within a first-child paragraph should be italicized:

P:first-child EM {font-style: italic;}

Of course, this will match any first-child paragraph, no matter its parent element. Suppose instead we want a rule that applies only to paragraphs that are the first children of DIV elements. In that case, we need to use the child selector:

DIV > P:first-child {font-style: italic;}

This translates as, "any paragraph that is a first child, and is a child of a DIV, should be in italics." If we were to leave out the child selector as follows, though:

DIV P:first-child {font-style: italic;}

then the rule would read, "any paragraph that is a first child of any element, and is also a descendant of a DIV, should be in italics." The difference is subtle, but real.

10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes

There are two other new pseudo-elements:

:before
:after

There are also three new pseudo-classes :

:left
:right
:first

The details of these pseudo-elements and pseudo-classes are discussed later in this chapter.

Previous | Home | Next
10. CSS2: A Look Ahead | Book Index | 10.3. Fonts and Text


Fonts and Text (Cascading Style Sheets: The Definitive Guide)

10.3. Fonts and Text

The font property has also picked up a few new values in CSS2:

caption
icon
menu
message-box
small-caption
status-bar

These values give the font property the ability to match the font family, size, weight, and so forth, according to the settings users have specified on their computers. For example, icons on a Macintosh are typically labeled using 9-point Geneva. Assuming that hasn't been changed by the user, any font declaration with a value of icon will result in 9-point Geneva for that text -- as long as the page is viewed using a Macintosh:

SPAN.OScap {font: icon;}  /* will look like icon labels in OS */

On a Windows system, of course, the font would come out different, and under other window managers (like X), it would look different still. The flexibility is certainly interesting, and it allows the author to easily create pages that have an appearance familiar to the user.

10.3.1. New Font Properties

The font section gains two new properties in CSS2. font-size-adjust is intended to help browsers make sure that text will be the intended size, regardless of whether the browser can use the font specified in the style sheet. It is often a problem that authors will call for a font that is not available to the user, and when another font is substituted, it's either too big or too small to read comfortably. This new property addresses that very problem, and should be very useful for authors who want to make sure that their documents are readable no matter what font is substituted.

The other new font property is font-stretch , which allows you to define variable widths for the fonts you use. This is similar to setting a character width in a desktop publishing system. The property uses keywords such as ultra-condensed , wider, and expanded. The changes are handled in a fashion similar to font weights, where a table of condensed and expanded font faces is constructed, and the keywords are assigned to various faces. If no face exists, the user agent may try to scale a font on its own, or it may simply ignore font-stretch altogether. Figure 10-13 shows what a font might look like for each possible value of font-stretch.

Figure 10-13. Stretching fonts

10.3.2. text-shadow

In terms of text, there is one new property, text-shadow, which has the effect you'd probably expect from its name: you can define a drop shadow of a given color for text. You can even set an offset and a blur radius, which means you can get cool fuzzy shadows, or even glow effects, using this property. We should fully expect to see this property horribly abused the instant it's supported by any browser; for a few examples of why, see the simulations in Figure 10-14.

Figure 10-14. Various effects using the text-shadow property

Previous | Home | Next
10.2. CSS2 Selectors | Book Index | 10.4. Generated Content


Generated Content (Cascading Style Sheets: The Definitive Guide)

10.4. Generated Content

Generated content is a new way of adding things to existing content without having to alter the content itself. It's done by using the pseudo-elements :before and :after and the property content. Here's a basic example of how it works:

P:before, P:after {content: "\""; color: gray;}

<P>This is a quote.</P>

The browser will display what's shown in Figure 10-15.

Figure 10-15. Adding generated content

Note that the double-quote mark was escaped out -- that is, preceded by a backslash. This is necessary, since text values for content must be enclosed in double quotes. You could also place images before (or after) content, using something like P:before {content: url(para.gif);} to put a paragraph symbol at the beginning of each paragraph. You can even string multiple values together like this (shown in Figure 10-16):

P:before {content: url(para.gif) " -- ";}

Figure 10-16. Adding an image and text before a paragraph

This would cause each paragraph to be started with a paragraph symbol, a blank space, two dashes, and then another blank space. Note that all of this is considered part of the paragraph and is inlined within it. The spaces appear before and after the double dash because they're included in the string value. If these spaces were omitted, then space would not appear to either side of the dashes.

Let's say, though, that you want to do some real quoting, using real quotation marks -- you know, the curly double quotes that are so hard to specify in HTML and which often don't show up even if you do try to specify them. CSS2 has ways to handle this.

content has some other values you can use:

  • open-quote, which inserts an opening quotation mark

  • close-quote, which inserts a closing quotation mark

  • no-open-quote, which prevent the insertion of an opening quotation mark

  • no-close-quote, which prevent the insertion of an closing quotation mark

So if you wanted your quotations to begin and end with quotation marks, instead of typing in a literal quotation mark, you could let the browser insert "smart quotes" for you.

BLOCKQUOTE:before {content: open-quote;}
BLOCKQUOTE:after {content: close-quote;}

10.4.1. Automatic Numbering

In the same vein, CSS2 also includes properties for automatic numbering. First, you can specify a counter as a value of content. This can be a bit tricky, and it would take too long to run through all the possibilities, but here's an example. Say you wanted the chapters and sections of a document numbered 1, 1.1, 1.2, 1.3, and so on. In addition, you're using H1 for your chapters and H2 for your sections. Here are the declarations you would use:

H1:before {
   content: "Chapter " counter(chapter) ". ";
   counter-increment: chapter;   /* Add 1 to chapter */
   counter-reset: section;       /* Set section to 0 */
 }
 H2:before {
   content: counter(chapter) "." counter(section) " ";
   counter-increment: section;
 }

As we can see from Figure 10-17, the user agent will add the word "Chapter" and a number at the beginning of H1 text. This number is automatically incremented with each H1, due to the declaration counter-increment: chapter;. It also sets the section counter back to zero through counter-reset: section;. Then, for each section heading (H2), the browser uses the chapter number, followed by a period (.) followed by the current section number, which is also automatically incremented.

Figure 10-17. Adding counters to elements

You don't have to increment by one every time, either. You can define any integer as the increment value, including zero and negative numbers. If you want each section to have an even number, as we see in Figure 10-18, then you can declare the following:

H2:before {
   content: "Section " counter(section) ". ";
   counter-increment: section 2; /* Add 2 to chapter */
}

Figure 10-18. Changing a counter's incremental value

You can also keep an element from incrementing a counter by setting its display to none. Of course, that will cause the element to disappear altogether.

10.4.2. Markers

You can do even more by using the value marker for the property display, which enables you to define your own marker styles for any element at all. You're already familiar with markers, as it happens -- the bullets and numbers at the beginning of list items are markers.

Let's say we want to recreate the way unordered lists behave. For the purposes of this example, we'll use the image disc.gif to stand in for the normal bullets. Using marker properties, we would declare:

LI:before {display: marker;
   content: url(disc.gif);
   marker-offset: 1em;
}

This will insert the disc image before each list item, and set it to be offset from the left edge of the LI content by 1em, as shown in Figure 10-19.

Figure 10-19. Styling list markers

Marker properties are not restricted to list items, however. Let's say that, throughout a document, there are a few paragraphs with a class of aside. We wish to call attention to these paragraphs by inserting a small note to the side of each one. Here's one way to do it:

BODY {counter-reset: aside-ctr;}
P {margin-left: 10em;}
P.aside:before {display: marker;
   content: "Aside " counter(aside-ctr) " --";
   counter-increment: aside-ctr;
   text-align: right;
   marker-offset: 1em;
   width: 9.5em;
}

The effect will be something like that seen in Figure 10-20.

Figure 10-20. Automatically numbered asides

This is yet another aspect of CSS2 that, once it's been properly implemented, will allow authors to do quite a bit with their documents.

Previous | Home | Next
10.3. Fonts and Text | Book Index | 10.5. Adapting to the Environment


Adapting to the Environment (Cascading Style Sheets: The Definitive Guide)

10.5. Adapting to the Environment

CSS2 offers the ability to both alter the browser's environment and integrate its look more closely to that of the user's operating system.

10.5.1. Cursors

To achieve the former, we have the cursor property, which lets you declare what shape the browser's cursor will take as it passes over a given element. Want to make a humorous point about download times? Change the cursor to the wait cursor (an hourglass or watch) when the cursor passes over hyperlinks. You can even hook this property up to "cursor files" (which are not defined by the specification), so you could theoretically class your anchors based on where they go and load different icons for each type of link. For example, off-site links could cause the cursor to change into a globe, while links intended to provide help could trigger a question-mark cursor.

10.5.2. Colors

In order to let web pages more closely match the user's desktop environment, there are a whole list of new color keywords like button-highlight, three-d-shadow, and gray-text. These are all intended to use the colors of the user's operating system. In all, there are 27 of these new color keywords. I won't list them all out here, but they're listed in Table 10-1, found at the end of this chapter.

10.5.3. Outlines

While you're moving your cursor around, you might want to show where the focus is set. For example, it might be nice to define a button so that it gets a red box around it when the cursor moves over it. Well, there a number of outline properties, including outline, outline-color, outline-style, and outline-width. To use the example of a red box, you might declare:

IMG.button:hover {outline: solid red 1px;}

This should have the effect described. The outline styles could also be used to set a visible outline for regions in a client-side image map.

Previous | Home | Next
10.4. Generated Content | Book Index | 10.6. Borders


Borders (Cascading Style Sheets: The Definitive Guide)

10.6. Borders

In CSS1, there are quite a few properties devoted to setting borders around element boxes, such as border-top-width and border-color, not to mention border itself. CSS2 adds a even more border properties, most of which are aimed at giving the author even more specific control of the borders. Before, it was difficult to set a specific color or style for a given side of the border, except through properties like border-left, and that could require more than one value. The new CSS2 properties address this, and their names are pretty self-explanatory:

border-top-color
border-right-color
border-bottom-color
border-left-color
border-top-style
border-right-style
border-bottom-style
border-left-style
Previous | Home | Next
10.5. Adapting to the Environment | Book Index | 10.7. Tables


Tables (Cascading Style Sheets: The Definitive Guide)

10.7. Tables

Perhaps as a result of a generic need to be able to describe table layout -- something CSS1 lacks -- CSS2 includes a handful of features that apply directly to tables and table cells. First, there are 10 new table-related values for display:

table
inline-table
table-column-group
table-column
table-row-group
table-row
table-cell
table-caption
table-header-group
table-footer-group

While the effects of most of these are obvious from their names, at least two may not be familiar to you. table-header-group and table-footer-group are used to mark the header and footer of a table. These are displayed, respectively, above or below all the rows of the table, but not outside of the table's caption.

Another interesting effect is that you can align text on a character by using the text-align property. For example, if you wanted to line up a column of figures on a decimal point, you might declare:

TD { text-align: "." }

As long as a set of cells are grouped into a column, their content will be aligned so that the periods all line up along a vertical axis.

Far from relying on existing properties, CSS2 provides a whole array of brand-new properties in the table section. Here are a few of them:

  • border-spacing, which influences the placement of borders around cells

  • border-collapse, which can be used to influence how the borders of various table elements interact

  • table-layout, which tells the browser whether or not it can resize the table as necessary

There are also properties describing how visibility and vertical-align are applied to tables. There is also a caption-side property, which functions exactly the same as the ALIGN attribute on the <CAPTION> tag, and the property speak-header-cell, which controls how header cells are handled by speech-generating browsers (more on that later).

Previous | Home | Next
10.6. Borders | Book Index | 10.8. Media Types and @-rules


Media Types and @-rules (Cascading Style Sheets: The Definitive Guide)

10.8. Media Types and @-rules

Don't get too excited yet. We aren't talking about media types in the sense of things like audio and video authoring. Well, not exactly, anyway. We're talking about creating rules for presentation within various kinds of media. The defined types of media thus far are:

  • screen, as in a computer screen

  • print, for things like printouts and print-preview displays

  • projection, for projected presentations such as slide shows

  • braille and embossed, for tactile feedback devices and printers

  • aural, for speech generators

  • tv, for television-type displays (think WebTV)

  • tty, for fixed-width character displays

  • handheld , for palmtop computers

  • the ubiquitous all

These are all values of @media, one of several new @-rules. Some others are:

  • @font-face, which is used in the definition of a font by manual means

  • @import, which has more power than under CSS1 by allowing authors to associate media types with @import statements; for example, @import (print.css) print;

  • @page, which allows you to define the styles of a page when using paged-media style sheets; for example, @page {size: 8.5in 11in;}

10.8.1. Paged Media

Since I just brought up paged media, I should probably mention that there are some new properties that apply to such media. Five of them apply to page breaks and where they appear:

page-break-before
page-break-after
page-break-inside
orphans
widows

The first two are used to control whether a page break should appear before or after a given element, and the latter two are common desktop publishing terms for the minimum number of lines that can appear at the end or beginning of a page. They mean the same thing in CSS2 as they do in desktop publishing.

page-break-inside (first proposed by this author, as it happens) is used to define whether or not page breaks should be placed inside a given element. For example, you might not want unordered lists to have page breaks inside them. You would then declare UL {page-break-inside: avoid;}. The rendering agent (your printer, for example) would avoid breaking unordered lists whenever possible.

There is also size, which is simply used to define whether a page should be printed in landscape or portrait mode and the length of each axis. If you plan to print your page to a professional printing system, you might want to use marks, which can apply either cross or crop marks to your page. Thus you might declare:

@page {size: 8.5in 11in; margin: 0.5in; marks: cross;}

This will set the pages to be U.S. letter-standard, 8.5 inches wide by 11 inches tall, and place cross marks in the corners of each page.

In addition, there are the new pseudo-classes :left , :right, and :first, all of which are applied only to the @page rule. Thus, you could set different margins for left and right pages in double-sided printing:

@page:left {margin-left: 0.75in; margin-right: 1in;}
@page:right{margin-left: 1in; margin-right: 0.75in;}

The :first selector applies only to the first page of a document, so that you could give it a larger top margin or a bigger font size:

@page:first {margin-top: 2in; font-size: 150%;}

10.8.2. The Spoken Word

To round things out, we'll cover some of the properties in the area of aural style sheets. These are properties that help define how a speaking browser will actually speak the page. This may not be important to many people, but for the visually impaired, these properties are a necessity.

First off, there is voice-family, which is much the same as font-family in its structure: the author can define both a specific voice and a generic voice family. There are several properties controlling the speed at which the page is read (speech-rate), as well as properties for the pitch , pitch-range, stress, richness, and volume of a given voice. There are also properties that let you control how acronyms, punctuation, dates, numerals, and time are spoken. There are ways to specify audio cues, which can be played before, during, or after a given element (such as a hyperlink), ways to insert pauses before or after elements, and even the ability to control the apparent position in space from which a sound comes via the properties azimuth and elevation. With these last two properties, you could define a style sheet where the text is read by a voice "in front of" the user, whereas background music comes from "behind" and audio cues come from "above" the user!

Previous | Home | Next
10.7. Tables | Book Index | 10.9. Summary


Summary (Cascading Style Sheets: The Definitive Guide)

10.9. Summary

CSS2 obviously covers a lot of ground, and exploring it in detail would probably have added at least four more chapters to this book, not to mention dramatically bulking up some of the chapters that already exist. However, since so little of CSS2 has actually been implemented at this writing, we felt it was better to provide an overview that was light on details. After all, the specification may change as implementations reveal flaws, and we'd rather stick to describing things that are fairly reliable.

For quick reference purposes, Table 10-1 gives a quick summary of everything new in CSS2.

Table 10-1. New Properties in CSS2

New Properties in CSS2

text-shadow
font-size-
adjust
font-stretch
unicode-bidi
cursor
outline
outline-color
outline-style
outline-width
content
quotes
counter-reset
counter-increment
marker-offset
border-top-color
border-right-color
border-bottom-color
border-left-color
border-top-style
border-right-style
border-bottom-style
border-left-style

position
direction
top
right
bottom
left
z-index
min-width
max-width
min-height
max-height
overflow
clip
visibility
page-break-before
page-break-after
page-break-inside
orphans
widows
size
marks

border-collapse
border-spacing
table-layout

border-spacing
empty-cells
caption-side
speak-header-cell

volume
speak
pause-before
pause-after
pause
cue-before
cue-after
cue
play-during
azimuth
elevation
speech-rate
voice-family
pitch
pitch-range
stress
richness
speak-punctuation
speak-rate
speak-numeral
speak-time

New Pseudo-Classes and Pseudo-Elements in CSS2

:hover

:left

:right
:first

:before
:after

New @-rules in CSS2

@media

@font-face

@page

Table 10-2. New Values in CSS2

All Properties

inherit

The display Property

run-in
compact
marker
table

inline-table
table-row-group
table-column-group
table-header-group

table-footer-group
table-row
table-cell
table-caption

The font Property

caption
icon
menu

message-box
small-caption
status-bar

The list-style-type Property

decimal-leading-zero
hebrew
georgian
armenian

cjk-ideographic
hiragana
katakana

hiragana-iroha
katakana-iroha
lower-greek

The color values

active-border
active-caption
app-workspace
background
button-face
button-highlight
button-text
caption-text
gray-text

highlight
highlight-text
inactive-border
inactive-caption
info-background
info-text
menu
menu-text
scrollbar

three-d-dark-shadow
three-d-face
three-d-highlight
three-d-lightshadow
three-d-shadow
window
window-frame
window-text

The vertical-align Property

length

Previous | Home | Next
10.8. Media Types and @-rules | Book Index | 11. CSS in Action


CSS in Action (Cascading Style Sheets: The Definitive Guide)

Chapter 11. CSS in Action

Contents:

Conversion Projects
Tips & Tricks

No instructional work would be complete without a chapter that explores ways to put all that theoretical knowledge into practice, and that's just what we'll be doing here. After we look at three different page (re)design projects using CSS, we'll go through a grab bag of tricks and tips that might help you get around some of your biggest CSS frustrations.

11.1. Conversion Projects

Since we've covered the entirety of CSS1, let's exercise that newfound knowledge with three conversion projects. In each of these cases -- two of them web pages and one a print magazine article -- we'll break down the page into its components and determine the best way to recreate the same effects using CSS1 and structural HTML.

11.1.1. Case 1: Consistent Look and Feel

In this project, we will create an external style sheet that will define a basic, consistent look and feel for an entire corporate web site. Our main goal is to create styles that are as simple as possible, using few (if any) classes or IDs. For the purposes of the project, we will assume there is a standard writing guide for employees of the company: document titles are in H1, subheadings in H2, every page uses standard graphics at the top, and so forth.

Marketing has decreed that all pages shall use a white background with a thin dark green stripe running down the left edge, black body text in a serif font, and hyperlinks that are a dark green when unvisited and dark gray when visited. Furthermore, document titles must be underlined and use a color similar to the standard navigation buttons found at the top of every page, which are gray text against a dark green background -- the same dark green you are to use for unvisited hyperlinks and the left edge of the browser window. All headings, including document titles, are to use a sans serif font. The rest is left to our discretion.

A lot of this is fairly straightforward. For the document BODY, we write:

BODY {font-family: Times,serif; color: black;
  background: white url(pix/grstripe.gif) repeat-y top left;}

For the anchors, among other things, we need to know the color value of the green being used. The art department reports that this particular shade of green uses no red or blue, and just 40% green; someone there has had the foresight to use web-safe colors. (Remember, this is a hypothetical situation.) We want to do the same for the visited links, so we write:

A:link {color: rgb(0%,40%,0%);}
A:visited {color: rgb(20%,20%,20%);}

This gives us our dark green and dark gray hyperlinks.

Now for headings. They're all supposed to be in a sans serif font, but H1s have some special rules. In order to cover all the bases in a compact manner, we declare:

H1, H2, H3, H4, H5, H6 {font-family: Verdana,sans-serif;}
H1 {color: rgb(0%,40%,0%); border-bottom: thin solid; width: 100%;}

With the second declaration, not only do we use the standard color, but we enhance the idea of "underlining" by setting a bottom border that will extend from the left edge of the text all the way out to the right edge of the browser window. This line will also inherit the green color of the text and so really punch up the fact that the title and navigation buttons are separate from the rest of the page.

Now that this is all done, we need to link the style sheet into the site's pages. The above declarations are collected into a single file, which is saved to a file with the URL http://www.mycomp.com/style/site.css. Then all of the site's pages are modified so that their HEAD element contains the following:

<LINK REL="stylesheet" TYPE="text/css"
  HREF="http://www.mycomp.com/style/site.css">

This ensures that all documents -- even those without their own style declarations -- will use the site's overall style sheet. Figure 11-1 shows one example of how the pages will appear.

Figure 11-1. Final results

11.1.2. Case 2: Library Catalog System Interface

The library of Wattswith University has been using a web-based library catalog system for the last few years, and their web developers have always tried to keep up with the times. Now that style sheets are gaining currency, the folks in the lab are itching to convert the library system's interface over to use them.

However, the current design has been so popular that a mandate has been handed down from the management: Thou Shalt Not Disrupt The Look And Feel. Annoyed but undaunted, our intrepid websmiths forge ahead. Their mission is to take what's there, then rip it apart and put it all back together again without anyone noticing the difference. (For the purposes of this project, the part of the webmasters will be played by you, the reader.)

The most complicated screen in the system is the record display screen. Composed of three areas -- the system navigation bar, a sidebar with current options, and the record display itself -- it's structured around a table, with each area being enclosed in a table cell. In addition, there is a fourth table cell between the sidebar and the main part of the page, in order to create some blank space. There are also a lot of FONT tags and a few tables imbedded within the main table that determines the page's layout. The skeleton of the page is expressed as a table, with a border and cell padding added to make the structure more clear:

<TABLE CELLSPACING=0 BORDER CELLPADDING="10">
<TR>
<TD ROWSPAN=2>sidebar</TD>
<TD COLSPAN=2>navigation bar</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD>main display</TD>
</TR>
</TABLE>

This has the appearance shown in Figure 11-2. Obviously, there is a lot more in the cells than what's listed above. The actual content was replaced by labels for the sake of brevity and clarity.

Figure 11-2. A simplified page structure

In order to keep the changes fairly simple, and to avoid stealing a trick I plan to use later in this chapter, for this project we're still going to use a table for the page's overall layout, but we're going to modify it slightly. Instead of four cells, it will only have two: the sidebar and the rest of the screen. The navigation bar will become part of the main display, and the blank "spacing" table cell will be eliminated entirely. This will leave us with the following:

<TABLE CELLSPACING=0>
<TR>
<TD>sidebar</TD>
<TD>navigation bar and main display</TD>
</TR>
</TABLE>

We'll turn to the sidebar first. Each set of links is grouped into a list under a main heading; these headings look different from the links. Each of the sections uses the following tags:

<P>
<FONT FACE="Verdana" COLOR="white" size="+1"><B><U>Heading</U></B></FONT>
<BR>
<FONT FACE="Verdana" SIZE="-1">
<A HREF="link1.html"><FONT COLOR="yellow">Link</FONT></A><BR>
<A HREF="link2.html"><FONT COLOR="yellow">Link</FONT></A><BR>
<A HREF="link3.html"><FONT COLOR="yellow">Link</FONT></A><BR>
</FONT>
</P>

Whew! Already we have our work cut out for us.

Probably the easiest thing to do is to assign a class to the sidebar's table cell, so that we can specify certain appearances that are specific to the sidebar. This leads us to enter the tags <TD CLASS="sidebar"> and </TD> for the beginning and end of the cell, respectively.

Now we have the sidebar enclosed in its very own classed table cell. Since the background color for the sidebar is green, we can create our first style:

.sidebar {background: green;}

Moving on with the sidebar, we want to get rid of all the FONT tags, and hopefully the other style tags as well (like <B> and <U>). Since the entirety of the sidebar uses the font Verdana, we can add that to our style sheet:

.sidebar {background: green; font-family: Verdana,sans-serif;}

We use font-family here because we don't want to specify a font-size for the sidebar, so we can't use the shorthand font.

Now we could put headings and lists of links in separate paragraphs and then mess around with the padding, margin, and line heights of these paragraphs until they match the current look. However, it's probably easier to simply leave the paragraph and line break tags right where they are and simply SPAN the headings:

<SPAN CLASS="head">Heading</SPAN><BR>

WARNING

The danger in using SPAN instead of logical elements like headings is that pre-CSS browsers won't recognize the SPAN element. Also, indexing robots won't be able to make any sense of SPAN as a piece of document structure. On the other hand, using SPAN avoids having to cope with a number of bugs in early CSS implementations, so I've chosen to use SPAN in this case study instead of something a little more structured.

Having done this, we need a style declaration that will recreate the effects of all the tags we just deleted. This should just about do the trick:

.sidebar .head {font-size: larger; font-weight: bold;
  text-decoration: underline; color: white;}

By using the contextual selector .sidebar .head, we ensure only those .heads inside a .sidebar will receive these styles. Since the entire sidebar is already set to use Verdana, the headings will inherit and use it. As for the links, they need to be yellow, so we declare:

.sidebar A:link {color: yellow;}
.sidebar A:visited {color: yellow;}
.sidebar A:active {color: yellow;}

This will keep the links yellow no matter what, just as they are now. Figure 11-3 shows us the new, improved, FONT-tag-free sidebar which results from the preceding styles, and this markup:

<TD CLASS="sidebar"><P>
<SPAN CLASS="head">Heading</SPAN>
<BR>
<A HREF="link1.html">Link</A><BR>
<A HREF="link2.html">Link</A><BR>
<A HREF="link3.html">Link</A><BR>
</P>
</TD>

Figure 11-3. The well-styled sidebar

That was pretty easy, eh? Now let's tackle the navigation bar at the top of the main part of the page. This area also has a green background, and within it are a few images. Again, we use a DIV tag with a specific class, like this:

<DIV CLASS="navbar">
icons
</DIV>

Now all we need is the style .navbar {background: green;} and we're set. Or are we?

Not quite, no. In the old page, the navigation bar was separated slightly from the main display, but ran right up against the sidebar, thereby creating a sort of inverted green "L" shape. We want to make sure that this is still the case in the new setup. This is most easily accomplished by making sure that the division has no padding or border set, and that it is guaranteed to be as wide as the table cell in which it's found. Plus, we want the bar to have a little bit of blank space after it, so we need a margin of zero on everything but the bottom, where we just want a few pixels. So we add the following:

.navbar {background: green; padding: 0; margin: 0 0 10px 0; width: 100%;}

Now everything should be set for the navigation bar, as we can see in Figure 11-4. All we need to do now is make sure the main display has some blank space to its left, and we're done.

Figure 11-4. The greening of the navigational bar

No doubt you already know how this will work. We create another division, this one classed as main and enclosing everything in the main part of the page that isn't the navigation bar. Then we declare:

.main {margin-left: 1.5em;}

It seems like a reasonable amount of space, so we go with it. We check the result in Figure 11-5, which is based around this skeleton markup:

<TABLE CELLPADDING="0" CELLSPACING="0" BORDER>
<TR VALIGN="top">
<TD CLASS="sidebar">
(sidebar)
</TD>
<TD>
<DIV CLASS="navbar">
(icons)
</DIV>
<DIV CLASS="main">
(content)
</DIV>
</TR>
</TABLE>

Figure 11-5. Final results

There are a few subtle differences from the original layout, but overall, no significant changes in the document's presentation. We can be quite pleased with the results -- and better still, management will never notice the difference.

The advantages of the new design are twofold: the ability to change colors and fonts by editing a small number of styles instead of a bunch of FONT tags and a reduction in size of the HTML source itself. In a case like this, a page's size can shrink by several kilobytes -- and in cases where a heavily FONTed page is converted to use CSS instead, the document's file size can decrease by as much as 50% !

11.1.3. Case 3: Putting a Magazine Article Online

Finally, we turn to the situation faced by the editorial offices of Meerkat Monthly. This specialist magazine examines the issues of raising a suricate in a domestic environment, away from others of its kind, and also provides general information about the animals themselves. In an effort to boost sales, the editors want to put a few articles online each month.

TIP

This case study ends up using quite a few advanced styles and, as such, may be beyond the capabilities of most older user agents. It's still very instructive, even on a theoretical level, and it should work in a browser that fully and correctly supports CSS1. Just be prepared for one or more errors if you try this in a web browser. You may wish to follow along one step at a time, reloading your page at each step, in order to know when things go wrong -- assuming they do.

For their trial run, they decide to use a one-page article that talks about suricates in general terms, examining their life in the wild and their general appeal to humans. The article appears in the magazine as shown in Figure 11-6.

Figure 11-6. The original print document

Obviously, the folks at Meerkat Monthly have been having some fun with their desktop publishing program. It won't be easy to get everything just the way it is on the page, but we'll see what we can do.

First, let's take apart the page's layout and determine what to eliminate. Since there are no pages on the Web, we can drop the page number. Also, the outer margins can be modified to suit our needs, since we don't have to worry about leaving extra space for the staples and so forth. However, the editors want to keep the two-column layout, the picture placement, and the general appearance of the text, so we'll have to bear that in mind.

First, let's create the two columns. Remember, we don't want to use tables or proprietary tags such as MULTICOL, so we'll have to resort to something else. In this case, since each column has a number of paragraphs, we can use a DIV tag -- or, to be more precise, two of them. All we need to do is split the article text roughly in half, and wrap a DIV around each half. (By article text, we mean the actual text of the article, excluding the title.) Let's use the place where the column ends on the printed page as our guide to end the first division and start the second:

blah blah blah.
</P>
</DIV>
<DIV>
<P>
Blah blah blah

Once that's been done, we modify the first DIV with the following style:

<DIV STYLE="float: left; width: 40%; margin-left: 10%; margin-right: 5%;">

This causes the entire set of text in the first division to become a floating block on the left margin and the following text to flow past it on the right. In other words, a two-column layout! This first column is declared to be 40% as wide as the browser window, have a left margin 10% as wide as the browser window, and a right margin that is 5% of the window's width. This will cause the second column to automatically calculate its overall width as 45% (40 + 10 + 5 = 55, and 100 - 55 is 45).

Thus, the two columns will be of not-quite-equal width, as we can see in Figure 11-7, but that's the effect we want.

Figure 11-7. Two columns of text

We may eventually have to adjust the point at which the divisions are placed, but for the moment, let's leave things as they are.

Actually, there is one more thing we should add. Here's the markup:

<DIV STYLE="float: right; width: 45%;">

This is the DIV for the second column. Why have we floated it as well? Assume for a moment that the second column is longer than the first. Without the float for the second column, we'd see a situation like that depicted in Figure 11-8.

Figure 11-8. Why we float twice

This is entirely consistent with the rules for floating, but it obviously isn't what we want. By floating the second column, we avoid this possibility altogether, and the columns stay straight.

Now let's place the pictures. There are two of them, both in the first column, so that makes things a lot easier. Obviously, they're left-floating images. The interesting part will be recreating the way they hang out into the blank space to the left of the column.

If we just give these pictures the style float: left, they'll be completely contained within the column. However, since the first column has a left margin, all we have to do is give images a negative margin-left, like this:

IMG {float: left; margin-left: -2.5em;}

There is a potential danger here. Our floated images have a left margin of 2.5em, but if you'll recall, the column itself has a left margin of 10%. In a sufficiently narrow browser window, the left margin of the column could end up being much less than 2.5em. If that happens, then the images could get pushed far enough to the left that they go partway "offscreen." Mixing units like this, even indirectly, can be risky. A better choice might be this:

IMG{float: left; margin-left: -10%;}

This will allow the images' left margins to scale along with the environment.

Since we only have two images, and both of them require the same effect, this declaration will work just fine. Figure 11-9 reveals the result.

Figure 11-9. Floating images

As you can see, the first column is now quite a bit longer than the second. However, since we haven't done much of anything to the second column, let's leave things as they are for the moment.

An offset block of text showing a quotation in a larger size is usually called a "pull quote." We have one near the middle of the second column, so let's decide how that will be handled. First, the text is a bit larger than the font size of the main article text, and it's in a sans serif font. Also, it has those nice lines at the top and bottom of the pull quote's box, both of which stretch slightly beyond the right and left boundaries of the text itself. The background is a light gray, and there is a bit of space around the box to separate it from the main body text. The pull quote's text is also centered, the box is about half the width of the column, and it's obviously floating to the right.

Here's what we come up with:

.pullq {font: 150% Helvetica,Arial,sans-serif; text-align: center;
  border-top: medium black solid; border-bottom: thin black solid;
  margin: 1em; padding: 0.5em; background: #CCCCCC;
  width: 50%; float: right;}

<P CLASS="pullq">
"The meerkat is a fun, smart, but often exasperating fellow."
</P>

Since we've implemented this quote as a paragraph, if we simply float it in place, the top of the pull quote's box will line up with the beginning of the paragraph that comes after the quote in the HTML document. We decide that's okay and end up with what's shown in Figure 11-10.

Figure 11-10. A pull quote

Now the document is a bit more even. Adjusting the placement of the DIVs will make it as even as possible, but since we still aren't quite finished, let's put that off yet again.

At the end of the article is a block of text that says a few words about the author of the piece. This is in a smaller text size, italicized, and separated from the rest of the article by a small space and a thin line. We could put a horizontal rule in for the line, but let's stick to CSS1 whenever possible. The following should do quite nicely, as illustrated in Figure 11-11:

.author {font: italic x-small Times,serif; border-top: thin black solid;
  padding-top: 0.25em; margin-top: 0.5em;}

Figure 11-11. Styling the authorial note

Before we create the title, let's clean up a few last details in the article's body. The overall article has fully justified text in a serif font. We decide that it should be easily readable, so we go with Times. We also want the article to have black text on a white background, thereby mimicking the appearance of printed text. Each paragraph has its first line indented about half an inch, but we'll reduce that to a quarter-inch for the web version. We can handle this with the following:

BODY {color: black; background: white;}
P {font-family: Times,serif; text-align: justify; text-indent: 0.25in;}

Figure 11-12 shows the appearance of a paragraph.

Figure 11-12. Paragraph indenting

The last rule will give us about the correct amount of indenting for each paragraph, no matter the resolution to which the user's monitor has been set. However, the very first letter of the first paragraph of the article is a "drop cap," which means that it's larger and extends down from the first line, with subsequent lines flowing past it. This first paragraph has no indentation of the first line, so we'll have to counteract it somehow. This leads us to the following:

.initial {text-indent: 0;}
P.initial:first-letter {font-size: 200%; float: left;}

These rules will, obviously, require us to add the attribute class="initial" to the first paragraph tag. The declaration of text-indent: 0; overrides previously declared values, as long as this block of declarations comes later in the style sheet. They're also more specific than the other styles we're using, due to the presence of a class selector, so that also helps these rules win out. The values for :first-letter will cause the first letter of the initial paragraph to be twice normal size, and floated left, as shown in Figure 11-13.

TIP

Under CSS2, the same effect can be achieved without the use of a class on the first paragraph. This is done by using new CSS2 selectors, such as the adjacent-sibling selector:

 H1 + P {text-indent: 0;}

In a CSS2-aware user agent, this will set a text-indent of 0 for any paragraph which immediately follows any H1 element. However, since the paragraph here is the child of a DIV, it doesn't immediately follow the H1. Therefore, we would need to add a child selector and a first-child pseudo-class:

H1 + DIV > P:first-child {text-indent: 0;}

This will match any paragraph that is the first child of a DIV that immediately follows an H1 element. See Chapter 10, "CSS2: A Look Ahead", CSS2: A Look Ahead, for more details.

Figure 11-13. First-letter styling

Having set the article's body to the appearance we want, all that remains is to adjust the placement of the divisions so that the columns are of roughly equal length. We can do this now because regardless of what we do to the title, the columns will be the same length. So we move the divisions appropriately. Note that we may not get an exact balance because of the need to break the divisions between paragraphs. Whether the longer column should be the first or the second is up to you.

With all that done, all that remains is for us to recreate the document's title. Looking at it closely in Figure 11-14, we see that this is an interesting specimen: it's right-justified and yet not aligned with the right margin of the document; the letters are spaced rather far apart; the text is small caps, and yet the first letter is much bigger than the others; finally, the entire thing is set in a large sans serif font.

Figure 11-14. The original document's title

Rather than dream up a new class for the title, let's just put it into an H1 and set styles on that element. At a rough visual guess, the text is about three times larger than the body text, and the space between each letter is about the size of one of the letters. Starting with the easy stuff, here's what we have for the title H1:

H1 {font: 300% Helvetica,sans-serif; font-variant: small-caps;
  letter-spacing: 0.75em;}

As was already observed, the title is right-justified but isn't up against the right margin. The easiest thing to do is insert some padding to the H1's right side, which leads us to the following declarations:

H1 {font: 300% Helvetica,sans-serif; font-variant: small-caps;
  letter-spacing: 0.75em; text-align: right; padding-right: 1em;}

Figure 11-15 shows us our progress so far.

Figure 11-15. The styled title: a work in progress

We're getting close; in fact, the only thing left is that first letter of the title. We can easily handle it with a :first-letter selector, so let's do that. The "S" is about twice the size of the "K" in "Kats," so we set the following:

H1 {font: 300% Helvetica,sans-serif; font-variant: small-caps;
  letter-spacing: 0.75em; text-align: right; padding-right: 1em;
  line-height: 1em;}
H1:first-letter {font-size: 200%; line-height: 1px; vertical-align: -100%;}

Consulting Figure 11-16, we see that it looks about right!

Figure 11-16. The final styled title

The line-height and vertical-align values deserve a small discussion. What's been done is that the inline box of the "S" has been reduced so that it's only one pixel tall. (We could have used almost any length value here, so long as it was a very small amount.) This inline box, as we saw in Chapter 8, "Visual Formatting", is centered vertically inside the "S" itself. Then the baseline of the "S" is lowered so that it's as far down as the baseline of the next line of text (since a -100% vertical alignment will lower the baseline the same distance as the font-size of the parent element). Ordinarily, this would make the first line box correspondingly taller, but since we're declared line-height: 1px for the "S", the actual inline box is so small that it has almost no effect on the height of the line box. While the title shown in Figure 11-16 may not precisely match the title in Figure 11-14, they're very close to each other.

So, put together, here's the entire style sheet:

BODY {color: black; background: white;}
P {font-family: Times,serif; text-align: justify; text-indent: 6em;}
IMG{float: left; margin: 0.5em 0.5em 0.5em -10%;}
.pullq {font: 200% Helvetica,Arial,sans-serif; text-align: center;
  border-top: medium black solid; border-bottom: thin black solid;
  margin: 1em; padding: 0.5em; background: #CCCCCC;
  width: 50%; float: right;}
.author {font: italic x-small Times,serif; border-top: thin black solid;
  padding-top: 0.25em; margin-top: 0.5em;}
.initial {text-indent: 0;}
P.initial:first-letter {font-size: 200%; float: left;}
H1 {font: 300% Helvetica,sans-serif; font-variant: small-caps;
  letter-spacing: 0.75em; text-align: right; padding-right: 1em;
  line-height: 1em;}
H1:first-letter {font-size: 200%; line-height: 1px;vertical-align: -100%;}

Figure 11-17 shows a side-by-side comparison of the original article and its online cousin.

Figure 11-17. A comparison

Furthermore, if we view the web page using a browser without style sheets, it will come out looking like Figure 11-18. It may not be as pretty, but it's still quite readable.

Figure 11-18. The styled page without any styles

11.1.3.1. Cleaning up

There are a few places where the CSS version isn't quite the same as the printed version, as a detailed study of Figure 11-17 reveals, and of course the creation of the columns is a bit of a hack. How can these be addressed?

The title of the article is the most obvious visual difference between the two layouts. The printed version of the article has a title which is stretched out, so to speak. This could be easily recreated using the CSS2 property font-stretch, but sadly, this property was not supported at the time of this writing. See Chapter 10, "CSS2: A Look Ahead" for a look at font-stretch.

The opening dropped capital "T" also doesn't seem to quite match up. This might also be addressed using font-stretch, or perhaps by giving the letter a font-weight of 900. However, it might be best to leave things as they are, since this is a small effect and not too important.

How about those columns, though? In order to get these columns to display properly, we were forced to enclose each column in its own DIV. While this approach is certainly preferable to using tables, it still requires us to do some small violence to the structure of the page -- and trying to create visual effects by adding elements is never a good idea. It would be far better to simply set the BODY contents to be flowed into two columns. Unfortunately, CSS2 contains no provisions for columns or column flow. There have been discussions in the CSS community about adding such behaviors to CSS, and perhaps they will be added in the future. For now, we're forced to do things like add DIVs to represent columns.

This assumes that you wish to create columns at all, of course. We went to a great deal of effort to get those columns, but was it really worth it? Multiple-column layouts can be very difficult to read on a monitor, since the user may be forced to scroll downward to read the first column, then back up to the top of the second, then down again. Adding the columns was an interesting theoretical exercise, but it may not be the best approach for the Web.

Previous | Home | Next
10.9. Summary | Book Index | 11.2. Tips & Tricks


Tips & Tricks (Cascading Style Sheets: The Definitive Guide)

11.2. Tips & Tricks

Here we present a handful of quick tips and workarounds which might save you a lot of time and hassles. Some are related to ways of making buggy browsers behave, while others describe ways to write completely correct CSS and HTML and still mangle the document display, simply by not thinking about the consequences of one's actions.

11.2.1. Making Styles Work

This is an easy one. If you want Navigator 4 to use CSS at all, you have to go to the preferences dialog and check the boxes for both style sheets and JavaScript. If JavaScript is disabled, Navigator will not apply styles. Why? In the early days of style sheets, there were a number of proposals for styling. One of these was JavaScript Style Sheets ( JSSS), an interesting hybrid of early CSS and JavaScript. It probably won't surprise you to learn that JSSS was promoted by Netscape. Although JSSS was never adopted, Navigator 4's rendering engine uses it, and so CSS doesn't work without JavaScript.

11.2.2. Hiding Styles with @import

The fact that Navigator 4.x understands LINK but doesn't recognize @import statements can be turned to your advantage. Since any styles you place in an external style sheet must be brought in via either LINK or @import, you can group all of the styles that will cause Navigator problems and put them into a style sheet that you then import. Since Navigator will refuse to import this style sheet, it won't have to deal with styles it can't deal with. This simple trick can save you a lot of headaches, but there is one drawback: a very few early versions of Navigator 4.x could crash when trying to process an @import statement. This was quickly fixed, and very few of these versions are still in use.

11.2.3. Fighting Margin Problems with @import

If you want to use margin rules which you know won't work in Navigator, use the previous trick and the cascade to your advantage. Let's say you want a document where a paragraph has no vertical space between its top and the bottom of a preceding H1 element, as illustrated in Figure 11-19.

Figure 11-19. Closing up the usual gap

In Explorer, this can be done with these rules:

H1 {margin-bottom: 0;}
P {margin-top: 0;}

For Navigator, though, you have to set the top margin of the paragraph to be -1em to get the same effect, which will hopelessly mangle Explorer's display of the document. How to resolve the conflict?

First, place all your Navigator-unfriendly rules into an external style sheet and hook that up using an @import statement. Then place all of your Navigator-friendly margin rules into another external style sheet and LINK it in. ( Just make sure your LINK comes before the @import statement.) You'll end up with something like this:

/* file 'link-styles.css' */        /* file 'import-styles.css' */
H1 {margin-bottom: 0;}              H1 {margin-bottom: 0;}
P {margin-top: -1em;}               P {margin-top: 0;}

<LINK REL="stylesheet" TYPE="text/css" HREF="link-styles.css"
   TITLE="Linked">
<STYLE TYPE="text/css">
@import url(import-styles.css);
</STYLE>

Because Explorer will read in both style sheets, it will use the cascade to determine which rules should actually be applied. If you've ordered things correctly, and the imported style sheet comes after the linked style sheet, its rules will win out over the rules in the linked style sheet.

Therefore, Explorer will use the styles from import-styles.css. Navigator, on the other hand, won't even read the styles that are supposed to be imported, so it will only have the styles from link-styles.css available and will therefore use them.

11.2.4. Styling Common Elements

If you have documents in which there is a certain block of common markup -- say, a table that holds links to the main pages of your site -- it's easy to style them without having to change the HTML markup on each page.

Let's assume we have a table of links like this one:

<TABLE BORDER CELLPADDING="4">
<TR>
<TD><A HREF="home.html">Home Page</A></TD>
<TD><A HREF="read.html">My Writing</A></TD>
<TD><A HREF="fun.html">Fun Stuff!</A></TD>
<TD><A HREF="links.html">Other Links</A></TD>
<TD><A HREF="write.html">Contact Me</A></TD>
</TR>
</TABLE>

However, on each page, we want the cell containing the current page to be highlighted in some fashion. This is really easy. All we have to do is add a class to each table cell, like this:

<TABLE border cellpadding="4">
<TR>
<TD CLASS="home"><A HREF="home.html">Home Page</A></TD>
<TD CLASS="read"><A HREF="read.html">My Writing</A></TD>
<TD CLASS="fun"><A HREF="fun.html">Fun Stuff!</A></TD>
<TD CLASS="links"><A HREF="links.html">Other Links</A></TD>
<TD CLASS="write"><A HREF="write.html">Contact Me</A></TD>
</TR>
</TABLE>

Then, on each page, we simply write an appropriate style. If the highlighted link should have a yellow background, then on the "Other Links" page, we would add this to the style sheet, leading to the result depicted in Figure 11-20:

TD.links {background: yellow;}

Figure 11-20. Highlighting the current page

Similarly, on the site's home page, we would find this style at the top of the page:

TD.home {background: yellow;}

This is a fast, easy way to make a "toolbar" a little more active, without the need for fitting BGCOLOR attributes on to specific table cells.

TIP

By taking this approach, it's possible to take the toolbar and split it into a separate file, and then include that file on every page by means of a server-side include. Includes are described in much greater detail in Web Design in a Nutshell, by Jennifer Niederst, and Apache: The Definitive Guide, by Ben Laurie and Peter Laurie, both published by O'Reilly and Associates.

11.2.5. Getting Full Content Backgrounds in Navigator

We covered this in Chapter 6, "Colors and Backgrounds", but it bears some repetition. We assume you want people using Navigator 4.x to see full background colors in text elements, not just behind the text. If you've applied a background color to a text element, add the following declaration: border: 0.1px solid none. This will have no visual effect, but in the course of telling Navigator to draw a 0.1-pixel, solid, nonexistent border, the background color will usually fill the entire content area and the padding. If you set a visible border, then there will still be a gap between the padding and the border, but otherwise you should get roughly the correct effect.

Nonetheless, if you leave out this statement, every version of Navigator 4.x will not extend the background color throughout the entire content box but will only place it behind the element's text.

11.2.6. The Incredible Shrinking Text!

Here's a fun thing to do: make your document text so small that it can't be read by the human eye. You can do this using completely correct CSS and a bug-free browser. Here's the easiest way to see it:

UL {font-size: 75%;}

This seems simple enough: the text in unordered lists should be 75% normal size. Ah, but what happens if you have unordered lists nested inside unordered lists? You get the results shown in Figure 11-21, that's what.

Figure 11-21. Help me

Wow! What happened? Simply put, each nested list cuts the font size by a quarter. Let's assume the document's base font-size is 12pt. Therefore, at the top level, the font's size will be three-quarters of that, or 9pt. All well and good, except the next level down will see a reduction to 6pt, and the next level to 4pt, and so on. Once the text goes below 7pt, it will become unreadably small on most monitors (and will be tough to read even on most printouts).

You're probably thinking to yourself, "Ha! How dumb do you have to be to shrink text in lists like that?" True, it's easy to spot this with lists. However, think about how most of your pages are structured (with nested tables) and then consider this rule:

BODY {font-size: 12pt;}
TD {font-size: 80%;}

All it takes is three levels of nesting in your tables, and you end up with 6-point text (12 x 0.8 x 0.8 x 0.8 = 6.144). Many complicated pages have at least three levels of nesting, and sometimes even more.

11.2.7. Preserving Boldness

Here's a similar trick that helps work around a bug in most versions of Navigator 4. In situations where font-weight: normal has been set on an element, this value will be inherited by all the descendants of the element. That's as it should be, of course, but Navigator takes it one step too far. Given the following:

<P STYLE="font-weight: normal;">This is a paragraph which contains a
<B>boldface element</B>, but Navigator 4 won't make the text bold.</P>

That's right: all of the text in the example paragraph will have a normal font weight. For some reason, Navigator 4 doesn't know that it should assign a font-weight of bold (or bolder) to B elements. Similar problems can arise when using STRONG, or any other element that would ordinarily call for boldface text.

The solution is simple enough. Just make sure that you set an explicit font-weight for these elements. A good rule to include in your style sheet would be:

STRONG, B {font-weight: bolder;}

This should overcome any reluctance on Navigator 4's part.

11.2.8. Floating Text Elements in Internet Explorer

In Internet Explorer 4.x for Windows, in order to get float to work with text elements, you need to explicitly declare a width as well, like so: width: 10em . To be honest, I'm not sure why this should permit floating where it wouldn't otherwise happen. It does make some sense, given the usual desire for declaring a width on floated text elements in any case, but the specification does not require that a width be declared in order to make a text element float successfully. Internet Explorer 4.x for Windows does.

Also, you must have the final version of Explorer 4.x for this to work -- so if you're still using a preview release, you'll need to upgrade it, which is probably a good idea anyway. (Thanks to Howard Marvel for discovering and sharing this trick.)

11.2.9. Drop Caps With and Without :first-letter

Drop caps are a very common, and much-requested, typographical effect. A typical drop cap looks like the illustration in Figure 11-22.

Figure 11-22. A drop cap

There's an easy way to do this, and that is of course to use the :first-letter pseudo-element. The style would look something like this:

P.intro:first-letter {font-size: 300%; font-weight: bold; float: left;
  width: 1em;}

This will result in approximately what is seen in Figure 11-22.

However, as you probably know, older browsers don't support the :first-letter pseudo-element. In many of these -- Internet Explorer 3.x and Navigator 4.x, for example -- there is no alternative. In Internet Explorer 4.x and 5.0, however, you can use a SPAN element to fake your way around the lack of support for :first-letter. Here's how it works:

SPAN.dropcap {font-size: 300%; font-weight: bold; float: left;
  width: 0.75em;}

<P><SPAN CLASS="dropcap">T</SPAN>his is a paragraph with...</P>

Since this is very similar to the fictional tag sequence used to describe the behavior of :first-letter anyway, it works fairly well. It's less elegant, granted, but it does work. We use a width of 0.75em because most letters are not as wide as they are tall, but of course you may use other values; experiment to see what you like best.

11.2.10. Disappearing Styles

Here's a rather obscure Navigator bug which is utterly baffling when encountered. Under whatever circumstances trigger the bug (frames seem to be a major cause), resizing the browser window can cause all of the styles to go away, leaving plain text in their wake.

Reloading the page will get the styles back, but that's hardly a satisfactory solution. Slightly better is the inclusion of a small bit of JavaScript that will fix the problem for you. This widget should cause any JavaScript-enabled version of Navigator to reapply the styles after the window is resized -- and if JavaScript is turned off, then CSS won't work at all, which is another thing to remember when you try to figure out why styles don't work.

In the meantime, however, here's the script:

<SCRIPT LANGUAGE="JavaScript1.2">
<!--
var agt = navigator.userAgent.toLowerCase(  );
var is_major = parseInt(navigator.appVersion);
var is_nav = ((agt.indexOf('mozilla') != -1) &&
  (agt.indexOf('spoofer') == -1) &&
  (agt.indexOf('compatible') == -1));
var is_nav4 = (is_nav && (is_major == 4));

if (is_nav4) {onresize = location.reload();}
//-->
</SCRIPT>

This should cause the document to be reloaded whenever the browser window is resized in any version of Navigator 4.

The script used for this trick was adopted from a technique presented in the Netscape Developer's Edge article "Determining Browser Type and Version with JavaScript" at (http://developer.netscape.com:80/docs/examples/javascript/browser_type.html).

11.2.11. Serving CSS Up Correctly

Finally, a problem related to, but not exactly about, CSS. Some authors have reported trouble with getting their web hosts to correctly serve up external style sheets. Apparently, with some web servers, the file extension .css is mapped to the MIME type x-application/css, or "Continuous Slide Show," instead of the MIME type text/css. Even older servers may not have any mapping for .css, and so will serve up the files as text/plain.

TIP

When it comes right down to it, the extension isn't actually the important part. What matters is the MIME type the server uses when sending a file. However, since the vast majority of web servers use a file's extension to decide which MIME type to use when sending the file, it obviously becomes important to have a friendly server configuration.

If an external style sheet is sent using the wrong MIME type, the style sheet gets mangled into something unusable. If you find that you're having this problem, then you'll need to contact your ISP and explain the problem. If they refuse to fix it, try explaining to them that IANA (the Internet Assigned Numbers Authority, which also approves MIME types) has approved .css as the extension for the MIME type text/css, and the slideshow mapping is not a recognized IANA MIME type.

If they still refuse to correct the problem, then you may be able to fix it yourself with a directive file in your web space. If your web server runs using an NCSA-based web server like that sold by Netscape, add the following line to a file called .htaccess (that's all, nothing more) in the top level of your web space:

AddType "text/css; charset=iso-8859-1" .css

If none of this works, and you really need (or even want) to use external style sheets, you may have to consider switching ISPs.

Previous | Home | Next
11. CSS in Action | Book Index | A. CSS Resources


Colophon (Cascading Style Sheets: The Definitive Guide)

Colophon

Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects.

The animals on the cover of Cascading Style Sheets: The Definitive Guide are salmon (salmonidae), which is a family of fish consisting of many different species. Two of the most common salmon are the Pacific salmon and the Atlantic salmon.

Pacific salmon live in the northern Pacific Ocean off the coasts of North America and Asia. There are five subspecies of Pacific salmon, with an average weight of ten to thirty pounds and an average age of five years. Pacific salmon are born in the fall in freshwater stream gravel beds, where they incubate through the winter and emerge as inch-long fish. They live for a year or two in the stream or lake, and then head downstream to the ocean. There they live for a few years, before heading back upstream to their exact place of birth to spawn and then die.

Atlantic salmon live in the northern Atlantic Ocean off the coasts of North America and Europe. There are many subspecies of Atlantic salmon, including the trout and the char. Their typical size is ten to twenty pounds, with an average age of seven to ten years. The Atlantic salmon family has a similar life cycle to its Pacific cousins, from freshwater gravel beds to the sea. A major difference between the two, however, is that the Atlantic salmon does not die after spawning; it can return to the ocean and then return to the stream to spawn again, usually two or three times.

Salmon, in general, are graceful, silver-colored fish with spots on their backs and fins. Their diet consists of plankton, insect larvae, shrimp, and smaller fish. Their unusually keen sense of smell is thought to be what helps them navigate from the ocean back to the exact spot of their birth, upstream past many obstacles. Some species of salmon remain landlocked, living their entire lives in freshwater.

Salmon are an important part of the ecosystem, as their decaying bodies provide fertilizer for streambeds. Their numbers have been dwindling over the years, however. Factors in the declining salmon population include habitat destruction, fishing, dams that block spawning paths, acid rain, droughts, floods, and pollution.

Melanie Wang was the production editor and copyeditor for Cascading Style Sheets: The Definitive Guide. Madeleine Newell was the proofreader, and Jeff Holcomb and Colleen Gorman provided quality control. Maeve O'Meara, Mary Sheehan, Emily Quill, Ann Schirmer, Jeff Holcomb, and Colleen Gorman provided production support. Brenda Miller wrote the index.

Ellie Volckhausen designed the cover of this book, based on a series design by Edie Freedman. The cover image is a 19th-century engraving from the Dover Pictorial Archive. Emma Colby produced the cover layout with QuarkXPress 3.32 using Adobe's ITC Garamond font.

Alicia Cech designed the interior layout based on a series design by Nancy Priest. Mike Sierra implemented the design in FrameMaker 5.5.6. The text and heading fonts are ITC Garamond Light and Garamond Book. The illustrations that appear in the book were produced by Robert Romano and Rhon Porter using Macromedia FreeHand 8 and Adobe Photoshop 5. This colophon was written by Nicole Arigo.

Previous | Home
Index | Book Index


(Cascading Style Sheets: The Definitive Guide)

Copyright © 2000 O'Reilly & Associates, Inc. All rights reserved.

Printed in the United States of America.

Published by O'Reilly & Associates, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

Nutshell Handbook, the Nutshell Handbook logo, and the O'Reilly logo are registered trademarks of O'Reilly & Associates, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O'Reilly & Associates, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. The association between the image of a koala and the topic of HTML and XHTML is a trademark of O'Reilly & Associates, Inc.

While every precaution has been taken in the preparation of this book, the publisher assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.

Previous | Home | Next
Table of Contents | Book Index | 0. Preface


Cascading Style Sheets: The Definitive Guide

by Eric A. Meyer
ISBN 1-56592-622-6
First edition, published May 2000.
(See the catalog page for this book.)

Search the text of Cascading Style Sheets: The Definitive Guide.

Table of Contents

Copyright Page
Preface
Chapter 1: HTML and CSS
Chapter 2: Selectors and Structure
Chapter 3: Units and Values
Chapter 4: Text Properties
Chapter 5: Fonts
Chapter 6: Colors and Backgrounds
Chapter 7: Boxes and Borders
Chapter 8: Visual Formatting
Chapter 9: Positioning
Chapter 10: CSS2: A Look Ahead
Chapter 11: CSS in Action
Appendix A: CSS Resources
Appendix B: HTML 2.0 Style Sheet
Appendix C: CSS1 Properties
Appendix D: CSS Support Chart
Index
Colophon


Index (Cascading Style Sheets: The Definitive Guide)

Index

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Previous | Home | Next
D. CSS Suport Chart | Book Index | Colophon
Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: 0

* asterisk: 10.2.1.1. Universal selector
\: colon
in declarations: 2.1.3. Declarations
in pseudo-classes/pseudo-elements: 2.4.1. Pseudo-Class Selectors
, comma
in clip property: 9.1.4.2. Overflow clipping
separating selectors: 2.2.1. Grouping Selectors
" " double quotation marks: 1.4.6. Inline Styles
curly, in generated content: 10.4. Generated Content
in font-family declarations: 5.1.3. Using Quotation Marks
/ forward slash: 2.1.3. Declarations
font property and: 5.5.1. Adding the Line Height
# octothorpe: 2.3.2. ID Selectors
. period: 2.3.1. Class Selectors
in automatic numbering: 10.4.1. Automatic Numbering
; semicolon: 2.1.3. Declarations
2.2.2. Grouping Declarations
' ' single quotation marks: 5.1.3. Using Quotation Marks
| = symbols: 10.2.2.5. Matching hyphenated values
~ tilde: 10.2.2.3. Matching single attribute values
> greater-than symbol: 10.2.1.2. Child selector
@import directive: 1.4.3. The @import Directive
hiding styles: 11.2.2. Hiding Styles with @import

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: A

absolute font sizes: 5.3.1. Absolute Sizes
absolute length units: 3.2.1. Absolute Length Units
absolute positioning: 9.3. Absolute Positioning
absolute URLs: 3.4. URLs
\:active pseudo-class: 2.4.1. Pseudo-Class Selectors
support for: 2.4.1.1. Real-world issues
adjacent-sibling selectors: 10.2.1.3. Adjacent-sibling selector
11.1.3. Case 3: Putting a Magazine Article Online
\:after pseudo-element: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes
generated content: 10.4. Generated Content
aligning text: 4.1.1.2. Aligning text
4.1.3. Vertical Alignment
ALINK attribute: 2.4.1. Pseudo-Class Selectors
alternate style sheets: 1.4.1.1. LINK attributes
ancestors: 2.5. Structure
anchors: 2.4.1. Pseudo-Class Selectors
2.4.1. Pseudo-Class Selectors
angle values: 3.5. CSS2 Units
Arabic, text alignment default: 4.1.1.2. Aligning text
asterisk (*) in universal selector: 10.2.1.1. Universal selector
attribute matching: 10.2.2.1. Attribute matching
attribute selectors: 10.2.2. Attribute Selectors
aural media: 1.3.1. Limited Initial Scope
aural style sheets: 10.8.2. The Spoken Word
units for: 3.5. CSS2 Units
auto value, block-level elements: 8.2.2.2. Using auto
automatic numbering: 10.4.1. Automatic Numbering
azimuth property: 10.8.2. The Spoken Word

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: B

background attachment: 6.2.5. Getting Attached
background-attachment property: 6.2.5. Getting Attached
background-color property: 6.1.2. Background Color
inheritance and: 6.1.2. Background Color
background-image property: 6.2.1. Background Images
background-position property: 6.2.3. Background Positioning
background property: 6.2.6. Bringing It All Together
background-repeat property: 6.2.2. Repeats with Direction
backgrounds: 6. Colors and Backgrounds
colors: 6.1.2. Background Color
importance of declaring foreground color with: 6.1.4. Good Practices
complex: 6.2. Complex Backgrounds
floated elements and: 7.6.1.1. Backgrounds and floats
images as: 6.2. Complex Backgrounds
specifying with background color: 6.2.1.1. Good background practices
Netscape Navigator 4.x, correcting placement: 11.2.5. Getting Full Content Backgrounds in Navigator
padding and: 7.2. Margins or Padding?
perfect alignment of: 6.2.5.1. Interesting effects
positioning: 6.2.3. Background Positioning
scrolling vs. fixed: 6.2.5. Getting Attached
backward accessibility: 1.4.4. Actual Styles
baseline alignment: 4.1.3.1. Baseline alignment
\:before pseudo-element: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes
generated content: 10.4. Generated Content
blank space around elements (see margins)
blinking text: 4.1.6. Text Decoration
block-level elements: 2.9. Classification of Elements
8.2. Block-Level Elements
auto value: 8.2.2.2. Using auto
collapsing vertical margins: 8.2.1.2. Collapsing vertical margins
floated elements and: 8.3. Floated Elements
height: 8.2.1.1. Height
horizontal formatting: 8.2.2. Horizontal Formatting
horizontal properties: 8.2.2.1. Horizontal properties
list items: 8.2.3. List Items
margins and, caution with: 7.3.6. Negative Margin Values
negative margins: 8.2.2.4. Negative margins
replaced: 8.2.4. Block-Level Replaced Elements
vertical formatting: 8.2.1. Vertical Formatting
BODY attributes: 2.4.1. Pseudo-Class Selectors
replacing with color property: 6.1.1.1. BODY attributes
bold text: 5.2.2. Getting Bolder
preserving with Netscape Navigator 4.x: 11.2.7. Preserving Boldness
setting color: 6.1.1. Foreground Colors
border-bottom property: 7.4.4. Shorthand Border Properties
border-bottom-width property: 7.4.2. Border Widths
border-color property: 6.1.1.2. Affecting borders
7.4.3. Border Colors
border-left property: 7.4.4. Shorthand Border Properties
border-left-width property: 7.4.2. Border Widths
border property: 7.4.4.1. Setting borders as quickly as possible
border-right property: 7.4.4. Shorthand Border Properties
border-right-width property: 7.4.2. Border Widths
border-style property[border style property: 7.4.1. Borders with Style
border-top property: 7.4.4. Shorthand Border Properties
border-top-width property: 7.4.2. Border Widths
border-width property: 7.4.2. Border Widths
borders: 7.4. Borders
color: 7.4.3. Border Colors
replication: 7.4.3. Border Colors
setting: 6.1.1.2. Affecting borders
inline elements and: 7.4.5. Borders and Inline Elements
multiple styles: 7.4.1.1. Multiple styles
new properties with CSS2: 10.6. Borders
width: 7.4.2. Border Widths
for individual sides: 7.4.2. Border Widths
keywords for: 7.4.2. Border Widths
none, setting to: 7.4.2.1. No border at all
replication: 7.4.2. Border Widths
bottom property: 9.1.2. Side Offsets
box properties: 7.4.5. Borders and Inline Elements
7.4.6. Borders: Known Issues
adding to
inline elements: 8.4.2.2. Adding box properties
inline replaced elements: 8.4.4.1. Adding box properties
browsers
appearance and: 10.5. Adapting to the Environment
background images and: 6.2.1. Background Images
background property and: 6.2.6. Bringing It All Together
backward accessibility for: 1.4.4. Actual Styles
cursor shape: 10.5.1. Cursors
environment and: 10.5. Adapting to the Environment
important rules and: 2.7.2. Importance
inheritance and: 2.6.1. Limitations of Inheritance
negative background positions and: 6.2.3.3. Length values
negative margins, support for: 7.3.6. Negative Margin Values
negative padding and: 7.5. Padding
points/pixels, treatment of: 5.3.5. Using Length Units
speech-synthesis: 1.1.1. What a Mess
1.1.1. What a Mess
10.8.2. The Spoken Word
text justification and: 4.1.1.2. Aligning text
underlining, turning off in: 4.1.6.1. Weird decorations
whitespace, handling in: 4.1.1.3. Handling whitespace
bullets: 7.7. Lists
8.2.3. List Items
fallback for: 7.7.2. List Item Images
images used as: 7.7.2. List Item Images
position of: 7.7.3. List Item Positions

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: C

capitalizing text: 4.1.5. Text Transformation
caption-side property: 10.7. Tables
cascade (the): 1.2.4. Cascading
2.8. The Cascade
borders and: 7.4.4.1. Setting borders as quickly as possible
rules: 2.8. The Cascade
Cascading Style Sheets (see entries at CSS)
Cascading Style Sheets and Formatting Properties Working Group (CSS&FP): 1.2. CSS to the Rescue
centimeters (cm): 3.2.1. Absolute Length Units
change markers: 9.3. Absolute Positioning
child selectors: 10.2.1.2. Child selector
children: 2.5. Structure
CLASS attribute: 2.3.1. Class Selectors
class selectors: 2.3. Class and ID Selectors
2.3.1. Class Selectors
combining with pseudo-class selectors: 2.4.1. Pseudo-Class Selectors
vs. ID selectors: 2.3.3. Class? ID? What's the Difference?
simulating: 10.2.2.4. Simulating class and ID
universal selector and: 10.2.1.1. Universal selector
classes, picking names of: 6. Colors and Backgrounds
clear property: 7.6.2. Clear
clearing floated elements: 7.6.2. Clear
clip property: 9.1.4.3. Element clipping
clipping: 9.1.4.2. Overflow clipping
collapsing margins: 7.3.5. Collapsing Margins
block-level elements: 8.2.1.2. Collapsing vertical margins
floating and: 7.6.1. Floated Elements
colon (\:)
in declarations: 2.1.3. Declarations
in pseudo-classes/pseudo-elements: 2.4.1. Pseudo-Class Selectors
color equivalents, list of: 3.1.2.5. Bringing the colors together
color property: 6.1.1. Foreground Colors
BODY attributes, replacing: 6.1.1.1. BODY attributes
border-color property and: 6.1.1.2. Affecting borders
inheritance and: 6.1.1.3. Inheriting color
single keyword with: 2.2.2. Grouping Declarations
color reproduction: 3.1.1. Named Colors
color units: 3.6. Summary
colors: 3.1. Colors
6. Colors and Backgrounds
background: 6.1.2. Background Color
6.1.4. Good Practices
borders: 7.4.3. Border Colors
foreground: 6.1.1. Foreground Colors
6.1.4. Good Practices
hexadecimal: 3.1.2.3. Hexadecimal colors
short: 3.1.2.4. Short hexadecimal colors
hyperlinks: 6.1.1. Foreground Colors
named: 3.1.1. Named Colors
operating system and: 10.5.2. Colors
percentage: 3.1.2.1. Percentage colors
reproducing: 3.1.1. Named Colors
RGB: 3.1.2. Colors by RGB
set by numbers: 3.1.2.2. Going by numbers
web-safe: 3.1.2.6. Web-safe colors
columns
creating: 11.1.3. Case 3: Putting a Magazine Article Online
CSS2 and: 11.1.3.1. Cleaning up
combined alignment: 4.1.3.7. Combined alignment
combining text decorations: 4.1.6. Text Decoration
comma (,)
in clip property: 9.1.4.2. Overflow clipping
separating selectors: 2.2.1. Grouping Selectors
comments
CSS: 1.4.5. CSS Comments
enclosing style declarations in: 1.4.4. Actual Styles
HTML: 1.4.4. Actual Styles
common elements, styling: 11.2.4. Styling Common Elements
complex backgrounds: 6.2. Complex Backgrounds
consistency, achieving with style sheets: 11.1.1. Case 1: Consistent Look and Feel
containing blocks: 9.1. General Concepts
descendant elements and: 9.3. Absolute Positioning
positioning elements outside: 9.1.2. Side Offsets
content area: 4.1.2. The Height of Lines
8.1. Basic Boxes
content overflow (see overflow)
content property: 10.4. Generated Content
contextual selectors: 2.5.1. Contextual Selectors
child selectors and: 10.2.1.2. Child selector
universal selector and: 10.2.1.1. Universal selector
crop marks: 10.8.1. Paged Media
cross marks: 10.8.1. Paged Media
CSS2: 1.2. CSS to the Rescue
3.5. CSS2 Units
10. CSS2: A Look Ahead
absolute font sizes, scaling factor and: 5.3.1. Absolute Sizes
changes from CSS1: 10.1. Changes from CSS1
markers (bullets) and: 8.2.3. List Items
new features with: 10.9. Summary
scrollbars and: 8.2.1.1. Height
selectors: 10.2. CSS2 Selectors
side-offset properties and: 9.1.2. Side Offsets
table elements: 8.4. Inline Elements
CSS (Cascading Style Sheets): 1. HTML and CSS
1. HTML and CSS
(see also style sheets)
benefits of: 1.2. CSS to the Rescue
cascade (see cascade)
file size and: 1.2.5. Compact File Size
HTML
combined with: 1.4. Bringing CSS and HTML Together
styling comparison: 1.2.1. Rich Styling
implementations of: 1.3.2. Implementations
limitations of: 1.3. Limitations of CSS
making them work: 11.2.1. Making Styles Work
properties
permitted on pseudo-element selectors: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors
rules: 2.1. Basic Rules
sample projects: 11. CSS in Action
tips for using: 11.2. Tips & Tricks
XML and: 1.2.6. Preparing for the Future
CSS comments: 1.4.5. CSS Comments
.css filename extension: 1.4.1. The LINK Tag
CSS&FP (Cascading Style Sheets and Formatting Properties Working Group): 1.2. CSS to the Rescue
curly double-quotes ( ): 10.4. Generated Content
cursive fonts: 5.1. Font Families
cursive text: 5.4.1. Fonts with Style
cursor
outline for: 10.5.3. Outlines
shape: 10.5.1. Cursors
cursor property: 10.5.1. Cursors

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: D

decimal values in percentage values: 3.1.2.1. Percentage colors
declarations: 2.1.1. Rule Structure
2.1.3. Declarations
grouping: 2.2.2. Grouping Declarations
ignored: 2.1.3. Declarations
decorating text (see text decoration)
descendants: 2.5. Structure
display driver, setting on Windows systems: 3.2.1.1. Working with absolute lengths
display property: 2.9. Classification of Elements
additions/changes with CSS2: 10.1.1. Additions and Changes to the display Property
markers (bullets): 10.4.2. Markers
table-related values: 10.7. Tables
distance (see length units)
DIV element
creating columns: 11.1.3. Case 3: Putting a Magazine Article Online
wrapping images: 4.1.1.2. Aligning text
document style sheets: 1.4.2. The STYLE Element
document type definition (DTD): 2.9. Classification of Elements
dots-per-inch (dpi) environment: 5.3.5. Using Length Units
double quotation marks ( ): 1.4.6. Inline Styles
curly, in generated content: 10.4. Generated Content
in font-family declarations: 5.1.3. Using Quotation Marks
dpi (dots-per-inch) environment: 5.3.5. Using Length Units
drop cap: 11.1.3. Case 3: Putting a Magazine Article Online
with or without \:first-letter pseudo-element: 11.2.9. Drop Caps With and Without :first-letter
drop shadow: 10.3.2. text-shadow
DTD (document type definition): 2.9. Classification of Elements

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: E

element boxes: 7.1. Basic Element Boxes
8.1. Basic Boxes
element clipping: 9.1.4.3. Element clipping
element selectors: 2.1.1. Rule Structure
elements
classification of: 2.9. Classification of Elements
floated (see floated elements)
overlapping, altering: 9.5. Stacking Positioned Elements
styling common: 11.2.4. Styling Common Elements
visibility of: 9.1.5. Element Visibility
elevation property: 10.8.2. The Spoken Word
em box: 5.3. Font Size
em-height (em): 3.2.2.1. em and ex units
em length value: 5.3.3. Percentages and Sizes
em square: 5.3. Font Size
embedded style sheets: 1.4.2. The STYLE Element
ex-height (ex): 3.2.2.1. em and ex units
Extensible Markup Language (see XML)
external style sheets: 1.4.1. The LINK Tag
creating: 11.1.1. Case 1: Consistent Look and Feel
loading
with @import directive: 1.4.3. The @import Directive
with LINK element: 1.4.1. The LINK Tag
extra space around elements, adding: 7.2. Margins or Padding?
7.2. Margins or Padding?
(see also margins)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: F

fictional tags (see pseudo-element selectors)
file size with CSS: 1.2.5. Compact File Size
decreased: 11.1.2. Case 2: Library Catalog System Interface
:first-child pseudo-element: 10.2.3.4. :first-child
:first-letter pseudo-element: 2.4.2. Pseudo-Element Selectors
first line of paragraph, indenting: 4.1.1.1. Indenting text
:first-line pseudo-element: 2.4.2. Pseudo-Element Selectors
:first pseudo-class: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes
fixed positioning: 9.4. Fixed Positioning
float property: 7.6. Floating and Clearing
floated elements: 7.6. Floating and Clearing
8.3. Floated Elements
applied behavior: 8.3.2. Applied Behavior
background and: 7.6.1.1. Backgrounds and floats
8.3.2. Applied Behavior
clearing: 7.6.2. Clear
collapsing margins and: 7.6.1. Floated Elements
columns and: 11.1.3. Case 3: Putting a Magazine Article Online
images: 7.6. Floating and Clearing
Internet Explorer 4.x and: 11.2.8. Floating Text Elements in Internet Explorer
min-max properties and: 9.1.3.2. Limiting width and height
negative margins and: 7.6.1.2. Negative margins and floating
8.3.2.1. Negative margins
overlapping, preventing: 8.3.1. Floating: The Details
placement, rules governing: 8.3.1. Floating: The Details
taller than parent element: 8.3.2. Applied Behavior
wider than parent element: 8.3.2.1. Negative margins
:focus pseudo-element: 10.2.3.2. :focus
font declaration, forward-slash in: 2.1.3. Declarations
font faces: 5.1. Font Families
font families: 5.1. Font Families
declarations, quotation marks in: 5.1.3. Using Quotation Marks
generic: 5.1. Font Families
combining with actual: 5.1.2. Specifying Actual Font Names
importance of providing: 5.1.2. Specifying Actual Font Names
specifying: 5.1.2. Specifying Actual Font Names
font-family property: 5.1.1. Using Generic Font Families
font matching: 5.6. Font Matching
font names (see font families)
font property: 5.5. Using Shorthand: The font Property
required values: 5.5. Using Shorthand: The font Property
values new with CSS2: 10.3. Fonts and Text
font-size-adjust property: 10.3.1. New Font Properties
font-size property: 5.3. Font Size
font sizes: 5.3. Font Size
absolute: 5.3.1. Absolute Sizes
inheritance and: 5.3.4. Font Size and Inheritance
percentage values: 5.3.3. Percentages and Sizes
relative: 5.3.2. Relative Sizes
setting using length units: 5.3.5. Using Length Units
font-stretch property: 10.3.1. New Font Properties
font-style property: 5.4.1. Fonts with Style
font-variant property: 5.4.2. Font Variations
font-weight property: 5.2. Font Weights
fonts: 5. Fonts
alternate, providing: 5.1.2. Specifying Actual Font Names
5.1.4. Good Practices
families (see font families)
fantasy: 5.1. Font Families
handling in CSS specifications: 1.3.1. Limited Initial Scope
kursiv: 5. Fonts
matching: 5.6. Font Matching
naming issues: 5. Fonts
sizes (see font sizes)
styles: 5.4.1. Fonts with Style
variants: 5.4.2. Font Variations
weights: 5.2. Font Weights
how they work: 5.2.1. How Weights Work
sample, list of: 5.2.1. How Weights Work
footer of a table: 10.7. Tables
foreground colors: 6.1.1. Foreground Colors
importance of declaring background color with: 6.1.4. Good Practices
foreign languages
default text alignment in Arabic/Hebrew: 4.1.1.2. Aligning text
hyphenation in: 4.1.1.2. Aligning text
:lang pseudo-class: 10.2.3.3. :lang
form elements
background images, placing in: 6.2.1. Background Images
color, setting: 6.1.1.4. Affecting form elements
forward slash (/)
font property and: 5.5.1. Adding the Line Height
separating keywords: 2.1.3. Declarations
frequency values: 3.5. CSS2 Units

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: G

gamma value set: 3.1.1. Named Colors
Gecko rendering engine: 1.3.2. Implementations
generated content: 10.4. Generated Content
generic font families: 5.1. Font Families
combining with actual: 5.1.2. Specifying Actual Font Names
importance of providing: 5.1.2. Specifying Actual Font Names
greater-than symbol (>) with child selectors: 10.2.1.2. Child selector
grouping
declarations: 2.2.2. Grouping Declarations
selectors: 2.2. Grouping

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: H

half-leading: 8.4.2.1. Generating a line box
hanging floats: 7.6.1.2. Negative margins and floating
hanging indents: 4.1.1.1. Indenting text
hash mark (see octothorpe)
header of a table: 10.7. Tables
Hebrew, default text alignment: 4.1.1.2. Aligning text
height
block-level elements: 8.2.1.1. Height
limiting via min-max properties: 9.1.3.2. Limiting width and height
lines (see line height)
positioning and: 9.1.3. Width and Height
height property: 7.1. Basic Element Boxes
9.1.3.1. Setting width and height
hexadecimal colors: 3.1.2.3. Hexadecimal colors
list of: 3.1.2.3. Hexadecimal colors
hiding styles with @import: 11.2.2. Hiding Styles with @import
hierarchy of elements: 2.5. Structure
horizontal alignment: 4.1.1.2. Aligning text
horizontal formatting: 8.2.2. Horizontal Formatting
horizontal margins, noncollapsing: 8.2.2. Horizontal Formatting
horizontal properties, block-level elements: 8.2.2.1. Horizontal properties
:hover pseudo-class: 10.2.3.1. :hover
HREF attribute: 1.4.1.1. LINK attributes
HSPACE attribute: 8.1. Basic Boxes
HTML: 1.1. The Web's Fall from Grace
4.0 specification, phasing out tags: 1.2.6. Preparing for the Future
combined with CSS: 1.4. Bringing CSS and HTML Together
11.1.2. Case 2: Library Catalog System Interface
selectors in: 2.1.2. Simple Selectors
structure: 2.5. Structure
STYLE element: 1.4.2. The STYLE Element
styling compared to CSS: 1.2.1. Rich Styling
tips for using: 11.2. Tips & Tricks
whitespace in: 4.1.1.3. Handling whitespace
HTML attributes
ALINK: 2.4.1. Pseudo-Class Selectors
of BODY element: 2.4.1. Pseudo-Class Selectors
6.1.1.1. BODY attributes
CLASS: 2.3.1. Class Selectors
HREF: 1.4.1.1. LINK attributes
HSPACE: 8.1. Basic Boxes
LINK: 2.4.1. Pseudo-Class Selectors
of LINK element: 1.4.1.1. LINK attributes
quotation marks with: 5.1.3. Using Quotation Marks
single attribute values, matching: 10.2.2.3. Matching single attribute values
STYLE: 1.4.6. Inline Styles
2.7.1. Inheritance and Specificity
2.8. The Cascade
5.1.3. Using Quotation Marks
TYPE: 1.4.1.1. LINK attributes
VLINK: 2.4.1. Pseudo-Class Selectors
HTML comments: 1.4.4. Actual Styles
HTML documents, style sheets linked to: 1.4.1. The LINK Tag
hyperlinks
background images, placing in: 6.2.1. Background Images
color, setting: 6.1.1. Foreground Colors
removing underlining from: 4.1.6. Text Decoration
hyphenated values, matching: 10.2.2.5. Matching hyphenated values
hyphenation: 4.1.1.2. Aligning text

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: I

ID attributes: 2.3.2. ID Selectors
ID selectors: 2.3. Class and ID Selectors
2.3.2. ID Selectors
vs. class selectors: 2.3.3. Class? ID? What's the Difference?
simulating: 10.2.2.4. Simulating class and ID
universal selector and: 10.2.1.1. Universal selector
IE (see Internet Explorer)
ignoring declarations: 2.1.3. Declarations
images
attachment and: 6.2.5. Getting Attached
as background: 6.2. Complex Backgrounds
specifying color: 6.2.1.1. Good background practices
border around, setting color: 6.1.1.2. Affecting borders
as bullets in lists: 7.7.2. List Item Images
centering: 4.1.1.2. Aligning text
with text: 4.1.1.2. Aligning text
floating: 4.1.1.1. Indenting text
7.6. Floating and Clearing
11.1.3. Case 3: Putting a Magazine Article Online
indenting with text: 4.1.1.1. Indenting text
line height and: 8.4.4. Inline Replaced Elements
middle alignment: 4.1.3.5. In the middle
origin image: 6.2.3.3. Length values
repeating: 6.2.2. Repeats with Direction
6.2.4. Repeats with Direction (Revisited)
sidebar: 6.2.2. Repeats with Direction
tiling: 6.2.4. Repeats with Direction (Revisited)
vertical alignment and: 4.1.3.1. Baseline alignment
implementations of CSS: 1.3.2. Implementations
!important property: 2.7.2. Importance
important rules: 2.7.2. Importance
imported style sheets: 1.2.3. Using Your Styles on Multiple Pages
overriding styles in: 7.6.1.3. No floating at all
inches (in): 3.2.1. Absolute Length Units
inclined text: 5.4.1. Fonts with Style
includes: 11.2.4. Styling Common Elements
indenting text: 4.1.1.1. Indenting text
11.1.3. Case 3: Putting a Magazine Article Online
inherit value: 10.1. Changes from CSS1
10.1.2. More Inheritance
inheritance: 2.6. Inheritance
background-color property and: 6.1.2. Background Color
color property and: 6.1.1.3. Inheriting color
font size and: 5.3.4. Font Size and Inheritance
specificity and: 2.7.1. Inheritance and Specificity
initial containing block: 9.1. General Concepts
inline box: 4.1.2. The Height of Lines
8.4.2.1. Generating a line box
11.1.3. Case 3: Putting a Magazine Article Online
inline elements: 2.9. Classification of Elements
8.4. Inline Elements
background images, placing in: 6.2.1. Background Images
borders and: 7.4.5. Borders and Inline Elements
box properties, adding to: 8.4.2.2. Adding box properties
formatting: 8.4.2. Inline Formatting
line height, managing: 8.4.3. Managing the Line Height of Inline Elements
line-height property and: 4.1.2. The Height of Lines
line layout: 8.4.1. Line Layout
margins and: 7.3.8. Margins: Known Issues
caution with: 7.3.8. Margins: Known Issues
padding and: 7.5.3. Padding and Inline Elements
replaced: 8.4.4. Inline Replaced Elements
box properties, adding to: 8.4.4.1. Adding box properties
vertical-align property and: 4.1.3. Vertical Alignment
inline formatting: 8.4.2. Inline Formatting
inline styles: 1.4.6. Inline Styles
Internet Explorer
clipping support and: 9.1.4.2. Overflow clipping
CSS implementations in: 1.3.2. Implementations
margin problems and: 11.2.3. Fighting Margin Problems with @import
margins and: 7.3.8. Margins: Known Issues
support for @import: 1.4.3. The @import Directive
Internet Explorer 5.x
:hover pseudo-element: 10.2.3.1. :hover
inline elements, borders and: 7.4.5. Borders and Inline Elements
interword spacing: 4.1.4.1. Word spacing
italic text: 5.4.1. Fonts with Style

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: J

JavaScript
Netscape Navigator preferences: 11.2.1. Making Styles Work
reapplying styles: 11.2.10. Disappearing Styles
JavaScript Style Sheets (JSSS): 11.2.1. Making Styles Work
justifying text: 4.1.1.2. Aligning text
11.1.3. Case 3: Putting a Magazine Article Online

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: K

keywords: 2.1.3. Declarations
for background positioning: 6.2.3.1. Keywords
multiple: 2.1.3. Declarations
number: 5.2.1. How Weights Work
transparent: 6.1.2. Background Color
kursiv text: 5.4.1. Fonts with Style

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: L

:lang pseudo-class: 10.2.3.3. :lang
leading: 4.1.2. The Height of Lines
half-leading: 8.4.2.1. Generating a line box
left property: 9.1.2. Side Offsets
:left pseudo-class: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes
10.8.1. Paged Media
length units: 3.2. Length Units
font sizes, setting with: 5.3.5. Using Length Units
length values
for background positioning: 6.2.3.3. Length values
margins: 7.3.1. Length Values and Margins
letterspacing: 4.1.4.2. Letterspacing
letter-spacing property: 4.1.4.2. Letterspacing
lighter text: 5.2.3. Lightening Weights
line box: 8.4.2. Inline Formatting
generating: 8.4.2.1. Generating a line box
line-breaking, margins and: 7.3.7. Margins and Inline Elements
line height: 4.1.2. The Height of Lines
8.4.2. Inline Formatting
in font property: 5.5.1. Adding the Line Height
images and: 8.4.4. Inline Replaced Elements
managing for inline elements: 8.4.3. Managing the Line Height of Inline Elements
scaling: 8.4.3.1. Scaling the line heights
line-height property: 4.1.2. The Height of Lines
line layout: 8.4.1. Line Layout
line-through value: 4.1.6. Text Decoration
LINK attribute: 2.4.1. Pseudo-Class Selectors
LINK element: 1.4.1. The LINK Tag
:link pseudo-class: 2.4.1. Pseudo-Class Selectors
linking style sheets: 1.4.1. The LINK Tag
links
background images, placing in: 6.2.1. Background Images
color, setting: 6.1.1. Foreground Colors
removing underlining from: 4.1.6. Text Decoration
list-item elements: 2.9. Classification of Elements
list items: 7.7. Lists
8.2.3. List Items
horizontal formatting and: 8.2.2. Horizontal Formatting
list-style-image property: 7.7.2. List Item Images
list-style-position property: 7.7.3. List Item Positions
list-style property: 7.7.4. List Styles In Shorthand
list-style-type property: 7.7.1. Types of Lists
lists: 7.7. Lists
7.7. Lists
(see also list items)
position of: 7.7.3. List Item Positions
shorthand property: 7.7.4. List Styles In Shorthand
types of: 7.7.1. Types of Lists
lowercase text: 4.1.5. Text Transformation

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: M

margin-bottom property: 7.3.4. Single-Side Margin Properties
margin-left property: 7.3.4. Single-Side Margin Properties
margin property: 7.3. Margins
margin-right property: 7.3.4. Single-Side Margin Properties
margin-top property: 7.3.4. Single-Side Margin Properties
margins: 7. Boxes and Borders
7.3. Margins
collapsing: 7.3.5. Collapsing Margins
block-level elements: 8.2.1.2. Collapsing vertical margins
floated elements: 7.6.1. Floated Elements
horizontal, noncollapsing: 8.2.2. Horizontal Formatting
inline elements and: 7.3.7. Margins and Inline Elements
caution with: 7.3.8. Margins: Known Issues
length values and: 7.3.1. Length Values and Margins
negative (see negative margins)
vs. padding: 7.2. Margins or Padding?
percentages and: 7.3.2. Percentages and Margins
replication: 7.3.3. Replicating Values
single side, setting margin for: 7.3.4. Single-Side Margin Properties
table cells and: 1.3.1. Limited Initial Scope
markers: 8.2.3. List Items
8.2.3. List Items
10.4.2. Markers
matching hyphenated values: 10.2.2.5. Matching hyphenated values
matching single attribute values: 10.2.2.3. Matching single attribute values
max-height property: 9.1.3.2. Limiting width and height
max-width property: 9.1.3.2. Limiting width and height
media types: 1.3.1. Limited Initial Scope
10.8. Media Types and @-rules
Microsoft Internet Explorer (see Internet Explorer)
middle alignment: 4.1.3.5. In the middle
millimeters (mm): 3.2.1. Absolute Length Units
min-height property: 9.1.3.2. Limiting width and height
min-max properties: 9.1.3.2. Limiting width and height
min-width property: 9.1.3.2. Limiting width and height
monospace fonts: 5.1. Font Families
multiple pages, using styles on: 1.2.3. Using Your Styles on Multiple Pages

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: N

named colors: 3.1.1. Named Colors
navigation bar: 11.1.2. Case 2: Library Catalog System Interface
negative margins: 7.3.6. Negative Margin Values
block-level elements: 8.2.2.4. Negative margins
caution with: 7.3.6. Negative Margin Values
browser support for: 7.3.6. Negative Margin Values
floated elements and: 7.6.1.2. Negative margins and floating
8.3.2.1. Negative margins
11.1.3. Case 3: Putting a Magazine Article Online
inline replaced elements and: 8.4.4.1. Adding box properties
negative values in percentage colors: 3.1.2.1. Percentage colors
nesting, shrinking text and: 11.2.6. The Incredible Shrinking Text!
Netscape Navigator
blinking support: 4.1.6. Text Decoration
CSS implementations in: 1.3.2. Implementations
disappearing styles: 11.2.10. Disappearing Styles
margin problems and: 11.2.3. Fighting Margin Problems with @import
preferences for style sheets/JavaScript: 11.2.1. Making Styles Work
Netscape Navigator 4.x
background color: 7.4.6. Borders: Known Issues
background color, incorrect placement: 6.1.2.1. Real-world issues
correcting: 11.2.5. Getting Full Content Backgrounds in Navigator
block-level elements, borders and: 7.4.6. Borders: Known Issues
bold text, preserving: 11.2.7. Preserving Boldness
inline elements
borders and: 7.4.5. Borders and Inline Elements
caution with: 7.4.6. Borders: Known Issues
margins and: 7.3.8. Margins: Known Issues
padding and: 7.5.4. Padding: Known Issues
relative URLs and: 3.4. URLs
styles, hiding: 11.2.2. Hiding Styles with @import
nonreplaced elements: 8.4. Inline Elements
number keywords: 5.2.1. How Weights Work
numbering, automatic: 10.4.1. Automatic Numbering
numeric RGB equivalents, list of: 3.1.2.2. Going by numbers

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: O

oblique text: 5.4.1. Fonts with Style
octothorpe (#) preceding ID selectors: 2.3.2. ID Selectors
offsets (see side-offset properties)
Opera
CSS implementation in: 1.3.2. Implementations
padding and: 7.5.4. Padding: Known Issues
padding values, negative: 7.5. Padding
operating system, colors and: 10.5.2. Colors
order sorting: 2.8. The Cascade
ordered lists: 7.7.1. Types of Lists
7.7.2. List Item Images
origin image: 6.2.3.3. Length values
origin sorting: 2.8. The Cascade
origins: 2.8. The Cascade
orphans property: 10.8.1. Paged Media
outline properties: 10.5.3. Outlines
overflow: 9.1.4. Content Overflow and Clipping
overflow-clip property: 9.1.4.2. Overflow clipping
overflow clipping: 9.1.4.2. Overflow clipping
overflow property: 9.1.4.1. Overflow
overlapping
elements, altering: 9.5. Stacking Positioned Elements
floated elements, preventing: 8.3.1. Floating: The Details
margins (see collapsing margins)
text, preventing: 8.4.3. Managing the Line Height of Inline Elements
overlining: 4.1.6. Text Decoration
overriding previously declared values: 11.1.3. Case 3: Putting a Magazine Article Online

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: P

padding: 7. Boxes and Borders
7.5. Padding
background and: 7.5. Padding
inline elements and: 7.5.3. Padding and Inline Elements
vs. margins: 7.2. Margins or Padding?
percentage values and: 7.5.1. Percentage Values and Padding
single-side: 7.5.2. Single-Side Padding
padding-bottom property: 7.5.2. Single-Side Padding
padding-left property: 7.5.2. Single-Side Padding
padding property: 7.5. Padding
padding-right property: 7.5.2. Single-Side Padding
padding-top property: 7.5.2. Single-Side Padding
page-break-after property: 10.8.1. Paged Media
page-break-before property: 10.8.1. Paged Media
page-break-inside property: 10.8.1. Paged Media
page size: 10.8.1. Paged Media
paged media: 1.3.1. Limited Initial Scope
10.8.1. Paged Media
panning mechanisms: 9.1.4.1. Overflow
parents: 2.5. Structure
percentage colors: 3.1.2.1. Percentage colors
list of percentages: 3.1.2.1. Percentage colors
percentage units: 3.3. Percentage Values
percentage values for background positioning: 6.2.3.2. Percentage values
perfect alignment of backgrounds: 6.2.5.1. Interesting effects
period (.)
in automatic numbering: 10.4.1. Automatic Numbering
in class selectors: 2.3.1. Class Selectors
picas (pc): 3.2.1. Absolute Length Units
pitch property: 10.8.2. The Spoken Word
pitch-range property: 10.8.2. The Spoken Word
pixels-per-inch (ppi): 5.3.5. Using Length Units
pixels (px): 3.1.2. Colors by RGB
3.2.2.3. Pixel lengths
setting font size in: 5.3.5. Using Length Units
points (pt): 3.2.1. Absolute Length Units
problems for document design: 5.3.5. Using Length Units
setting font size in: 5.3.5. Using Length Units
position keyword equivalents: 6.2.3.1. Keywords
position property: 9.1.1. Positioning Schemes
positional equivalents: 6.2.3.2. Percentage values
positioned elements, stacking: 9.5. Stacking Positioned Elements
positioning: 9. Positioning
absolute: 9.3. Absolute Positioning
fixed: 9.4. Fixed Positioning
height/width and: 9.1.3. Width and Height
relative: 9.2. Relative Positioning
positioning backgrounds: 6.2.3. Background Positioning
positioning elements: 1.3.1. Limited Initial Scope
positioning schemes: 9.1.1. Positioning Schemes
pound sign (see octothorpe)
ppi (pixels-per-inch): 5.3.5. Using Length Units
print document, putting online: 11.1.3. Case 3: Putting a Magazine Article Online
properties: 2.1.1. Rule Structure
2.1.3. Declarations
new with CSS2: 10.9. Summary
pseudo-class selectors: 2.4.1. Pseudo-Class Selectors
combining with class selectors: 2.4.1. Pseudo-Class Selectors
new with CSS2: 10.2.3. More Pseudo-Classes and Pseudo-Elements
10.9. Summary
restrictions on: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors
pseudo-classes: 2.4.1. Pseudo-Class Selectors
2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors
specificity and: 2.7.1. Inheritance and Specificity
pseudo-element selectors: 2.4.2. Pseudo-Element Selectors
CSS properties permitted on: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors
new with CSS2: 10.2.3. More Pseudo-Classes and Pseudo-Elements
10.9. Summary
restrictions on: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors
pseudo-elements: 2.4.1. Pseudo-Class Selectors
2.4.2. Pseudo-Element Selectors
2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors
specificity and: 2.7.1. Inheritance and Specificity
pull quote: 11.1.3. Case 3: Putting a Magazine Article Online

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: Q

quotation marks
double ( ): 1.4.6. Inline Styles
curly, in generated content: 10.4. Generated Content
in font-family declarations: 5.1.3. Using Quotation Marks
single ( ): 5.1.3. Using Quotation Marks

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: R

raised look: 7.4.1. Borders with Style
readers, selecting alternate style sheets: 1.4.1.2. Alternate style sheets
relative font sizing: 5.3.2. Relative Sizes
relative length units: 3.2.2. Relative Length Units
relative positioning: 9.2. Relative Positioning
relative URLs: 3.4. URLs
rendering engines: 8. Visual Formatting
repeating images: 6.2.2. Repeats with Direction
6.2.4. Repeats with Direction (Revisited)
replaced elements: 2.9. Classification of Elements
8.2.4. Block-Level Replaced Elements
8.4. Inline Elements
inline: 8.4.4. Inline Replaced Elements
adding box properties to: 8.4.4.1. Adding box properties
replication
border color: 7.4.3. Border Colors
border widths: 7.4.2. Border Widths
margins: 7.3.3. Replicating Values
value: 7.4.1.1. Multiple styles
resources for further information
instances: 11.2.4. Styling Common Elements
restrictions on pseudo-classes/ pseudo-elements: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors
RGB colors: 3.1.2. Colors by RGB
richness property: 10.8.2. The Spoken Word
right property: 9.1.2. Side Offsets
:right pseudo-class: 10.8.1. Paged Media
root element: 2.5. Structure
@ rules: 10.8. Media Types and @-rules

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: S

S element: 4.1.6. Text Decoration
sample projects using CSS: 11. CSS in Action
sans serif fonts: 5.1. Font Families
Scalable Vector Graphics (SVG): 1.3.1. Limited Initial Scope
scaling factor
absolute font sizes: 5.3.1. Absolute Sizes
line height and: 4.1.2. The Height of Lines
scaling line heights: 8.4.3.1. Scaling the line heights
scrollbars: 9.1.4.1. Overflow
block-level elements and: 8.2.1.1. Height
selectors: 2.1.1. Rule Structure
class: 2.3. Class and ID Selectors
2.3.1. Class Selectors
CSS2: 10.2. CSS2 Selectors
grouping: 2.2.1. Grouping Selectors
ID: 2.3. Class and ID Selectors
2.3.2. ID Selectors
pseudo-class: 2.4.1. Pseudo-Class Selectors
pseudo-element: 2.4.2. Pseudo-Element Selectors
semicolon (;) terminating declarations: 2.1.3. Declarations
2.2.2. Grouping Declarations
serif fonts: 5.1. Font Families
servers, external style sheets and: 11.2.11. Serving CSS Up Correctly
seven properties of horizontal formatting[seven properties of horizontal formatting: 8.2.2.1. Horizontal properties
shadow, adding to text: 10.3.2. text-shadow
shorthand hex notation: 3.1.2.4. Short hexadecimal colors
shorthand properties: 7.4.4. Shorthand Border Properties
background property: 6.2.6. Bringing It All Together
border property: 7.4.4. Shorthand Border Properties
font property: 5.5. Using Shorthand: The font Property
list-style property: 7.7.4. List Styles In Shorthand
shrink-wrapping content: 9.1.3.1. Setting width and height
shrinking text: 11.2.6. The Incredible Shrinking Text!
side-offset properties: 9.1.2. Side Offsets
sidebar: 11.1.2. Case 2: Library Catalog System Interface
images in: 6.2.2. Repeats with Direction
simulating class/ID selectors: 10.2.2.4. Simulating class and ID
single attribute values, matching: 10.2.2.3. Matching single attribute values
single quotation marks ( ): 5.1.3. Using Quotation Marks
single-side margin properties: 7.3.4. Single-Side Margin Properties
slanted text: 5.4.1. Fonts with Style
small-caps text: 5.4.2. Font Variations
sorting (cascade rules): 2.8. The Cascade
spaces separating keywords: 2.1.3. Declarations
2.1.3. Declarations
spacing: 4.1.4. Word Spacing and Letterspacing
alignment and: 4.1.4.3. Spacing, alignment, and font size
letter: 4.1.4.2. Letterspacing
speak properties: 10.7. Tables
special effects
background colors: 6.1.3. Special Effects
perfect alignment of backgrounds: 6.2.5.1. Interesting effects
text shadow: 10.3.2. text-shadow
specificity: 2.7. Specificity
inheritance and: 2.7.1. Inheritance and Specificity
specificity sorting: 2.8. The Cascade
speech-synthesis browsers: 1.1.1. What a Mess
1.1.1. What a Mess
10.8.2. The Spoken Word
stacking context: 9.5. Stacking Positioned Elements
stacking positioned elements: 9.5. Stacking Positioned Elements
sticky notes: 9.3. Absolute Positioning
stress property: 10.8.2. The Spoken Word
STRIKE element: 4.1.6. Text Decoration
strikethrough (see line-through)
structural languages: 1.2.6. Preparing for the Future
structural markup: 1.1.1. What a Mess
structure of rules: 2.1.1. Rule Structure
STYLE attribute: 1.4.6. Inline Styles
2.8. The Cascade
quotation marks and: 5.1.3. Using Quotation Marks
specificity and: 2.7.1. Inheritance and Specificity
style declarations: 1.4.4. Actual Styles
STYLE element: 1.4.2. The STYLE Element
style sheets
alternate, defining: 1.4.1.1. LINK attributes
cascading (see CSS)
consistency, achieving with: 11.1.1. Case 1: Consistent Look and Feel
document: 1.4.2. The STYLE Element
embedded: 1.4.2. The STYLE Element
external (see external style sheets)
ignored when not recognized: 1.4.4. Actual Styles
imported: 1.2.3. Using Your Styles on Multiple Pages
overriding styles in: 7.6.1.3. No floating at all
linking to HTML documents: 1.4.1. The LINK Tag
making concise through grouping: 2.2. Grouping
naming: 1.4.1. The LINK Tag
reader: 1.2.4. Cascading
styles: 1.4.4. Actual Styles
for borders: 7.4.1. Borders with Style
disappearing with Netscape Navigator: 11.2.10. Disappearing Styles
inline: 1.4.6. Inline Styles
using on multiple pages: 1.2.3. Using Your Styles on Multiple Pages
styling common elements: 11.2.4. Styling Common Elements
stylistic languages: 1.2.6. Preparing for the Future
subscript (SUB) element: 4.1.3. Vertical Alignment
subscripting: 4.1.3.2. Superscripting and subscripting
superscript (SUP) element: 4.1.3. Vertical Alignment
superscripting: 4.1.3.2. Superscripting and subscripting
SVG (Scalable Vector Graphics): 1.3.1. Limited Initial Scope

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: T

table cells
setting text color: 6.1.1. Foreground Colors
suppressing wrapping in: 4.1.1.3. Handling whitespace
table elements: 8.4. Inline Elements
tables: 1.3.1. Limited Initial Scope
10.7. Tables
avoiding: 7. Boxes and Borders
header/footer of: 10.7. Tables
tags: 1.4.2. The STYLE Element
ignored when not recognized: 1.4.4. Actual Styles
text
aligning
horizontally: 4.1.1.2. Aligning text
vertically: 4.1.3. Vertical Alignment
blinking: 4.1.6. Text Decoration
bold: 5.2.2. Getting Bolder
11.2.7. Preserving Boldness
capitalizing: 4.1.5. Text Transformation
cursive: 5.4.1. Fonts with Style
floating: 7.6.1. Floated Elements
8.3. Floated Elements
inclined: 5.4.1. Fonts with Style
indented: 4.1.1.1. Indenting text
11.1.3. Case 3: Putting a Magazine Article Online
italic: 5.4.1. Fonts with Style
justified: 4.1.1.2. Aligning text
11.1.3. Case 3: Putting a Magazine Article Online
kursiv: 5.4.1. Fonts with Style
lighter: 5.2.3. Lightening Weights
lowercase: 4.1.5. Text Transformation
oblique: 5.4.1. Fonts with Style
overlapping, preventing: 8.4.3. Managing the Line Height of Inline Elements
overlining: 4.1.6. Text Decoration
shadow, adding to: 10.3.2. text-shadow
shrinking: 11.2.6. The Incredible Shrinking Text!
slanted: 5.4.1. Fonts with Style
small-caps: 5.4.2. Font Variations
transforming: 4.1.5. Text Transformation
underlining: 4.1.6. Text Decoration
turned off by browsers: 4.1.6.1. Weird decorations
uppercase: 4.1.5. Text Transformation
upright: 5.4.1. Fonts with Style
whitespace in: 4.1.1.3. Handling whitespace
text-align property: 4.1.1.2. Aligning text
effect on word/letter spacing: 4.1.4.3. Spacing, alignment, and font size
tables and: 10.7. Tables
text-bottom alignment: 4.1.3.3. Bottom feeding
text/css value: 1.4.1.1. LINK attributes
1.4.2. The STYLE Element
text decoration: 4.1.6. Text Decoration
changing color of: 4.1.6.1. Weird decorations
combining decorations: 4.1.6. Text Decoration
turned off by browsers: 4.1.6.1. Weird decorations
text-decoration property: 4.1.6. Text Decoration
text-transform property and: 4.1.6.1. Weird decorations
vertical-align property and: 4.1.6.1. Weird decorations
text-indent property: 4.1.1.1. Indenting text
text-shadow property: 10.3.2. text-shadow
text-top alignment: 4.1.3.4. Getting on top
text-transform property: 4.1.5. Text Transformation
vs. font-variant property: 5.4.2. Font Variations
tilde (~) in selectors: 10.2.2.3. Matching single attribute values
tiling images: 6.2.1. Background Images
6.2.4. Repeats with Direction (Revisited)
time values: 3.5. CSS2 Units
TITLE attribute: 1.4.1.1. LINK attributes
title, stylized: 11.1.3. Case 3: Putting a Magazine Article Online
top alignment: 4.1.3.4. Getting on top
top property: 9.1.2. Side Offsets
transforming text: 4.1.5. Text Transformation
transparent keyword: 6.1.2. Background Color
tree view of HTML documents: 2.5. Structure
troubleshooting
disappearing styles: 11.2.10. Disappearing Styles
style sheets displayed in browsers: 1.4.4. Actual Styles
TYPE attribute: 1.4.1.1. LINK attributes

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: U

U element: 4.1.6. Text Decoration
UA (see user agent)
underlining: 4.1.6. Text Decoration
changing color of: 4.1.6.1. Weird decorations
removing from hyperlinks: 4.1.6. Text Decoration
turned off by browsers: 4.1.6.1. Weird decorations
Uniform Resource Identifier (URI): 3.5. CSS2 Units
Uniform Resource Locators (see URLs)
units: 11.1.3. Case 3: Putting a Magazine Article Online
(see also length units; CSS2 units)
for aural style sheets: 3.5. CSS2 Units
avoiding mixing: 11.1.3. Case 3: Putting a Magazine Article Online
color: 3.6. Summary
universal selector: 10.2.1.1. Universal selector
unordered lists: 7.7.1. Types of Lists
unvisited anchors: 2.4.1. Pseudo-Class Selectors
uppercase text: 4.1.5. Text Transformation
upright text: 5.4.1. Fonts with Style
URI (Uniform Resource Identifier): 3.5. CSS2 Units
URLs (Uniform Resource Locators): 3.4. URLs
HREF attribute and: 1.4.1.1. LINK attributes
referring to in style sheets: 3.4. URLs
specifying for images: 6.2.1. Background Images
user agent (UA): 2.2.2. Grouping Declarations
2.2.2. Grouping Declarations
(see also browsers)
users, selecting alternate style sheets: 1.4.1.2. Alternate style sheets

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: V

values: 2.1.1. Rule Structure
matching: 10.2.2.2. Value matching
new with CSS2: 10.9. Summary
replication: 7.4.1.1. Multiple styles
tag: 1.4.1.1. LINK attributes
unrecognized: 2.1.3. Declarations
variants, font (see fonts, variants)
vertical-align property: 4.1.3. Vertical Alignment
tables and: 10.7. Tables
vertical alignment: 4.1.3. Vertical Alignment
percentage values and: 4.1.3.6. Percentages
vertical formatting: 8.2.1. Vertical Formatting
VGA colors: 3.1.1. Named Colors
visibility: 9.1.5. Element Visibility
visibility property: 9.1.5. Element Visibility
tables and: 10.7. Tables
visited anchors: 2.4.1. Pseudo-Class Selectors
:visited pseudo-class: 2.4.1. Pseudo-Class Selectors
visual formatting: 8. Visual Formatting
block-level elements: 8.2. Block-Level Elements
element boxes: 8.1. Basic Boxes
floated elements: 8.3. Floated Elements
visual rendering model: 1.3.1. Limited Initial Scope
VLINK attribute: 2.4.1. Pseudo-Class Selectors
voice-family property: 10.8.2. The Spoken Word
voice-related properties: 10.8.2. The Spoken Word
volume property: 10.8.2. The Spoken Word
VSPACE attribute: 8.1. Basic Boxes

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: W

warning text
boldface, setting: 2.3. Class and ID Selectors
color, setting: 6.1.1. Foreground Colors
W3C (World Wide Web Consortium): 1.2. CSS to the Rescue
web browsers (see browsers)
web-safe colors: 3.1.2.6. Web-safe colors
weight sorting: 2.8. The Cascade
whitespace
greater-than symbol (>) and: 10.2.1.2. Child selector
handling: 4.1.1.3. Handling whitespace
ignored in style sheets: 2.2.2. Grouping Declarations
white-space property: 4.1.1.3. Handling whitespace
widows property: 10.8.1. Paged Media
width
block-level elements: 8.2.2. Horizontal Formatting
borders: 7.4.2. Border Widths
elements: 7.1. Basic Element Boxes
floating text, declaring for: 7.6.1. Floated Elements
limiting via min-max properties: 9.1.3.2. Limiting width and height
positioning and: 9.1.3. Width and Height
width property: 7.1. Basic Element Boxes
9.1.3.1. Setting width and height
Windows VGA colors: 3.1.1. Named Colors
word spacing: 4.1.4. Word Spacing and Letterspacing
word-spacing property: 4.1.4.1. Word spacing
alignment and: 4.1.4.3. Spacing, alignment, and font size
World Wide Web Consortium (W3C): 1.2. CSS to the Rescue

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: X

x-height: 3.2.2.1. em and ex units
XML (Extensible Markup Language): 1.2.6. Preparing for the Future
display property and: 2.9.1. Why Does the display Property Exist?
selectors in: 2.1.2. Simple Selectors

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: Y

There are no index entries for this letter.

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Index: Z

z-axis: 9.5. Stacking Positioned Elements
z-index property: 9.5. Stacking Positioned Elements

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


Cascading Style Sheets Search Page

Full Text Search

If you are having difficulty searching, or if you have not used this search utility before, please read this.

Library Navigation Links

Copyright © 2002 O'Reilly & Associates, Inc. All Rights Reserved.


The Web Design CD Bookshelf: Master Index

 Book Home The Web Design CD BookshelfSearch this CD

Master Index

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: 0

/* */ comment markers: 14.3. Comments (ActionScript: The Definitive Guide)
- (hyphen), using attributes with: 8.2.3. Attributes (Web Design in a Nutshell)
+= add-and-reassign operator: 4.6.1. Joining Strings Together (ActionScript: The Definitive Guide)
[ ] array-element/object-property operator: 5.11.5. Array-Element/Object-Property Operator (ActionScript: The Definitive Guide)
11.3.2. Array Literals (ActionScript: The Definitive Guide)
creating references dynamically: 13.5.6.1. Using the array-element access operator (ActionScript: The Definitive Guide)
referring to object properties: 12.3.1. Referring to Properties (ActionScript: The Definitive Guide)
* asterisk: 10.2.1.1. Universal selector (Cascading Style Sheets: The Definitive Guide)
* (asterisk) for relative frameset sizes: 14.3.2.1. Specifying sizes (Web Design in a Nutshell)
16-bit character encoding: 7.1.2. 16-Bit Encoded Character Sets (Web Design in a Nutshell)
24-bit color: 20.1. 24-Bit Color (Web Design in a Nutshell)
16-bit displays: 22.1. Designing with Web-Safe Colors (Web Design in a Nutshell)
8-bit indexed color: 19.2. 8-Bit Indexed Color (Web Design in a Nutshell)
8-bit palette images: 21.4.1. 8-Bit Palette Images (Web Design in a Nutshell)
8-bit transparency: 21.6.3.2. 8-bit transparency (Web Design in a Nutshell)
~ bitwise NOT operator: 15.2.4. Bitwise NOT (ActionScript: The Definitive Guide)
|= bitwise OR assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
| bitwise OR operator: 15.2.2. Bitwise OR (ActionScript: The Definitive Guide)
^= bitwise XOR assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
^ bitwise XOR operator: 15.2.3. Bitwise XOR (ActionScript: The Definitive Guide)
: (colon): 8.2.3. Attributes (Web Design in a Nutshell)
pseudo-selectors (style sheets): 17.3.4. Pseudo-Selectors (Web Design in a Nutshell)
style sheet declarations: 17.2.1. Rule Syntax (Web Design in a Nutshell)
, comma
in clip property: 9.1.4.2. Overflow clipping (Cascading Style Sheets: The Definitive Guide)
separating selectors: 2.2.1. Grouping Selectors (Cascading Style Sheets: The Definitive Guide)
(comma) operator: 5.9. The Comma Operator (ActionScript: The Definitive Guide)
// comment markers: 14.3. Comments (ActionScript: The Definitive Guide)
?: conditional operator: 5.11.7. The conditional Operator (ActionScript: The Definitive Guide)
7.2.1. The Conditional Operator (ActionScript: The Definitive Guide)
{} curly braces (object initializers/statement block delimiters): 1.2.4. Modular Code (Functions) (ActionScript: The Definitive Guide)
6.2.1. Statement Blocks (ActionScript: The Definitive Guide)
3-D shading of horizontal rules: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.4.4. Turning Off 3-D Shading (Web Design in a Nutshell)
decrement operator: 5.3.4. Decrement (ActionScript: The Definitive Guide)
/= division assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
/ division operator: 4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.6. Division (ActionScript: The Definitive Guide)
. dot operator: 5.11.6. The dot Operator (ActionScript: The Definitive Guide)
accessing movie clip properties: 13.1. The "Objectness" of Movie Clips (ActionScript: The Definitive Guide)
accessing object properties: 12.3.1. Referring to Properties (ActionScript: The Definitive Guide)
traversing clip instance hierarchy: 13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
double quotation marks: 1.4.6. Inline Styles (Cascading Style Sheets: The Definitive Guide)
curly, in generated content: 10.4. Generated Content (Cascading Style Sheets: The Definitive Guide)
in font-family declarations: 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
"" double quotes in strings: 4.5.2. String Literals (ActionScript: The Definitive Guide)
= (equal sign), using attributes: 8.2.3. Attributes (Web Design in a Nutshell)
== equality operator (Flash 5): operators (ActionScript: The Definitive Guide) 4.6.2.1. Using the equality (==) and inequality (!=)
5.4. The Equality and Inequality Operators (ActionScript: The Definitive Guide)
= (equals sign) assignment operator: 5.2. The Assignment Operator (ActionScript: The Definitive Guide)
/ forward slash: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
font property and: 5.5.1. Adding the Line Height (Cascading Style Sheets: The Definitive Guide)
# (hash mark)
for ID selectors: 17.3.3.2. id selector (Web Design in a Nutshell)
in pathnames: 11.3.2. Linking to a fragment (Web Design in a Nutshell)
++ increment operator: 5.3.2. Increment (ActionScript: The Definitive Guide)
in do-while loops: 8.3. The do-while Loop (ActionScript: The Definitive Guide)
!= inequality operator (Flash 5): operators (ActionScript: The Definitive Guide) 4.6.2.1. Using the equality (==) and inequality (!=)
5.4.4. The Inequality Operator (ActionScript: The Definitive Guide)
! logical NOT operator (Flash 5): 5.7.3. Logical NOT (ActionScript: The Definitive Guide)
|| logical OR operator (Flash 5): 5.7.1. Logical OR (ActionScript: The Definitive Guide)
(minus) subtraction operator: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.3. Subtraction (ActionScript: The Definitive Guide)
%= modulo assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
% modulo operator: 5.3.7. Modulo Division (ActionScript: The Definitive Guide)
*= multiplication assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
* multiplication operator: 4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.5. Multiplication (ActionScript: The Definitive Guide)
# octothorpe: 2.3.2. ID Selectors (Cascading Style Sheets: The Definitive Guide)
( ) parentheses
assigning vs. invoking methods: 12.4. Methods (ActionScript: The Definitive Guide)
function call operator: 5.11.8. The Function Call Operator (ActionScript: The Definitive Guide)
9.2. Running Functions (ActionScript: The Definitive Guide)
12.4. Methods (ActionScript: The Definitive Guide)
grouping operator: 5.8. The Grouping Operator (ActionScript: The Definitive Guide)
operator precedence and: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
% (percent sign)
color equivalents: 3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
font sizes: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
percentage sizes for framesets: 14.3.2.1. Specifying sizes (Web Design in a Nutshell)
SSI time formats: 18.8. Time Formats for SSI Output (Web Design in a Nutshell)
table dimensions: 13.4.4.1. Table dimensions (Web Design in a Nutshell)
. (period): 2.3.1. Class Selectors (Cascading Style Sheets: The Definitive Guide)
in automatic numbering: 10.4.1. Automatic Numbering (Cascading Style Sheets: The Definitive Guide)
+ (plus) addition operator: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.1. Addition (ActionScript: The Definitive Guide)
converting data to strings: 3.4.2.3. Converting to a string with empty string concatenation (ActionScript: The Definitive Guide)
; (semicolon): 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
2.2.2. Grouping Declarations (Cascading Style Sheets: The Definitive Guide)
missing: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
terminating statements with: 1.1.4. The Wizard Behind the Curtain (the Interpreter) (ActionScript: The Definitive Guide)
6.2. Statement Syntax (ActionScript: The Definitive Guide)
9.2. Running Functions (ActionScript: The Definitive Guide)
(ActionScript: The Definitive Guide) 14.2. Statement Terminators (Semicolons)
' (single quotation marks): 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
in strings: 4.5.2. String Literals (ActionScript: The Definitive Guide)
/ (slash): 8.2.1. Containers (Web Design in a Nutshell)
in ending tags: 2.3.1. Start and End Tags (HTML & XHTML: The Definitive Guide)
in URLs\: 15.3.3. Encoding (Web Design in a Nutshell)
relative pathnames, using: 4.2.2.1. Using relative pathnames in HTML (Web Design in a Nutshell)
in URLs: 4.1.2.2. Index files (Web Design in a Nutshell)
4.2. Unix Directory Structures (Web Design in a Nutshell)
6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
|= symbols: 10.2.2.5. Matching hyphenated values (Cascading Style Sheets: The Definitive Guide)
~ tilde: 10.2.2.3. Matching single attribute values (Cascading Style Sheets: The Definitive Guide)
unary negation operator: 5.3.8. Unary Negation (ActionScript: The Definitive Guide)
_ (underscore): 8.2.3. Attributes (Web Design in a Nutshell)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: A

<a> (anchor) tag: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
linking to audio files: 24.7.1. A Simple Link (Web Design in a Nutshell)
24.7.3.1. Linking to RealMedia (external player) (Web Design in a Nutshell)
pseudo-classes with: 17.3.4.2. Pseudo-classes (Web Design in a Nutshell)
WML programming and: 32.3.3. Adding Links (Web Design in a Nutshell)
32.4. WML Elements and Attributes (Web Design in a Nutshell)
<abbr> (abbreviation) tag: 6.2.1. HTML 4.01 Features (Web Design in a Nutshell)
4.4.1. The <abbr> Tag (HTML & XHTML: The Definitive Guide)
10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
abbr attribute: 13.1. Summary of Table Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
10.2.4.12. The abbr attribute (HTML & XHTML: The Definitive Guide)
above attribute ( ): 14.3.1.3. The above, below, and z-index attributes (HTML & XHTML: The Definitive Guide)
'above the fold' design: 2.3. Designing "Above the Fold" (Web Design in a Nutshell)
abs( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
absbottom, absmiddle values: 5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
(see also alignment)
absbottom/absmiddle values (align): 12.3.4. Vertical Alignment (Web Design in a Nutshell)
absolute
font sizes: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
pathnames: 4.2.1. Absolute Pathnames (Web Design in a Nutshell)
positioning (style sheets): 17.6.1.2. Absolute positioning (Web Design in a Nutshell)
URLs: 11.2.1. Absolute URLs (Web Design in a Nutshell)
absolute font size: 4.6.3.1. The size attribute (HTML & XHTML: The Definitive Guide)
absolute font sizes: 5.3.1. Absolute Sizes (Cascading Style Sheets: The Definitive Guide)
absolute length units: 3.2.1. Absolute Length Units (Cascading Style Sheets: The Definitive Guide)
absolute paths of clips: function (ActionScript: The Definitive Guide) 13.5.6.6. The targetPath( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
absolute positioning: 9.3. Absolute Positioning (Cascading Style Sheets: The Definitive Guide)
absolute references: 2.5.6.1. The _root and _ parent properties (ActionScript: The Definitive Guide)
13.5.4.1. Referencing the current level's main movie using _root (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
absolute URLs: 3.4. URLs (Cascading Style Sheets: The Definitive Guide)
2.7.1. URLs (HTML & XHTML: The Definitive Guide)
6.2.11. Absolute and Relative URLs (HTML & XHTML: The Definitive Guide)
base and relative URLs, combining to form: 6.2.11.1. Relative schemes and servers (HTML & XHTML: The Definitive Guide)
absolute web page control
frame resize, disabling: 14.4.3. Disabling Resize (Web Design in a Nutshell)
frameset sizes: 14.3.2.1. Specifying sizes (Web Design in a Nutshell)
table dimensions: 13.4.4.1. Table dimensions (Web Design in a Nutshell)
two-column layout (example): 13.7.5.2. Fixed-width columns (Web Design in a Nutshell)
abstract keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
AC line noise: 6.3. Professional webcasting (Designing Web Audio)
accept attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.1. Summary of Form Tags (Web Design in a Nutshell)
accept attribute ( ): 9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
accept-charset attribute ( ): 7.1.3. Specifying Character Encoding (Web Design in a Nutshell)
15.1. Summary of Form Tags (Web Design in a Nutshell)
15.5. New Form Attributes in HTML 4.01 (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
9.2.3. The accept-charset Attribute (HTML & XHTML: The Definitive Guide)
accept value for WML type attribute: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
tag (WML): 32.4. WML Elements and Attributes (Web Design in a Nutshell)
accessibility: 6. Accessibility (Web Design in a Nutshell)
internationalization: 7. Internationalization (Web Design in a Nutshell)
accesskey attribute: 6.3.1.12. The accesskey and tabindex attributes (HTML & XHTML: The Definitive Guide)
9.9.5. The accesskey Attribute (HTML & XHTML: The Definitive Guide)
9.10.2.2. The <legend> tag (HTML & XHTML: The Definitive Guide)
accesskey attribute ( ): 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
15.5. New Form Attributes in HTML 4.01 (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
accessories, sound studio: A.3. Sound studio accessories (Designing Web Audio)
audio plug-ins and utilities: A.3.5. Audio plug-ins and utilities (Designing Web Audio)
cables: A.3.2. High-quality cables (Designing Web Audio)
disk repair and optimization utilities: A.3.4. Disk repair and optimization utilities (Designing Web Audio)
headphones: A.3.1. Headphones (Designing Web Audio)
pop screens: A.3.6. Pop screens (Designing Web Audio)
sound libraries: A.3.3. Sound libraries (Designing Web Audio)
AceFTP utility: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
acos( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
acoustic foam, reducing reflections with: 3.2.1.2. Optimizing your recording environment (Designing Web Audio)
acoustic instruments, recording: 3.1.1.3. Condenser microphones (Designing Web Audio)
3.1.3. Mixers (Designing Web Audio)
acoustics, studio: 3.2.1.1. Proper room acoustics: capturing a "dry" signal (Designing Web Audio)
Acrobat Reader: 5.4.1. Viewing PDF Files (Web Design in a Nutshell)
<acronym> tags: 4.4.2. The <acronym> Tag (HTML & XHTML: The Definitive Guide)
action attribute: 6.6.1.3. The action attribute (HTML & XHTML: The Definitive Guide)
9.2.1. The action Attribute (HTML & XHTML: The Definitive Guide)
action attribute ( ): 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.3.1. The action Attribute (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
action buttons (forms): 9.5.4. Action Buttons (HTML & XHTML: The Definitive Guide)
action, driving with music: 1.6. Solid sound design (Designing Web Audio)
Actions
vs. functions: 9.10. Internal Functions (ActionScript: The Definitive Guide)
vs. statements: 6.4. Statements Versus Actions (ActionScript: The Definitive Guide)
Actions panel
editing modes: 16.1.1. Editing Modes (ActionScript: The Definitive Guide)
setting: 16.1.1.3. Setting the editing mode (ActionScript: The Definitive Guide)
Expert Mode: 16.1.1.2. Expert Mode (ActionScript: The Definitive Guide)
method vs. global function overlap: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
Normal Mode: 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
not backward compatible: 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
switching from Expert Mode: 16.1.1.3. Setting the editing mode (ActionScript: The Definitive Guide)
opening: 1.1.1. Creating Code (ActionScript: The Definitive Guide)
Parameters pane: 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
Script pane: 16.1. The Actions Panel (ActionScript: The Definitive Guide)
adding code to buttons: 16.3. Adding Scripts to Buttons (ActionScript: The Definitive Guide)
adding statements to: 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
techniques for locating code: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
Toolbox pane: 16.1. The Actions Panel (ActionScript: The Definitive Guide)
ActionScript: 5.5. Flash Printing (Web Design in a Nutshell)
26. Flash and Shockwave (Web Design in a Nutshell)
26.2.1. ActionScript (Web Design in a Nutshell)
arguments (see arguments)
arrays in Lingo and C vs.: 11.2.3. Array Size (ActionScript: The Definitive Guide)
audio content control: 0.1.3. Visual and Audio Content Control (ActionScript: The Definitive Guide)
authoring environment (see authoring environment)
backward-compatibility issues: C. Backward Compatibility (ActionScript: The Definitive Guide)
base class of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
case sensitivity in: 14.6. Case Sensitivity (ActionScript: The Definitive Guide)
19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
color, programming: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
communicating with JavaScript: 18.5.7. < A> (Anchor or Hypertext Link) (ActionScript: The Definitive Guide)
18.5.13. Executing JavaScript from HTML Links (ActionScript: The Definitive Guide)
fscommand( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getURL( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
conditionals (see conditionals)
datatypes (see datatypes)
differences among EMCA-262, JavaScript, and: D. Differences from ECMA-262 and JavaScript (ActionScript: The Definitive Guide)
disengaging autopilot: 1.1.2. Say Hi to Flash (ActionScript: The Definitive Guide)
escape sequences in: 4.5.2.2. Escape sequences (ActionScript: The Definitive Guide)
event-based execution model: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
10.2. Event-Based AsynchronousCode Execution (ActionScript: The Definitive Guide)
expressions (see expressions)
functions (see functions)
identifiers, rules for composing: 14.5. Identifiers (ActionScript: The Definitive Guide)
importing text of external files: 16.7.2. #include (Compile-Time Import) (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
interactivity in: 0.1.2. Interactivity (ActionScript: The Definitive Guide)
interpreter
categorizing data: 3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
converting data: 3.4. Datatype Conversion (ActionScript: The Definitive Guide)
5.4.3. Equality and Datatype Conversion (ActionScript: The Definitive Guide)
deallocating local variables: 2.5.8. Local Variables (ActionScript: The Definitive Guide)
executing code synchronously: 10.1. Synchronous Code Execution (ActionScript: The Definitive Guide)
statement terminators and: 14.2. Statement Terminators (Semicolons) (ActionScript: The Definitive Guide)
using the scope chain: 9.7.1. The Scope Chain (ActionScript: The Definitive Guide)
language reference: 20. ActionScript Language Reference (ActionScript: The Definitive Guide)
lexical structure of: 14. Lexical Structure (ActionScript: The Definitive Guide)
loops (see loops)
maximum/minimum values: 4.3.3.2. Minimum and maximum allowed values: MIN_VALUE and MAX_VALUE (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
operators (see operators)
programming, introduction to: 1. A Gentle Introduction for Non-Programmers (ActionScript: The Definitive Guide)
reserved words: 14.4. Reserved Words (ActionScript: The Definitive Guide)
resources: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
scripts (see scripts)
server communication: 0.1.5. Server Communication (ActionScript: The Definitive Guide)
sound, controlling: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
statements (see statements)
timeline control: 0.1.1. Timeline Control (ActionScript: The Definitive Guide)
variables (see variables)
visual content control: 0.1.3. Visual and Audio Content Control (ActionScript: The Definitive Guide)
vs. Java property equivalencies: 12.5.4.5. Comparing Java terminology (ActionScript: The Definitive Guide)
web sites using: 0.3. Showcase (ActionScript: The Definitive Guide)
ActionSets, Beatnik: 11.2.2. Beatnik Audio Engine (Designing Web Audio)
active hyperlink color: 11.4.1. Setting Colors in <body> (Web Design in a Nutshell)
:active pseudo-class: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
support for: 2.4.1.1. Real-world issues (Cascading Style Sheets: The Definitive Guide)
Active Server Pages (ASP): 4.1.3.2. ASP (Active Server Pages) (Web Design in a Nutshell)
Active Server Pages (ASP) resources: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
Active Streaming File (ASF): 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
ActiveX controls: placing into ASF stream: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
embedding in HTML pages: 6.4.2.2. Note of caution (Designing Web Audio)
ActiveX technology: 12.1.1.4. Writing applets (HTML & XHTML: The Definitive Guide)
ad hoc navigation: 4.4.4. Ad Hoc Navigation (Information Architecture for the World Wide Web)
Adaptive Palette: 22.2. Converting to the Web Palette (Web Design in a Nutshell)
animating GIFs: 23.5.4. Color Palette (Web Design in a Nutshell)
addition (+) operator: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.1. Addition (ActionScript: The Definitive Guide)
converting data to strings: 3.4.2.3. Converting to a string with empty string concatenation (ActionScript: The Definitive Guide)
addresses: 4.9. Addresses (HTML & XHTML: The Definitive Guide)
IP addresses: 1.2. Talking the Internet Talk (HTML & XHTML: The Definitive Guide)
6.2.2.1. The http server (HTML & XHTML: The Definitive Guide)
XML DTD, defining for: 15.7.1. An XML Address DTD (HTML & XHTML: The Definitive Guide)
adjacent-sibling selectors: 10.2.1.3. Adjacent-sibling selector (Cascading Style Sheets: The Definitive Guide)
11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
adjacet selectors: 8.2.4. Universal, Child, and Adjacent Selectors (HTML & XHTML: The Definitive Guide)
Adobe: 9.2. Introduction to Flash (Designing Web Audio)
Embedded OpenType: 3.2.4. Embedded Fonts (Web Design in a Nutshell)
GoLive: 1.3.5. Take Advantage of Tools (Web Design in a Nutshell)
8.6.2.2. Some available web authoring tools (Web Design in a Nutshell)
Cyberstudio: 2.2.2.3. Creating fixed pages (Web Design in a Nutshell)
Illustrator: 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
ImageReady (see ImageReady)
PDF files and: 5.4.2. Creating PDF Files (Web Design in a Nutshell)
Photoshop (see Photoshop)
Adobe GoLive: 11.2.2. Beatnik Audio Engine (Designing Web Audio)
Advanced Mode dialog window, RealEncoder: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
Advanced Research Projects Agency (ARPA): 1.1.1. In the Beginning (HTML & XHTML: The Definitive Guide)
Advanced Streaming Format: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
aesthetics: 1.2.2.1. Aesthetics (Information Architecture for the World Wide Web)
:after pseudo-element: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes (Cascading Style Sheets: The Definitive Guide)
generated content: 10.4. Generated Content (Cascading Style Sheets: The Definitive Guide)
Aftershock utility: 1.5. Audio challenges and limitations (Designing Web Audio)
9.1. Flash and Shockwave basics (Designing Web Audio)
AIFF (.aif, .aiff) file format: 24.5.1. WAV/AIFF (.wav, .aif, .aiff) (Web Design in a Nutshell)
AIFF file format
capabilities overview: NaN.10. WAV and AIFF (Designing Web Audio)
compression: 1.7.1.1. Capturing narration (Designing Web Audio)
converting: 6.3.2. Using the RealEncoder (Designing Web Audio)
speech, encoding: 5.1.1. Lossy compression (Designing Web Audio)
AKG microphones
ELA M251 vintage microphone: 3.1.4. Compressors/limiters (Designing Web Audio)
album clips: 1.2. What you can do with sound on the Web (Designing Web Audio)
Alesis equipment
processors
3630 Stereo compressor/limiter: A.2.3.2. Budget option (Designing Web Audio)
Microverb Reverb: A.2.10.2. Budget option (Designing Web Audio)
Q2 Reverb: A.2.10.2. Budget option (Designing Web Audio)
synthesizers
QS6 Synth: A.2.6.2. Budget option (Designing Web Audio)
Quadrasynth Plus: 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
aliasing: 19.7.1. Preventing "Halos" (Web Design in a Nutshell)
align attribute: 10.1.1. Paragraphs and Headings (Block-Level Elements) (Web Design in a Nutshell)
10.7.3.1. The align attribute (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
WML programming and: 32.3.2. Formatting Text (Web Design in a Nutshell)
aligning text: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
4.1.3. Vertical Alignment (Cascading Style Sheets: The Definitive Guide)
alignment: 2.3. Designing "Above the Fold" (Web Design in a Nutshell)
9.11.5. Good Form, Old Chap (HTML & XHTML: The Definitive Guide)
tags: 4.7.6. The <center> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
centering in window (example): 13.7.2. Centering an Object in the Browser Window (Web Design in a Nutshell)
CSS2 accessibility features for: 6.2.2. CSS2 Features (Web Design in a Nutshell)
form elements: 15.6.2. Aligning Form Elements (Web Design in a Nutshell)
9.10.2.2. The <legend> tag (HTML & XHTML: The Definitive Guide)
9.11.5. Good Form, Old Chap (HTML & XHTML: The Definitive Guide)
frames: 11.6.1.1. The align attribute (HTML & XHTML: The Definitive Guide)
graphics: 12.3.4. Vertical Alignment (Web Design in a Nutshell)
headings: 4.2.1.1. The align attribute (HTML & XHTML: The Definitive Guide)
horizontal rules: 12.4.3. Rule Alignment (Web Design in a Nutshell)
5.1.1.4. The align attribute (HTML & XHTML: The Definitive Guide)
image buttons (forms): 9.5.4.3. Custom image buttons (HTML & XHTML: The Definitive Guide)
images: 2.8.1. Inline Images (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
5.2.6.6. Centering an image (HTML & XHTML: The Definitive Guide)
layers: 14.3.1.2. The left and top attributes (HTML & XHTML: The Definitive Guide)
14.3.2.1. The top and left attributes (HTML & XHTML: The Definitive Guide)
right and left: 10.7.4. Right and Left Alignment (Web Design in a Nutshell)
sections: 4.1.1.1. The align attribute (HTML & XHTML: The Definitive Guide)
style sheet properties for: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
17.5.2. Box Properties (Web Design in a Nutshell)
table captions: 10.2.5.1. The align and valign attributes (HTML & XHTML: The Definitive Guide)
table cell contents: 10.2.1.10. The valign and nowrap attributes (HTML & XHTML: The Definitive Guide)
10.2.4.1. The align and valign attributes (HTML & XHTML: The Definitive Guide)
table rows: 10.2.3.1. The align and valign attributes (HTML & XHTML: The Definitive Guide)
tables: 13.2. Introduction to Tables (Web Design in a Nutshell)
13.4.2. Positioning a Table on the Page (Web Design in a Nutshell)
(HTML & XHTML: The Definitive Guide) 10.2.1.1. The align attribute (deprecated)
text: 8.4.5.3. The text-align property (HTML & XHTML: The Definitive Guide)
8.4.5.7. The vertical-align property (HTML & XHTML: The Definitive Guide)
in marquees: 5.5.1.1. The align attribute (HTML & XHTML: The Definitive Guide)
paragraphs: 4.1.2.2. The align attribute (HTML & XHTML: The Definitive Guide)
text elements: 10.7.3. Centering Text Elements (Web Design in a Nutshell)
whitespace blocks: 14.1.1.3. Creating blocks of space (HTML & XHTML: The Definitive Guide)
ALINK attribute: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
alink attribute ( ): 5.3.1.5. The link, vlink, and alink attributes (HTML & XHTML: The Definitive Guide)
all media type, connecting style sheet and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
all properties (CSS2 values): 17.7.6. New Values for Existing Properties (Web Design in a Nutshell)
all value (clear attribute): 12.3.5.2. Stopping text wrap (Web Design in a Nutshell)
all value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
allowscale command (standalone Player): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
alpha channel: 21.6.3.1. Alpha channel transparency (Web Design in a Nutshell)
Alpha component for colors: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_alpha property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
alphabetic comparisons: 4.6.2.2. Character order and alphabetic comparisons (ActionScript: The Definitive Guide)
alphabetical organization: 3.2.1.1.1. Alphabetical (Information Architecture for the World Wide Web)
6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
alt attribute: B. List of Attributes (Web Design in a Nutshell)
5.2.6.3. The alt and longdesc attributes (HTML & XHTML: The Definitive Guide)
6.5.4.1. The alt attribute (HTML & XHTML: The Definitive Guide)
12.2.3.3. The alt attribute (HTML & XHTML: The Definitive Guide)
alternate style sheets: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
alternate value (marquee behavior): 5.5.1.2. The behavior, direction, and loop attributes (HTML & XHTML: The Definitive Guide)
alternative graphics text: 6.1.3. The Techniques (Web Design in a Nutshell)
12.3.2. Alternative Text (Web Design in a Nutshell)
Amazon.com: 8.8. MP3 resources (Designing Web Audio)
ambient sound loops: 1.7.1.1. Capturing narration (Designing Web Audio)
definition of: 12. Glossary (Designing Web Audio)
field recordings of: 3.1.1.4. Lavaliere clip-on microphones (Designing Web Audio)
3.2.2.3. Capturing ambient sounds (Designing Web Audio)
music, designing: 1.7.3. Designing music loops (Designing Web Audio)
loops vs. sound effects: 1.7.3.1. Sound loops versus repetitive sound effects (Designing Web Audio)
mixing: 1.7.3.2. Good ambient loop mixing (Designing Web Audio)
optimum length: 1.7.3.3. Optimum loop length (Designing Web Audio)
seamless: 1.7.3.5. Building seamless music loops (Designing Web Audio)
music, use in: 1.7. Designing web audio (Designing Web Audio)
9.2. Introduction to Flash (Designing Web Audio)
seamless loops, creating: 1.7.3.4. Sound loop tutorial: creating seamless loops with a sound editor (Designing Web Audio)
sound effects, compared to: 1.7.3.1. Sound loops versus repetitive sound effects (Designing Web Audio)
ambiguity: 3.1.1. Ambiguity (Information Architecture for the World Wide Web)
3.2.1.2. Ambiguous organization schemes (Information Architecture for the World Wide Web)
America Online (AOL), designing for browsers and: 1.1.2.2. America Online (Web Design in a Nutshell)
& (ampersand)
entities: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
3.5.2. Character Entities (HTML & XHTML: The Definitive Guide)
12.3.5. JavaScript Entities (HTML & XHTML: The Definitive Guide)
in form name=value pairs: 15.3.2. The method Attribute (Web Design in a Nutshell)
in URLs: 9.2.4.2. Passing parameters explicitly (HTML & XHTML: The Definitive Guide)
XHTML, handling in: 16.3.7. Handling Special Characters (HTML & XHTML: The Definitive Guide)
XML character entity: 30.3.1. Well-Formed XML (Web Design in a Nutshell)
& (ampersand) concatenation operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
&= bitwise AND assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
& bitwise AND operator: 15.2.1. Bitwise AND (ActionScript: The Definitive Guide)
&& logical AND operator (Flash 5): 5.7.2. Logical AND (ActionScript: The Definitive Guide)
ampersand (&)
entities: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
3.5.2. Character Entities (HTML & XHTML: The Definitive Guide)
12.3.5. JavaScript Entities (HTML & XHTML: The Definitive Guide)
in form name=value pairs: 15.3.2. The method Attribute (Web Design in a Nutshell)
in URLs: 9.2.4.2. Passing parameters explicitly (HTML & XHTML: The Definitive Guide)
in XHTML: 16.3.7. Handling Special Characters (HTML & XHTML: The Definitive Guide)
XML character entity: 30.3.1. Well-Formed XML (Web Design in a Nutshell)
ampersand (&) concatenation operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
amplify/gain command: 4.3.2. Compression: reducing sound peaks and spikes (Designing Web Audio)
amplitude
adjusting: 6.3. Professional webcasting (Designing Web Audio)
level: 4.3.3. Equalization: customizing your sound (Designing Web Audio)
reduction: 4.1.3.2. Amplitude reduction (Designing Web Audio)
&nbsp; (space character): 10.7.1. Preformatted Text (Web Design in a Nutshell)
10.8. Character Entity References (Web Design in a Nutshell)
analog
converting to digital
better sound cards: 6.6.2. Capturing live audio with the RealEncoder (Designing Web Audio)
eliminating DC offset: 6.3. Professional webcasting (Designing Web Audio)
distortion: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
tape reels, cost of: 3.1.6. DAT recorders (Designing Web Audio)
waveforms: 2.2. Digital audio demystified (Designing Web Audio)
analog-style clock, building: 13.9.1. Building a Clock with Clips (ActionScript: The Definitive Guide)
Anarchie utility: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
ancestors: 2.5. Structure (Cascading Style Sheets: The Definitive Guide)
anchor tags (HTML support in text fields): 18.5.7. < A> (Anchor or Hypertext Link) (ActionScript: The Definitive Guide)
calling ActionScript functions from: 18.5.14. Calling ActionScript Functions from HTML Links (ActionScript: The Definitive Guide)
executing JavaScript from: 18.5.13. Executing JavaScript from HTML Links (ActionScript: The Definitive Guide)
not added to tab order: 18.5.8. Anchor Tag Tab Order (ActionScript: The Definitive Guide)
anchors: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
2.7.2. Anchors (HTML & XHTML: The Definitive Guide)
6.1. Hypertext Basics (HTML & XHTML: The Definitive Guide)
and (logical AND) operator (Flash 4): 14.4. Reserved Words (ActionScript: The Definitive Guide)
(angle brackets): 8.2. HTML Tags (Web Design in a Nutshell)
angle brackets ( ): 8.2. HTML Tags (Web Design in a Nutshell)
angle values: 3.5. CSS2 Units (Cascading Style Sheets: The Definitive Guide)
animation: 5.2.3. QuickTime (Designing Web Audio)
23. Animated GIFs (Web Design in a Nutshell)
creating: 23.5. Creating Animated GIFs (Web Design in a Nutshell)
frame-by-frame (GIF): 5.2.1.2. Interlacing, transparency, and animation (HTML & XHTML: The Definitive Guide)
GIF format for: 19.4. When to Use GIFs (Web Design in a Nutshell)
GIF87a vs. GIF89a: 19.1. GIF87a Versus GIF89a (Web Design in a Nutshell)
Java applets (see Java applets)
multipart images in tables: 13.8. Multipart Images in Tables (Web Design in a Nutshell)
optimizing file sizes: 23.6. Optimizing Animated GIFs (Web Design in a Nutshell)
slide-show effects: 9.4.1.1. Meta tags for client-pull (Web Design in a Nutshell)
of text: 5.5. Animated Text (HTML & XHTML: The Definitive Guide)
vector (Macromedia Flash), streaming in RealSystem G2: 7.5. RealFlash (Designing Web Audio)
Animation compressor: 25.2.3. Video Codecs (Web Design in a Nutshell)
Animation Shop tool: 23.4.1. Applications That Include GIF Animation Tools (Web Design in a Nutshell)
animation, timed: 8.7.3. Frame Rate's Effect on Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
annotated lists (see definition lists)
announcement boxes (example): 13.7.1. A Simple Announcement Box (Web Design in a Nutshell)
anonymous FTP: 6.2.4.1. The ftp user and password (HTML & XHTML: The Definitive Guide)
Antares Systems: 1.7.3. Designing music loops (Designing Web Audio)
anti-aliasing: 19.7.1. Preventing "Halos" (Web Design in a Nutshell)
text: 3.4.4.3. Use anti-aliased text (Web Design in a Nutshell)
anti-piracy protections: 5.2.7. Liquid Audio (Designing Web Audio)
antialiasing
approximating fractional _x values: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
embedded fonts in text fields: 18.3.7. Embed Fonts (ActionScript: The Definitive Guide)
scrolling text fields: 18.4.3. Typical Text-Scrolling Code (ActionScript: The Definitive Guide)
AOL (America Online), designing for browsers and: 1.1.2.2. America Online (Web Design in a Nutshell)
Apache: 8.5.1. Creating your own MP3 site (Designing Web Audio)
Apache servers: 4.1.1. Popular Server Software (Web Design in a Nutshell)
Aphex 107 mic pre-amp: A.2.2.2. Budget option (Designing Web Audio)
appearance of text (see text)
appendChild( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Apple QuickTime: 24.4. Streaming Audio (Web Design in a Nutshell)
24.5.3. Apple QuickTime Audio (.mov) (Web Design in a Nutshell)
25.3.1. QuickTime Movie (.mov) (Web Design in a Nutshell)
Sorenson codec: 25.2.3. Video Codecs (Web Design in a Nutshell)
Apple Worldwide Developer Relations Group: 10.3. Creating your own MIDI files (Designing Web Audio)
AppleScript, batch-encoding audio files: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
<applet> tags: 12.2.3. The <applet> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
12.3.6. The <server> Tag (HTML & XHTML: The Definitive Guide)
12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
applets: 1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
2.7.4. Anchors Beyond (HTML & XHTML: The Definitive Guide)
12.1. Applets and Objects (HTML & XHTML: The Definitive Guide)
applets on web pages: 4.1.3.4. Java Servlets and JSP (Web Design in a Nutshell)
12.6. Java Applets (Web Design in a Nutshell)
applications (XML): 30.5.1. Standard XML Languages (Web Design in a Nutshell)
application/x-www-form-urlencoded encoding: 9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
Arabic, text alignment default: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
arc cosine, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
arc sine, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
arc tangent, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
architecture (see information architecture)
archive attribute: B. List of Attributes (Web Design in a Nutshell)
12.2.1.3. The archive attribute (HTML & XHTML: The Definitive Guide)
12.2.3.4. The archive attribute (HTML & XHTML: The Definitive Guide)
archive management, RealMedia files: 6.4.6. Database management and tracking of RealAudio content (Designing Web Audio)
<area> tag: 6.5.4. The <area> Tag (HTML & XHTML: The Definitive Guide)
arguments: 1.1.5. Extra Info Required (Arguments) (ActionScript: The Definitive Guide)
using functions as: 9.11.1. Passing Functions to Functions (ActionScript: The Definitive Guide)
passing more than one to functions: 9.3.2. Invoking Functions with Parameters (ActionScript: The Definitive Guide)
primitive vs. composite data: 9.8.3. Primitive Versus Composite Parameter Values (ActionScript: The Definitive Guide)
vs. parameters: 9.3.2. Invoking Functions with Parameters (ActionScript: The Definitive Guide)
arguments object: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
accessing excess parameters: 9.8.1. Number of Parameters (ActionScript: The Definitive Guide)
retrieving parameter values from array: 9.8.2.1. Retrieving parameter values from the arguments array (ActionScript: The Definitive Guide)
arguments.callee property: 9.8.2.2. The callee property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
arguments.length property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
arithmetic operations in ActionScript: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
arithmetic operators: 5.3. Arithmetic Operators (ActionScript: The Definitive Guide)
ARPA (Advanced Research Projects Agency): 1.1.1. In the Beginning (HTML & XHTML: The Definitive Guide)
Array class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array( ) constructor: 11.3.1. The Array Constructor (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
array datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
array-element ([]) operator: 5.11.5. Array-Element/Object-Property Operator (ActionScript: The Definitive Guide)
11.3.2. Array Literals (ActionScript: The Definitive Guide)
creating references dynamically: 13.5.6.1. Using the array-element access operator (ActionScript: The Definitive Guide)
Array.concat( ): method (ActionScript: The Definitive Guide) 11.7.3.4. The concat( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.join( ): Method (ActionScript: The Definitive Guide) 11.9.4. The join( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.length property: 11.5. Determining the Size of an Array (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
deleting array elements: 11.8.2. Removing Elements with the length Property (ActionScript: The Definitive Guide)
extending arrays without assigning values to elements: 11.7.2. Adding New Elements with the length Property (ActionScript: The Definitive Guide)
Array.pop( ): method (ActionScript: The Definitive Guide) 11.8.3.1. The pop( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.push( ): method (ActionScript: The Definitive Guide) 11.7.3.1. The push( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.reverse( ): Method (ActionScript: The Definitive Guide) 11.9.1. The reverse( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
arrays: 11. Arrays (ActionScript: The Definitive Guide)
ActionScript vs. Lingo and C: 11.2.3. Array Size (ActionScript: The Definitive Guide)
adding elements
by assigning values: 11.7.1. Adding New Elements Directly (ActionScript: The Definitive Guide)
using splice( ): method (ActionScript: The Definitive Guide) 11.7.3.3. The splice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
to beginning of array using unshift( ): method (ActionScript: The Definitive Guide) 11.7.3.2. The unshift( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
to end of array using push( ): method (ActionScript: The Definitive Guide) 11.7.3.1. The push( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
without assigning values: 11.7.2. Adding New Elements with the length Property (ActionScript: The Definitive Guide)
anatomy of: 11.2. The Anatomy of an Array (ActionScript: The Definitive Guide)
associative: 11.6. Named Array Elements (ActionScript: The Definitive Guide)
converting strings to: function (ActionScript: The Definitive Guide) 4.6.6.4. The split( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
converting to strings
using join( ): Method (ActionScript: The Definitive Guide) 11.9.4. The join( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using tostring( ): Method (ActionScript: The Definitive Guide) 11.9.5. The toString( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating
using array literals: 11.3.2. Array Literals (ActionScript: The Definitive Guide)
by adding elements to end: method (ActionScript: The Definitive Guide) 11.7.3.4. The concat( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using new operator and Array( ) constructor: 11.3.1. The Array Constructor (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using subset of elements from existing array: 5.4.2. Composite Datatype Equality (ActionScript: The Definitive Guide)
Method (ActionScript: The Definitive Guide) 11.9.3. The slice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
deleting elements
from beginning of array using shift( ): method (ActionScript: The Definitive Guide) 11.8.3.2. The shift( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
from end of array using pop( ): method (ActionScript: The Definitive Guide) 11.8.3.1. The pop( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
with length property: 11.8.2. Removing Elements with the length Property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using splice( ): method (ActionScript: The Definitive Guide) 11.7.3.3. The splice( )
method (ActionScript: The Definitive Guide) 11.8.3.3. The splice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using delete operator: 11.8.1. Removing Elements with the delete Operator (ActionScript: The Definitive Guide)
elements: 11.2.1. Array Elements (ActionScript: The Definitive Guide)
determining number of: 11.5. Determining the Size of an Array (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
indexes of, specifying: 11.4.1. Retrieving an Element's Value (ActionScript: The Definitive Guide)
referencing: 11.4. Referencing Array Elements (ActionScript: The Definitive Guide)
retrieving values of: 11.4.1. Retrieving an Element's Value (ActionScript: The Definitive Guide)
reversing order of: Method (ActionScript: The Definitive Guide) 11.9.1. The reverse( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting values of: 11.4.2. Setting an Element's Value (ActionScript: The Definitive Guide)
sorting: Method (ActionScript: The Definitive Guide) 11.9.2. The sort( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
manipulating data using loops: 8.1. The while Loop (ActionScript: The Definitive Guide)
multidimensional: 11.10. Multidimensional Arrays (ActionScript: The Definitive Guide)
named elements
creating/referencing: 11.6.1. Creating and Referencing Named Array Elements (ActionScript: The Definitive Guide)
deleting: 11.6.2. Removing Named Elements (ActionScript: The Definitive Guide)
nested (see nested arrays)
as objects: 11.9.6. Arrays as Objects (ActionScript: The Definitive Guide)
size of, determining: 11.5. Determining the Size of an Array (ActionScript: The Definitive Guide)
sorting: Method (ActionScript: The Definitive Guide) 11.9.2. The sort( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vs. objects: 12.1. The Anatomy of an Object (ActionScript: The Definitive Guide)
Array.shift( ): method (ActionScript: The Definitive Guide) 11.8.3.2. The shift( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.slice( ): 5.4.2. Composite Datatype Equality (ActionScript: The Definitive Guide)
Method (ActionScript: The Definitive Guide) 11.9.3. The slice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.sort( ): Method (ActionScript: The Definitive Guide) 11.9.2. The sort( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.splice( ): method (ActionScript: The Definitive Guide) 11.7.3.3. The splice( )
method (ActionScript: The Definitive Guide) 11.8.3.3. The splice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.toString( ): Method (ActionScript: The Definitive Guide) 11.9.5. The toString( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array.unshift( ): method (ActionScript: The Definitive Guide) 11.7.3.2. The unshift( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
A.R.T. equipment
Effects 1 Reverb processor: A.2.10.2. Budget option (Designing Web Audio)
Mono Levelar Stereo Tube compressor: A.2.3.2. Budget option (Designing Web Audio)
articles (newsgroups), identifiers for: 6.2.7.2. The nntp newsgroup and article (HTML & XHTML: The Definitive Guide)
artifacts: 3.2. Recording techniques (Designing Web Audio)
embedded, removing: 4.1.3. Removing embedded artifacts (Designing Web Audio)
removing: 4.1.1. Choosing takes and removing artifacts (Designing Web Audio)
4.1.1. Choosing takes and removing artifacts (Designing Web Audio)
6.3. Professional webcasting (Designing Web Audio)
ASCAP: 8.6.2.2. Complying with copyright laws (Designing Web Audio)
ASCII character set: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
ASCII mode, transferring files: 4.4.1. The FTP Process (Web Design in a Nutshell)
ASCII null character: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
automatic execution of
callback handler (onXML property): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onData( ) event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ASCII text file format, saving HTML/XHTML documents in: 2.1. Writing Tools (HTML & XHTML: The Definitive Guide)
ASCII values of keys: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
B. Latin 1 Character Repertoire and Keycodes (ActionScript: The Definitive Guide)
ASF (Active Streaming File): 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
.asf (Windows Media) files: 24.7.4. Adding Windows Media (Web Design in a Nutshell)
25.3.3. Windows Media (.wmv or .asf) (Web Design in a Nutshell)
asin( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ASP (Active Server Pages): 4.1.3.2. ASP (Active Server Pages) (Web Design in a Nutshell)
ASP (Active Server Pages) resources: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
assigning variable values: 1.1.3.1. Official variable nomenclature (ActionScript: The Definitive Guide)
1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
2.2. Assigning Variables (ActionScript: The Definitive Guide)
assignment operator (=): 5.2. The Assignment Operator (ActionScript: The Definitive Guide)
associative arrays, emulating: 11.6. Named Array Elements (ActionScript: The Definitive Guide)
associative learning: 6.2.3. Multiple Iterations Are Commonplace (Information Architecture for the World Wide Web)
associativity of operators: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
asterisk (*) for relative frameset sizes: 14.3.2.1. Specifying sizes (Web Design in a Nutshell)
asterisk (*) in universal selector: 10.2.1.1. Universal selector (Cascading Style Sheets: The Definitive Guide)
asynchronous code execution: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
10.2. Event-Based AsynchronousCode Execution (ActionScript: The Definitive Guide)
at-rules
@import command: 8.1.3.2. Imported external style sheets (HTML & XHTML: The Definitive Guide)
@media command: 8.1.4. Media-Specific Styles (HTML & XHTML: The Definitive Guide)
at-rules (CSS2): 17.7.5. New "at-rules" (Web Design in a Nutshell)
atan2( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
attached sounds: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
playing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
silencing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
attachMovie( ) (MovieClip class): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding generated clips to stack: are added to the stack (ActionScript: The Definitive Guide) 13.4.2.1. How clips generated via attachMovie( )
creating instances: 13.3.2.3. Creating instances with attachMovie( ) (ActionScript: The Definitive Guide)
attachSound( ) (Sound class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
attribute matching: 10.2.2.1. Attribute matching (Cascading Style Sheets: The Definitive Guide)
attribute selectors: 10.2.2. Attribute Selectors (Cascading Style Sheets: The Definitive Guide)
attribute values, quoting: 18.5.9. Quoting Attribute Values (ActionScript: The Definitive Guide)
ATTRIBUTE_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
attributes: 8.2.3. Attributes (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
for tag: 3.8.1. The <body> Tag (HTML & XHTML: The Definitive Guide)
bulleted lists: 10.6.1.1. Changing the bullet shape (Web Design in a Nutshell)
deprecated: C.2. Deprecated Attributes (Web Design in a Nutshell)
fonts: 10.5. The <font> Tag (Web Design in a Nutshell)
href (see href attribute)
HTML tags: 3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
id and name: 31.4.9. id and name Attributes (Web Design in a Nutshell)
images, enabling JavaScript manipulation: 5.2.6.16. The name, onAbort, onError, onLoad and other event attributes (HTML & XHTML: The Definitive Guide)
ordered (numbered) lists: 10.6.2.1. Changing the numbering scheme (Web Design in a Nutshell)
SMIL: 27.4.5.2. Time control attributes (Web Design in a Nutshell)
27.4.6. Controlling Content Display (Web Design in a Nutshell)
text elements, centering with: 10.7.3.1. The align attribute (Web Design in a Nutshell)
WML: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
XHTML
case sensitivity in: 16.3.4. Case Sensitivity (HTML & XHTML: The Definitive Guide)
quoted values: 16.3.5. Quoted Attribute Values (HTML & XHTML: The Definitive Guide)
vales for value-less HTML attributes: 16.3.6. Explicit Attribute Values (HTML & XHTML: The Definitive Guide)
XHTML quoted values: 31.4.2. Quoted Attribute Values (Web Design in a Nutshell)
XML: 15.5. Element Attributes (HTML & XHTML: The Definitive Guide)
declaring in DTD: 15.3. Understanding XML DTDs (HTML & XHTML: The Definitive Guide)
required and default: 15.5.2. Required and Default Attributes (HTML & XHTML: The Definitive Guide)
values for: 15.5.1. Attribute Values (HTML & XHTML: The Definitive Guide)
attributes property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
AU files: 5.2. Streaming media formats (Designing Web Audio)
audience, designing for: 17.1.1. Design for Your Audience (HTML & XHTML: The Definitive Guide)
audience, target: 1.7. Designing web audio (Designing Web Audio)
audiences
attention span: 1.2.3. A Last Word About Consumers (Information Architecture for the World Wide Web)
5.1.1. Squandering Attention Spans (Information Architecture for the World Wide Web)
considering when indexing: 4.6.2. The Index (Information Architecture for the World Wide Web)
database structure and: 3.2.2.4. The relational database model: A bottom-up approach (Information Architecture for the World Wide Web)
feedback from: 9.6. Learning from Users (Information Architecture for the World Wide Web)
getting label text from: 5.4.1.5. Labels from users and experts (Information Architecture for the World Wide Web)
how they search: 6.2. Understanding How Users Search (Information Architecture for the World Wide Web)
indexing for: 6.5.2.2. Who's going to care? Indexing for specific audiences (Information Architecture for the World Wide Web)
learning about: 7.3. Learning About the Intended Audiences (Information Architecture for the World Wide Web)
likes and dislikes of: 1.2. If You Don't Like to Exercise... (Information Architecture for the World Wide Web)
critiquing sites: 7.1.2. Web Site Critiques (Information Architecture for the World Wide Web)
determining: 1.1. Consumer Sensitivity Boot Camp (Information Architecture for the World Wide Web)
labels and: 5.1.2. Making Bad Impressions (Information Architecture for the World Wide Web)
measuring site's success: 7.2.1. Measuring Success (Information Architecture for the World Wide Web)
organization for specific: 3.2.1.2.3. Audience-specific (Information Architecture for the World Wide Web)
3.2.2.4. The relational database model: A bottom-up approach (Information Architecture for the World Wide Web)
6.5.2.2. Who's going to care? Indexing for specific audiences (Information Architecture for the World Wide Web)
personalizing for: 1.2.2.5. Personalization (Information Architecture for the World Wide Web)
perspectives of: 2.1.1. The Consumer's Perspective (Information Architecture for the World Wide Web)
3.1.3. Differences in Perspectives (Information Architecture for the World Wide Web)
search interface design and: 6.3.5. Choose a Search Engine That Fits Users' Needs (Information Architecture for the World Wide Web)
6.3.8. Always Provide the User with Feedback (Information Architecture for the World Wide Web)
thinking like: 2.2.1. Thinking Like an Outsider (Information Architecture for the World Wide Web)
usage tracking: 9.6.4. Usage Tracking (Information Architecture for the World Wide Web)
audio: 6.1.3. The Techniques (Web Design in a Nutshell)
24. Audio on the Web (Web Design in a Nutshell)
5.4. Background Audio (HTML & XHTML: The Definitive Guide)
5.4. Background Audio (HTML & XHTML: The Definitive Guide)
5.6.2. Referencing Audio, Video, and Images (HTML & XHTML: The Definitive Guide)
adding to HTML documents: 24. Audio on the Web (Web Design in a Nutshell)
background: 24.7.2. Background Sound (Web Design in a Nutshell)
tag: 5.4.1. The <bgsound> Tag (HTML & XHTML: The Definitive Guide)
choosing formats for: 24.6. Choosing an Audio Format (Web Design in a Nutshell)
client-pull feature for: 13.2.3. Pulling Non-HTML Content (HTML & XHTML: The Definitive Guide)
encoding: 24.1. Basic Digital Audio Concepts (Web Design in a Nutshell)
Flash files and: 26.1.1. Advantages (Web Design in a Nutshell)
optimizing for download: 24.3.3. Optimizing for the Web (Web Design in a Nutshell)
providing transcripts/descriptions: 6.1.3. The Techniques (Web Design in a Nutshell)
tools: 24.3.2.1. Windows audio tools (Web Design in a Nutshell)
audio archives: 1.2. What you can do with sound on the Web (Designing Web Audio)
audio biography: 4.2.3. Pitch shift (Designing Web Audio)
Audio Ease
BarbaBatch conversion application: 6.3.2. Using the RealEncoder (Designing Web Audio)
digital software plug-ins for hard-disk recording applications: A.3.5. Audio plug-ins and utilities (Designing Web Audio)
audio equipment retailers
getting best deals from: A.3.1. Headphones (Designing Web Audio)
selecting: A.2.7. Mixers (Designing Web Audio)
audio fidelity: 5.3.5. Audio fidelity and compression (Designing Web Audio)
audio files
batch-encoding with AppleScript: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
compression: 5.1.1. Lossy compression (Designing Web Audio)
audio gear, low-end versus high-end: 3.1. Selecting the right equipment (Designing Web Audio)
audio input and output plug-ins: 8.3.5. Plug-ins (Designing Web Audio)
audio interviews: 1.2. What you can do with sound on the Web (Designing Web Audio)
audio mixers: 3.1.3. Mixers (Designing Web Audio)
audio mixing: 1.7.3.2. Good ambient loop mixing (Designing Web Audio)
audio processor plug-ins: 8.3.5. Plug-ins (Designing Web Audio)
Audio-Technica microphones
4050 condenser microphone: 3.1.1.3. Condenser microphones (Designing Web Audio)
AudioCatalyst: 8.4.1.2. Getting started (Designing Web Audio)
CDDB: 8.4.2.5. CDDB database support (Designing Web Audio)
encoding: 8.4.2.6. Encode (Designing Web Audio)
options for: 8.4.2.2. Choosing your encoding options (Designing Web Audio)
SetPlayer option: 8.4.2.7. Play (Designing Web Audio)
tracks, selecting: 8.4.2.1. Selecting tracks (Designing Web Audio)
AudioMedia III: 6.6.2. Capturing live audio with the RealEncoder (Designing Web Audio)
auditory masking: 8.2.1. MP3 technical details (Designing Web Audio)
aural media: 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
aural media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
aural style sheets: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
units for: 3.5. CSS2 Units (Cascading Style Sheets: The Definitive Guide)
aural value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
author value ( ): 9.4.2.1. Meta tags for search engines (Web Design in a Nutshell)
authoring (see writing HTML documents)
authoring environment: 16. ActionScript Authoring Environment (ActionScript: The Definitive Guide)
Actions panel: 16.1. The Actions Panel (ActionScript: The Definitive Guide)
externalizing ActionScript code: 16.7. Externalizing ActionScript Code (ActionScript: The Definitive Guide)
locating code: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
packaging components as Smart Clips: 16.8. Packaging Components as Smart Clips (ActionScript: The Definitive Guide)
productivity tips: 16.6. Productivity (ActionScript: The Definitive Guide)
authoring tools: 1.3.5. Take Advantage of Tools (Web Design in a Nutshell)
authoring tools for XHTML pages: 16.4.5. Man Versus Machine (HTML & XHTML: The Definitive Guide)
Auto option (FTP utilities): 4.4.1. The FTP Process (Web Design in a Nutshell)
auto value, block-level elements: 8.2.2.2. Using auto (Cascading Style Sheets: The Definitive Guide)
automatic datatype conversion: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
automatic datatyping: 2.4.1. Automatic Typing (ActionScript: The Definitive Guide)
3.3.1. Automatic Literal Typing (ActionScript: The Definitive Guide)
automatic list numbering in CSS2 for multilingualism: 7.3. Style Sheets Language Features (Web Design in a Nutshell)
automatic numbering: 10.4.1. Automatic Numbering (Cascading Style Sheets: The Definitive Guide)
automatic value conversion for variables: 2.4.2. Automatic Value Conversion (ActionScript: The Definitive Guide)
automatic variable creation: 2.1.1. Automatic Variable Creation (ActionScript: The Definitive Guide)
automation, document: 6.8. Supporting Document Automation (HTML & XHTML: The Definitive Guide)
autopilot, disengaging ActionScript: 1.1.2. Say Hi to Flash (ActionScript: The Definitive Guide)
autoplay attribute ( ): 25.5.3.2. Special QuickTime <embed> attributes (Web Design in a Nutshell)
AVI (.avi) file format: 25.3.4. AVI (.avi) (Web Design in a Nutshell)
AVI files: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
AVI movies: 5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
(see also video)
Avid: 4. Optimizing Your Sound Files (Designing Web Audio)
axis attribute ( and ): 13.1. Summary of Table Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
10.2.4.13. The axis attribute (HTML & XHTML: The Definitive Guide)
azimuth property: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: B

<b>(bold) tag: 8.2.4. Nesting HTML Tags (Web Design in a Nutshell)
10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.2. Physical Styles (Web Design in a Nutshell)
2.6.1.2. Physical styles (HTML & XHTML: The Definitive Guide)
Appendix A. HTML Elements (Web Design in a Nutshell)
WML: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
background: 17.5.2. Creating a Potentially Transparent Image (HTML & XHTML: The Definitive Guide)
(see also transparency)
audio: 24.7.2. Background Sound (Web Design in a Nutshell)
5.4. Background Audio (HTML & XHTML: The Definitive Guide)
colors: 17.5.3. Background Properties (Web Design in a Nutshell)
5.3.1.1. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
5.3.1.9. Mixing and matching body attributes (HTML & XHTML: The Definitive Guide)
8.4.4.2. The background-color property (HTML & XHTML: The Definitive Guide)
Flash movies: 26.4.2.1. The <embed> tag (Web Design in a Nutshell)
GIF animation: 23.5.5. Other Options (Web Design in a Nutshell)
layers: 14.3.1.4. The background and bgcolor attributes (HTML & XHTML: The Definitive Guide)
marquees: 5.5.1.3. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
tables: 13.4.6. Coloring Tables (Web Design in a Nutshell)
troubleshooting: 5.3.2.2. Problems with background, text, and link colors (HTML & XHTML: The Definitive Guide)
images: 5.3.1.2. The background attribute (HTML & XHTML: The Definitive Guide)
5.3.1.9. Mixing and matching body attributes (HTML & XHTML: The Definitive Guide)
8.4.4.1. The background-attachment property (HTML & XHTML: The Definitive Guide)
behind specific elements: 8.4.4.3. The background-image property (HTML & XHTML: The Definitive Guide)
layers: 14.3.1.4. The background and bgcolor attributes (HTML & XHTML: The Definitive Guide)
placement of: 8.4.4.4. The background-position property (HTML & XHTML: The Definitive Guide)
in tables: 10.2.1.2. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
10.2.4.8. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
tiling whole background: 8.4.4.5. The background-repeat property (HTML & XHTML: The Definitive Guide)
troubleshooting: 5.3.2.1. Problems with background images (HTML & XHTML: The Definitive Guide)
images/patterns: 17.5.3. Background Properties (Web Design in a Nutshell)
positioning and scrolling: 17.5.3. Background Properties (Web Design in a Nutshell)
tiling: 9.3.2. Tiling Background Graphics (Web Design in a Nutshell)
layers (see layers)
style properties for: 8.4.4. Color and Background Properties (HTML & XHTML: The Definitive Guide)
style sheet properties: 17.5.3. Background Properties (Web Design in a Nutshell)
background attachment: 6.2.5. Getting Attached (Cascading Style Sheets: The Definitive Guide)
background-attachment property: 6.2.5. Getting Attached (Cascading Style Sheets: The Definitive Guide)
8.4.4.1. The background-attachment property (HTML & XHTML: The Definitive Guide)
background attribute: B. List of Attributes (Web Design in a Nutshell)
5.3.1.2. The background attribute (HTML & XHTML: The Definitive Guide)
5.3.1.9. Mixing and matching body attributes (HTML & XHTML: The Definitive Guide)
10.2.1.2. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
14.3.1.4. The background and bgcolor attributes (HTML & XHTML: The Definitive Guide)
background-color property: 6.1.2. Background Color (Cascading Style Sheets: The Definitive Guide)
8.4.4.2. The background-color property (HTML & XHTML: The Definitive Guide)
inheritance and: 6.1.2. Background Color (Cascading Style Sheets: The Definitive Guide)
background-image property: 6.2.1. Background Images (Cascading Style Sheets: The Definitive Guide)
8.4.4.3. The background-image property (HTML & XHTML: The Definitive Guide)
background music: 1.2. What you can do with sound on the Web (Designing Web Audio)
adding with Beatnik: 11.3.3. Lesson 3: Adding simple background music (Designing Web Audio)
background-position property (CSS): 17.5.3. Background Properties (Web Design in a Nutshell)
background property: 6.2.6. Bringing It All Together (Cascading Style Sheets: The Definitive Guide)
8.4.4.6. The background property (HTML & XHTML: The Definitive Guide)
background-repeat property: 6.2.2. Repeats with Direction (Cascading Style Sheets: The Definitive Guide)
8.4.4.5. The background-repeat property (HTML & XHTML: The Definitive Guide)
background sound, adding with HTML: 1.3.1. Adding a simple background sound (Designing Web Audio)
backgrounds: 6. Colors and Backgrounds (Cascading Style Sheets: The Definitive Guide)
colors: 6.1.2. Background Color (Cascading Style Sheets: The Definitive Guide)
importance of declaring foreground color with: 6.1.4. Good Practices (Cascading Style Sheets: The Definitive Guide)
complex: 6.2. Complex Backgrounds (Cascading Style Sheets: The Definitive Guide)
floated elements and: 7.6.1.1. Backgrounds and floats (Cascading Style Sheets: The Definitive Guide)
images as: 6.2. Complex Backgrounds (Cascading Style Sheets: The Definitive Guide)
specifying with background color: 6.2.1.1. Good background practices (Cascading Style Sheets: The Definitive Guide)
Netscape Navigator 4.x, correcting placement: 11.2.5. Getting Full Content Backgrounds in Navigator (Cascading Style Sheets: The Definitive Guide)
padding and: 7.2. Margins or Padding? (Cascading Style Sheets: The Definitive Guide)
perfect alignment of: 6.2.5.1. Interesting effects (Cascading Style Sheets: The Definitive Guide)
positioning: 6.2.3. Background Positioning (Cascading Style Sheets: The Definitive Guide)
scrolling vs. fixed: 6.2.5. Getting Attached (Cascading Style Sheets: The Definitive Guide)
BACKSPACE property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
backward accessibility: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
backwards compatibility, RealPlayer: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
backwards effect: 4.2.5. Backwards (Designing Web Audio)
balance of left/right channels
determining: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
balancing perspectives: 2.2.4. Balance Your Perspective (Information Architecture for the World Wide Web)
bandwidth: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
codec chart, RealAudio: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
dynamic allocation with SureStream: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
limitations: 1.5. Audio challenges and limitations (Designing Web Audio)
1.7. Designing web audio (Designing Web Audio)
negotiation
live broadcasting: 6.5. Live broadcasting with RealAudio (Designing Web Audio)
RealAudio, using with: 6.3.3.3. Using bandwidth negotiation (Designing Web Audio)
RealMedia, streaming audio: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
RealServer: 6.1.2. RealServer (Designing Web Audio)
6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
range of frequencies, amplifying or reducing: 4.3.3. Equalization: customizing your sound (Designing Web Audio)
separate audio and animation files: 6.4.4. Creating RealFlash content (Designing Web Audio)
Bandwidth Profiler (debugging tool): 19.1.4. The Bandwidth Profiler (ActionScript: The Definitive Guide)
Bandwidth Profiler, Flash: 9.2.2.2. Publishing and file size optimization (Designing Web Audio)
Bandwidth Tuner: 6.4.4. Creating RealFlash content (Designing Web Audio)
BarbaBatch: 6.3.2. Using the RealEncoder (Designing Web Audio)
Appendix A.3.5. Audio plug-ins and utilities (Designing Web Audio)
Bare Bones Software, Inc.: 8.6.1. HTML Editors (Web Design in a Nutshell)
base-2
logarithm of e: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
number system (binary system): 15.2. Bitwise Programming (ActionScript: The Definitive Guide)
base-8 integers: 4.3.1. Integer Literals (ActionScript: The Definitive Guide)
base attribute ( ): 26.4.2.1. The <embed> tag (Web Design in a Nutshell)
base class of ActionScript: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Base Skin, Winamp: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
<base> tag: 3.7.3. Related Header Tags (HTML & XHTML: The Definitive Guide)
base URLs: 2.7.1. URLs (HTML & XHTML: The Definitive Guide)
6.7.1. The <base> Header Element (HTML & XHTML: The Definitive Guide)
<basefont> tags: 4.6.2. The <basefont> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
baseline alignment: 4.1.3.1. Baseline alignment (Cascading Style Sheets: The Definitive Guide)
baseline height, text: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
baseline value: 5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
(see also alignment)
align: 12.3.4. Vertical Alignment (Web Design in a Nutshell)
valign: 13.4.3. Aligning Text in Cells (Web Design in a Nutshell)
13.6.3. Baseline Alignment Trick (Web Design in a Nutshell)
Basic RealServer: 6.3.3. Broadcasting audio with the RealServer (Designing Web Audio)
Basic Server Plus, RealNetwork: 6.2. Streaming RealAudio from a web server (Designing Web Audio)
bass: 2.1.2. Pitch (Designing Web Audio)
removing with high-pass filter: 4.3.4.2. Using low-pass and high-pass filters (Designing Web Audio)
batch-encoding
AppleScript, parameters for: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
command-line options, RealAudio: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
batch vs. event-based programs: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
BBEdit (Bare Bones Software, Inc.) HTML editor: 8.6.1. HTML Editors (Web Design in a Nutshell)
Beatnik: 5.2.5. Beatnik's Rich Music Format (RMF) (Designing Web Audio)
9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
10.1. MIDI: A universal approach (Designing Web Audio)
10.3. Creating your own MIDI files (Designing Web Audio)
11. Designing Audio Web Sites with Beatnik (Designing Web Audio)
advantages: 11.1. New possibilities for interactive sound (Designing Web Audio)
Beatnik Audio Engine: 11.2. Beatnik authoring system (Designing Web Audio)
11.2.2. Beatnik Audio Engine (Designing Web Audio)
Beatnik Editor: 11.2. Beatnik authoring system (Designing Web Audio)
11.2.3. Beatnik Editor (Designing Web Audio)
11.4. Using the Beatnik Editor (Designing Web Audio)
copyright window: 11.4.3.1. Working with songs (Designing Web Audio)
creating new sessions: 11.4.1. Getting started (Designing Web Audio)
custom instruments: 11.4.4. Making a custom instrument from your imported samples (Designing Web Audio)
exporting RMF files: 11.4.5. Exporting an RMF file with the Beatnik Editor (Designing Web Audio)
General MIDI bank: 11.4.3.2. Working with instruments (Designing Web Audio)
Groovoids: 11.4.3.1. Working with songs (Designing Web Audio)
importing files: 11.4.2. Importing MIDI and audio files (Designing Web Audio)
Instrument menu: 11.4.3.2. Working with instruments (Designing Web Audio)
keymapping tool: 11.4.4. Making a custom instrument from your imported samples (Designing Web Audio)
samples: 11.4.3.3. Working with samples (Designing Web Audio)
songs: 11.4.3. Manipulating the files (Designing Web Audio)
special bank: 11.4.3.2. Working with instruments (Designing Web Audio)
system requirements: 11.4. Using the Beatnik Editor (Designing Web Audio)
user bank: 11.4.3.2. Working with instruments (Designing Web Audio)
Beatnik Player: 11.2. Beatnik authoring system (Designing Web Audio)
11.2.1. Beatnik Player (Designing Web Audio)
Beatnik Xtra: 11.4.4. Making a custom instrument from your imported samples (Designing Web Audio)
capabilities, ratings of: B.8. Beatnik (Designing Web Audio)
disadvantages: 11.1. New possibilities for interactive sound (Designing Web Audio)
Groovoids: 11.2. Beatnik authoring system (Designing Web Audio)
HTTP web servers: 5.1. Streaming protocols (Designing Web Audio)
interactive mouse rollover sounds: 1.4. Adding sound effects (Designing Web Audio)
interactive sound: 11.1. New possibilities for interactive sound (Designing Web Audio)
JavaScript: 11.2.4. Authoring with Beatnik (Designing Web Audio)
MIDI, use of: 5.3.6. Low bandwidth performance overall (Designing Web Audio)
11.2. Beatnik authoring system (Designing Web Audio)
Mixman remixers: 11.2. Beatnik authoring system (Designing Web Audio)
MP3 files, use of: 11.2. Beatnik authoring system (Designing Web Audio)
Music Object: 11.2.5. Introduction to the Music Object (Designing Web Audio)
security: 11.4.3.1. Working with songs (Designing Web Audio)
sonifying web sites: 11.2.4. Authoring with Beatnik (Designing Web Audio)
adding background music: 11.3.3. Lesson 3: Adding simple background music (Designing Web Audio)
mouseover, simple: 11.3.1. Lesson 1: A simple mouseover (Designing Web Audio)
Music Object, multiple on page: 11.3.4. Lesson 4: Creating multiple Music Object instances on a page (Designing Web Audio)
navbar, building: 11.3.2. Lesson 2: Building a sonified navbar (Designing Web Audio)
putting together audio behaviors: 11.3.5. Lesson 5: Putting it all together (Designing Web Audio)
sound conversion: 11.2.4. Authoring with Beatnik (Designing Web Audio)
sound bank: 11.3.2. Lesson 2: Building a sonified navbar (Designing Web Audio)
Beatnik, using .rmf files: 24.5.9. Beatnik's Rich Music Format (.rmf) (Web Design in a Nutshell)
Beck, Kent: 19.2.4. Fixing Bugs (ActionScript: The Definitive Guide)
:before pseudo-element: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes (Cascading Style Sheets: The Definitive Guide)
generated content: 10.4. Generated Content (Cascading Style Sheets: The Definitive Guide)
Beggs, Josh: 1.9.2. Timing loops (Designing Web Audio)
behavior attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
5.5.1.2. The behavior, direction, and loop attributes (HTML & XHTML: The Definitive Guide)
being visited link state: 8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
below attribute ( ): 14.3.1.3. The above, below, and z-index attributes (HTML & XHTML: The Definitive Guide)
bender effect: 4.2.4. Bender (Designing Web Audio)
BeOS: 8.3.4. Skins (Designing Web Audio)
8.3.5. Plug-ins (Designing Web Audio)
8.6.2.1. An easier way? (Designing Web Audio)
Beyer dynamic microphone: 3.1.1.2. Dynamic microphones (Designing Web Audio)
bgcolor attribute: B. List of Attributes (Web Design in a Nutshell)
5.3.1.1. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
5.3.1.9. Mixing and matching body attributes (HTML & XHTML: The Definitive Guide)
5.5.1.3. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
10.2.1.2. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
10.2.3.3. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
14.3.1.4. The background and bgcolor attributes (HTML & XHTML: The Definitive Guide)
bgproperties attribute ( ): 9.1. Summary of Structural Tags (Web Design in a Nutshell)
5.3.1.3. The bgproperties attribute (HTML & XHTML: The Definitive Guide)
BGSOUND tag: 1.3. Two easy ways to add sound (Designing Web Audio)
MIDI: 10.2. Adding MIDI to your web pages (Designing Web Audio)
bi-directional override: 7.2.2. Directionality (Web Design in a Nutshell)
Bias (Peak): 24.3.2.2. Mac audio tools (Web Design in a Nutshell)
bibliographic citations: 4.4.3. The <cite> Tag (HTML & XHTML: The Definitive Guide)
bidirectional microphones: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
binary files: 1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
binary mode, transferring files: 4.4.1. The FTP Process (Web Design in a Nutshell)
WAP: 32.1.2. How WAP Works (Web Design in a Nutshell)
binary numbers and bitwise operators: 15.2. Bitwise Programming (ActionScript: The Definitive Guide)
binary operators: 5.1.2. Number of Operands (ActionScript: The Definitive Guide)
bird calls, recording: 3.2.2.3. Capturing ambient sounds (Designing Web Audio)
bit-depth: 2.2. Digital audio demystified (Designing Web Audio)
BitHeadz: 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
bitrate: 8.2.1. MP3 technical details (Designing Web Audio)
constant: 8.4.1. Encoding MP3 files (Designing Web Audio)
encoding: 8.4.1. Encoding MP3 files (Designing Web Audio)
for RealSystem G2: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
quality-to-file-size ratio: 8. Playing, Serving, and Streaming MP3 (Designing Web Audio)
8.4.2.3. 128 Kbps Internet standard (Designing Web Audio)
variable: 8.4.1. Encoding MP3 files (Designing Web Audio)
bits (binary digits): 15.2. Bitwise Programming (ActionScript: The Definitive Guide)
Bitstream (font designers): 3.2.4. Embedded Fonts (Web Design in a Nutshell)
bitwise AND (&) operator: 15.2.1. Bitwise AND (ActionScript: The Definitive Guide)
bitwise AND assignment (&=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
bitwise eXclusive OR (^) operator: 15.2.3. Bitwise XOR (ActionScript: The Definitive Guide)
bitwise left shift assignment (<<=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
bitwise left shift (<<) operator: 15.2.5.3. Left shift (ActionScript: The Definitive Guide)
bitwise NOT (~) operator: 15.2.4. Bitwise NOT (ActionScript: The Definitive Guide)
bitwise operators: 15.2. Bitwise Programming (ActionScript: The Definitive Guide)
real-life operations: 15.2.6. Bitwise Operations Applied (ActionScript: The Definitive Guide)
vs. logical operators: 5.11.1. The Bitwise Operators (ActionScript: The Definitive Guide)
bitwise OR (|) operator: 15.2.2. Bitwise OR (ActionScript: The Definitive Guide)
bitwise OR assignment (|=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
bitwise shift operators: 15.2.5. The Bitwise Shift Operators (ActionScript: The Definitive Guide)
bitwise signed right shift assignment (>>=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
bitwise signed right shift (>>) operator: 15.2.5.1. Signed right shift (ActionScript: The Definitive Guide)
bitwise unsigned right shift assignment (>>>=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
bitwise unsigned right shift (>>>) operator: 15.2.5.2. Unsigned right shift (ActionScript: The Definitive Guide)
bitwise XOR (^) operator: 15.2.3. Bitwise XOR (ActionScript: The Definitive Guide)
bitwise XOR assignment (^=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
black and white, designing for: 2.4. Monitor Color Issues (Web Design in a Nutshell)
2.4. Monitor Color Issues (Web Design in a Nutshell)
(see also grayscale)
blank keyframes, adding: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
blank lines (see paragraphs)
blank space around elements (see margins)
_blank target ( ): 11.5. Targeting Windows (Web Design in a Nutshell)
14.5.2. Reserved target names (Web Design in a Nutshell)
blenders, color: 22.4. Color Blenders (Web Design in a Nutshell)
blind carbon copy (bcc) field, mail messages: 6.2.8.1. Defining mail header fields (HTML & XHTML: The Definitive Guide)
blinking text: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
8.4.5.4. The text-decoration property (HTML & XHTML: The Definitive Guide)
block items: 8.4.8.1. The display property (HTML & XHTML: The Definitive Guide)
block-level elements: 2.9. Classification of Elements (Cascading Style Sheets: The Definitive Guide)
8.2. Block-Level Elements (Cascading Style Sheets: The Definitive Guide)
10.2.1. Paragraphs and Line Breaks (Web Design in a Nutshell)
auto value: 8.2.2.2. Using auto (Cascading Style Sheets: The Definitive Guide)
collapsing vertical margins: 8.2.1.2. Collapsing vertical margins (Cascading Style Sheets: The Definitive Guide)
floated elements and[block level elements
floated elements and: 8.3. Floated Elements (Cascading Style Sheets: The Definitive Guide)
height: 8.2.1.1. Height (Cascading Style Sheets: The Definitive Guide)
horizontal formatting: 8.2.2. Horizontal Formatting (Cascading Style Sheets: The Definitive Guide)
horizontal properties: 8.2.2.1. Horizontal properties (Cascading Style Sheets: The Definitive Guide)
list items: 8.2.3. List Items (Cascading Style Sheets: The Definitive Guide)
margins and, caution with: 7.3.6. Negative Margin Values (Cascading Style Sheets: The Definitive Guide)
negative margins: 8.2.2.4. Negative margins (Cascading Style Sheets: The Definitive Guide)
replaced: 8.2.4. Block-Level Replaced Elements (Cascading Style Sheets: The Definitive Guide)
vertical formatting: 8.2.1. Vertical Formatting (Cascading Style Sheets: The Definitive Guide)
block quotes: 4.8. Block Quotes (HTML & XHTML: The Definitive Guide)
tags: 4.8.1. The <blockquote> Tag (HTML & XHTML: The Definitive Guide)
4.8.2. The <q> Tag (HTML & XHTML: The Definitive Guide)
blocks of whitespace: 14.1.1.3. Creating blocks of space (HTML & XHTML: The Definitive Guide)
blueprints: 8.4. High-Level Architecture Blueprints (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
blurring (see antialiasing)
BMI, license agreement information: 8.6.2.2. Complying with copyright laws (Designing Web Audio)
.bmp (bitmap) files: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
boards, mixing: 3.1.3. Mixers (Designing Web Audio)
Bobby validator: 6.1.3. The Techniques (Web Design in a Nutshell)
BODY attributes: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
replacing with color property: 6.1.1.1. BODY attributes (Cascading Style Sheets: The Definitive Guide)
body content: 2.4. HTML Skeleton (HTML & XHTML: The Definitive Guide)
3.8.1. The <body> Tag (HTML & XHTML: The Definitive Guide)
margins for: 5.3.1.6. The leftmargin attribute (HTML & XHTML: The Definitive Guide)
boilerplate HTML documents: 17.1.2. Boilerplate Documents (HTML & XHTML: The Definitive Guide)
uses of and tags in: 3.9.2. Using Editorial Markup (HTML & XHTML: The Definitive Guide)
bold tag (see tag)
bold text: 5.2.2. Getting Bolder (Cascading Style Sheets: The Definitive Guide)
preserving with Netscape Navigator 4.x: 11.2.7. Preserving Boldness (Cascading Style Sheets: The Definitive Guide)
setting color: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
bold text (HTML support in text fields): 18.5.1. <B> (Bold) (ActionScript: The Definitive Guide)
boldface text: 4.5.1. The <b> Tag (HTML & XHTML: The Definitive Guide)
8.4.3.7. The font-weight property (HTML & XHTML: The Definitive Guide)
boldness, text: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
bookmarks, frames and: 14.2.2. Disadvantages (Web Design in a Nutshell)
Boolean class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Boolean datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
4.7. The Boolean Type (ActionScript: The Definitive Guide)
converting
datatypes to: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
3.4.2.7. Converting to a Boolean (ActionScript: The Definitive Guide)
7.1. The if Statement (ActionScript: The Definitive Guide)
values to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
equality rules for: 5.4.1. Primitive Datatype Equality (ActionScript: The Definitive Guide)
Boolean( ) global function: 3.4.2.7. Converting to a Boolean (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
boolean keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
Boolean logical operators (see logical operators)
Boolean values
comparison operators and: 4.6.2.2. Character order and alphabetic comparisons (ActionScript: The Definitive Guide)
4.7. The Boolean Type (ActionScript: The Definitive Guide)
equality/inequality operators and: operators (ActionScript: The Definitive Guide) 4.6.2.1. Using the equality (==) and inequality (!=)
Boolean.toString( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Boolean.valueOf( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
border attribute: B. List of Attributes (Web Design in a Nutshell)
5.2.6.8. The border attribute (HTML & XHTML: The Definitive Guide)
9.5.4.3. Custom image buttons (HTML & XHTML: The Definitive Guide)
10.2.1.3. The border attribute (HTML & XHTML: The Definitive Guide)
10.2.1.8. Combining border, cellspacing, and cellpadding attributes (HTML & XHTML: The Definitive Guide)
12.2.1.7. The align, class, border, height, hspace, style, vspace, and width attributes (HTML & XHTML: The Definitive Guide)
12.2.4.1. The align, border, height, width, hspace, and vspace attributes (HTML & XHTML: The Definitive Guide)
border-bottom property: 7.4.4. Shorthand Border Properties (Cascading Style Sheets: The Definitive Guide)
border-bottom property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
border-bottom-width property: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
border-bottom-width property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
border-color property: 6.1.1.2. Affecting borders (Cascading Style Sheets: The Definitive Guide)
7.4.3. Border Colors (Cascading Style Sheets: The Definitive Guide)
8.4.6.3. The border-color property (HTML & XHTML: The Definitive Guide)
border colors for frames: 14.4.1.3. Border color (Web Design in a Nutshell)
border-left property: 7.4.4. Shorthand Border Properties (Cascading Style Sheets: The Definitive Guide)
border-left property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
border-left-width property: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
border-left-width property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
border property: 7.4.4.1. Setting borders as quickly as possible (Cascading Style Sheets: The Definitive Guide)
border-right property: 7.4.4. Shorthand Border Properties (Cascading Style Sheets: The Definitive Guide)
border-right property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
border-right-width property: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
border-right-width property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
border-style property: 8.4.6.5. The border-style property (HTML & XHTML: The Definitive Guide)
border-style property[border style property: 7.4.1. Borders with Style (Cascading Style Sheets: The Definitive Guide)
border-top property: 7.4.4. Shorthand Border Properties (Cascading Style Sheets: The Definitive Guide)
border-top property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
border-top-width property: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
border-top-width property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
border-width property: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
8.4.6.4. The border-width property (HTML & XHTML: The Definitive Guide)
Border/Bg option for text fields: 18.3.3. Border/Bg (ActionScript: The Definitive Guide)
bordercolor, bordercolordark, bordercolorlight attributes: 10.2.1.5. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
10.2.3.4. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
11.4.1.6. The frameborder and bordercolor attributes (HTML & XHTML: The Definitive Guide)
10.2.1.5. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
10.2.3.4. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
borders: 7.4. Borders (Cascading Style Sheets: The Definitive Guide)
color: 7.4.3. Border Colors (Cascading Style Sheets: The Definitive Guide)
replication: 7.4.3. Border Colors (Cascading Style Sheets: The Definitive Guide)
setting: 6.1.1.2. Affecting borders (Cascading Style Sheets: The Definitive Guide)
colors: 8.4.6.3. The border-color property (HTML & XHTML: The Definitive Guide)
frame: 11.3.1.2. Controlling frame borders and spacing (HTML & XHTML: The Definitive Guide)
11.4.1.6. The frameborder and bordercolor attributes (HTML & XHTML: The Definitive Guide)
frames: 14.4.1. Frame Borders and Spacing (Web Design in a Nutshell)
image buttons (forms): 9.5.4.3. Custom image buttons (HTML & XHTML: The Definitive Guide)
images: 5.2.6.8. The border attribute (HTML & XHTML: The Definitive Guide)
6.3.1.2. The href attribute (HTML & XHTML: The Definitive Guide)
inline elements and: 7.4.5. Borders and Inline Elements (Cascading Style Sheets: The Definitive Guide)
multiple styles: 7.4.1.1. Multiple styles (Cascading Style Sheets: The Definitive Guide)
new properties with CSS2: 10.6. Borders (Cascading Style Sheets: The Definitive Guide)
size: 8.4.6.4. The border-width property (HTML & XHTML: The Definitive Guide)
style properties for: 8.4.6.2. The border properties (HTML & XHTML: The Definitive Guide)
shorthand properties for complex: 8.4.6.6. Borders in shorthand (HTML & XHTML: The Definitive Guide)
style sheet properties for: 17.5.2. Box Properties (Web Design in a Nutshell)
tables: 10.2.1.3. The border attribute (HTML & XHTML: The Definitive Guide)
10.2.3.4. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
10.2.4.9. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
13.4.1. Borders, Frames, and Rules (Web Design in a Nutshell)
width: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
for individual sides: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
keywords for: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
none, setting to: 7.4.2.1. No border at all (Cascading Style Sheets: The Definitive Guide)
replication: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
bottom property: 9.1.2. Side Offsets (Cascading Style Sheets: The Definitive Guide)
bottom-up organization approach: 3.2.2.4. The relational database model: A bottom-up approach (Information Architecture for the World Wide Web)
bottom value: 2.8.1. Inline Images (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
(see also alignment)
bottom value (align): 12.3.4. Vertical Alignment (Web Design in a Nutshell)
boundary string: 13.3.1. The Multipart/Mixed Media Type (HTML & XHTML: The Definitive Guide)
bounding boxes, determining: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Boutell, Thomas: 11.6.1.1. Available tools (Web Design in a Nutshell)
21.1. The PNG Story (Web Design in a Nutshell)
box properties: 7.4.5. Borders and Inline Elements (Cascading Style Sheets: The Definitive Guide)
7.4.6. Borders: Known Issues (Cascading Style Sheets: The Definitive Guide)
adding to
inline elements: 8.4.2.2. Adding box properties (Cascading Style Sheets: The Definitive Guide)
inline replaced elements: 8.4.4.1. Adding box properties (Cascading Style Sheets: The Definitive Guide)
box properties (style sheets): 17.5.2. Box Properties (Web Design in a Nutshell)
box rules (example): 13.7.4. Creating a Box Rule (Web Design in a Nutshell)
box style properties: 8.4.6. Box Properties (HTML & XHTML: The Definitive Guide)
BoxTop Software
GIFmation: 23.5. Creating Animated GIFs (Web Design in a Nutshell)
23.5. Creating Animated GIFs (Web Design in a Nutshell)
PhotoGIF: 19.5. Tools Overview (Web Design in a Nutshell)
ProJPEG utility: 20.5. Creating JPEGs (Web Design in a Nutshell)
20.6.2. "Optimized" JPEGs (Web Design in a Nutshell)
<br> tag, vertical vs.: 14.1.1.2. Creating vertical space (HTML & XHTML: The Definitive Guide)
Braille (see accessibility)
braille media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
braille value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
brainstorming site design: 8.1. Brainstorming with White Boards and Flip Charts (Information Architecture for the World Wide Web)
branching logic and logical operators: 5.7. The Logical Operators (ActionScript: The Definitive Guide)
breadth, hierarchy: 3.2.2.2. Designing hierarchies (Information Architecture for the World Wide Web)
break statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
8.6.1. The break Statement (ActionScript: The Definitive Guide)
brightness, display: 2.4. Monitor Color Issues (Web Design in a Nutshell)
21.6.2. Gamma Correction (Web Design in a Nutshell)
brightness, setting with a Color object: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Broadcast.com: 5.3.7. Server performance and software quality (Designing Web Audio)
broadcasting
through firewalls: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
intranets: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
large-scale: 5.3.7. Server performance and software quality (Designing Web Audio)
browser navigation features: 4.1. Browser Navigation Features (Information Architecture for the World Wide Web)
Browser Watch site: 1.2.1.3. General statistics listings (Web Design in a Nutshell)
browsers (see web browsers)
appearance and: 10.5. Adapting to the Environment (Cascading Style Sheets: The Definitive Guide)
background images and: 6.2.1. Background Images (Cascading Style Sheets: The Definitive Guide)
background property and: 6.2.6. Bringing It All Together (Cascading Style Sheets: The Definitive Guide)
backward accessibility for: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
client-pull, meta tags for: 9.4.1.1. Meta tags for client-pull (Web Design in a Nutshell)
color name support: 16.2.2. Color Name Cautions (Web Design in a Nutshell)
colors on the Web: 3.3. Color on the Web (Web Design in a Nutshell)
compatibility: 5.3.2. Browser compatibility (Designing Web Audio)
cursor shape: 10.5.1. Cursors (Cascading Style Sheets: The Definitive Guide)
designing for: 1. Designing for a Variety of Browsers (Web Design in a Nutshell)
print designers and: 3.1.1. Designing for the Unknown (Web Design in a Nutshell)
strategies: 1.3. Design Strategies (Web Design in a Nutshell)
determining type and version: 17.1.3. Strategies for Using Style Sheets Today (Web Design in a Nutshell)
DHTML, detecting with: 29.6. Browser Detection (Web Design in a Nutshell)
environment and: 10.5. Adapting to the Environment (Cascading Style Sheets: The Definitive Guide)
feature overview: 1.2.3. Browser Features (Web Design in a Nutshell)
GIF animation support: 23.3. Browser Support (Web Design in a Nutshell)
ignoring information: 8.3. Information Browsers Ignore (Web Design in a Nutshell)
important rules and: 2.7.2. Importance (Cascading Style Sheets: The Definitive Guide)
inheritance and: 2.6.1. Limitations of Inheritance (Cascading Style Sheets: The Definitive Guide)
JavaScript errors: 6.4.2.2. Note of caution (Designing Web Audio)
JavaScript, handling multiple with: 28.4. Handling Multiple Browsers (Web Design in a Nutshell)
list of: 1.1.1. The "Big Two" (Web Design in a Nutshell)
Òlive space,Ó considering: 2.1.2. "Live" Space in the Browser Window (Web Design in a Nutshell)
margins, adjusting: 9.3.3. Adjusting Browser Margins (Web Design in a Nutshell)
negative background positions and: 6.2.3.3. Length values (Cascading Style Sheets: The Definitive Guide)
negative margins, support for: 7.3.6. Negative Margin Values (Cascading Style Sheets: The Definitive Guide)
negative padding and: 7.5. Padding (Cascading Style Sheets: The Definitive Guide)
objects, centering in window: 13.7.2. Centering an Object in the Browser Window (Web Design in a Nutshell)
PNG support: 21.3. Platform/Browser Support (Web Design in a Nutshell)
points/pixels, treatment of: 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
print mechanisms: 5.1. Browser Print Mechanisms (Web Design in a Nutshell)
proprietary HTML tags: D. Proprietary Tags (Web Design in a Nutshell)
speech-synthesis: 1.1.1. What a Mess (Cascading Style Sheets: The Definitive Guide)
1.1.1. What a Mess (Cascading Style Sheets: The Definitive Guide)
10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
status bar text: 11.4.5. Changing Status Bar Text with JavaScript (Web Design in a Nutshell)
style sheet support: 17.1.2. Disadvantages (Web Design in a Nutshell)
text justification and: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
typography: 3.2. Typography on the Web (Web Design in a Nutshell)
underlining, turning off in: 4.1.6.1. Weird decorations (Cascading Style Sheets: The Definitive Guide)
usage statistics: 1.2. Browser Usage Statistics (Web Design in a Nutshell)
trends: 1.2.2. Current Browser Usage Trends (Web Design in a Nutshell)
WAP: 32.2.2. WAP Browsers (Web Design in a Nutshell)
Web Palette and: 3.3.2. Color in Browsers ( The Web Palette) (Web Design in a Nutshell)
whitespace, handling in: 4.1.1.3. Handling whitespace (Cascading Style Sheets: The Definitive Guide)
window resizing and page size: 2.2. Fixed Versus Flexible Web Page Design (Web Design in a Nutshell)
browsers, web (see web browsers)
browsing (see navigation)
buffer space (see margins)
bugs (see debugging)
in HTML extensions: 1.6.3. Beyond Extensions: Exploiting Bugs (HTML & XHTML: The Definitive Guide)
height/width attributes: 5.2.6.12. Problems with height and width (HTML & XHTML: The Definitive Guide)
multiple tags: 1.6.3. Beyond Extensions: Exploiting Bugs (HTML & XHTML: The Definitive Guide)
built-in classes: 12.6.1. Built-in Classes (ActionScript: The Definitive Guide)
20.3. Built-in Classes and Objects (ActionScript: The Definitive Guide)
attaching event handlers to: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
event handler scope: 10.7.3. Other Object Event Handler Scope (ActionScript: The Definitive Guide)
built-in functions: 1.2.4.1. Built-in functions (ActionScript: The Definitive Guide)
1.2.4.1. Built-in functions (ActionScript: The Definitive Guide)
20.1. Global Functions (ActionScript: The Definitive Guide)
mathematical: 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
built-in movie clip
methods: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
properties: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
built-in objects: 12.6.2. Built-in Objects (ActionScript: The Definitive Guide)
20.3. Built-in Classes and Objects (ActionScript: The Definitive Guide)
for-in loops and: 8.5. The for-in Loop (ActionScript: The Definitive Guide)
bulleted (unordered) lists: 7.1. Unordered Lists (HTML & XHTML: The Definitive Guide)
bullet shape: 7.3.1.1. The type attribute (HTML & XHTML: The Definitive Guide)
custom bullets: 17.3. Custom Bullets (HTML & XHTML: The Definitive Guide)
list marker style properties: 8.4.7.1. The list-style-image property (HTML & XHTML: The Definitive Guide)
nesting: 7.4.1. Nested Unordered Lists (HTML & XHTML: The Definitive Guide)
bullets: 7.7. Lists (Cascading Style Sheets: The Definitive Guide)
8.2.3. List Items (Cascading Style Sheets: The Definitive Guide)
fallback for: 7.7.2. List Item Images (Cascading Style Sheets: The Definitive Guide)
images used as: 7.7.2. List Item Images (Cascading Style Sheets: The Definitive Guide)
position of: 7.7.3. List Item Positions (Cascading Style Sheets: The Definitive Guide)
bullets (lists): 10.6.1.1. Changing the bullet shape (Web Design in a Nutshell)
CSS properties: 17.5.4. Classification Properties (Web Design in a Nutshell)
Burns, Martin: 15.6.3. Working with Menus (Web Design in a Nutshell)
button event handlers: 16.3. Adding Scripts to Buttons (ActionScript: The Definitive Guide)
button events for: 10.8. Button Events (ActionScript: The Definitive Guide)
defining: 10.5. Event Handler Syntax (ActionScript: The Definitive Guide)
scope rules: 10.7.2. Button Event Handler Scope (ActionScript: The Definitive Guide)
button events: 10.8. Button Events (ActionScript: The Definitive Guide)
dragOut: 10.8.6. dragOut (ActionScript: The Definitive Guide)
dragOver: 10.8.7. dragOver (ActionScript: The Definitive Guide)
press: 10.8.1. press (ActionScript: The Definitive Guide)
release: 10.8.2. release (ActionScript: The Definitive Guide)
releaseOutside: 10.8.3. releaseOutside (ActionScript: The Definitive Guide)
rollOut: 10.8.5. rollOut (ActionScript: The Definitive Guide)
rollOver: 10.8.4. rollOver (ActionScript: The Definitive Guide)
simulating dynamic event handling: 10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
button rollovers: 1.4. Adding sound effects (Designing Web Audio)
button sounds
length: 1.8. Interactive sound effects and buttons (Designing Web Audio)
mistakes: 1.7.1. Easy-to-use narration (Designing Web Audio)
multitrack digital editor, creating with: 1.8. Interactive sound effects and buttons (Designing Web Audio)
buttons
adding code to: 1.3.6. Scripting the Answer Buttons (ActionScript: The Definitive Guide)
adding scripts to: 16.3. Adding Scripts to Buttons (ActionScript: The Definitive Guide)
attaching event handlers to: 10.6.1. Attaching Event Handlers to Buttons and Movie Clips (ActionScript: The Definitive Guide)
form action buttons: 9.5.4. Action Buttons (HTML & XHTML: The Definitive Guide)
hit areas of: 10.8. Button Events (ActionScript: The Definitive Guide)
mouse (see event attributes Javascript language)
radio buttons: 9.5.3. Radio Buttons (HTML & XHTML: The Definitive Guide)
toggling yellow highlight rectangle: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
buttons, JavaScript-enabled: 11.6.4.2. Rollover buttons (Web Design in a Nutshell)
buttons on forms
tags for: 15.1. Summary of Form Tags (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
checkboxes: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.4. Checkbox (type=checkbox) (Web Design in a Nutshell)
custom: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.7. Custom button (type=button) (Web Design in a Nutshell)
image: 15.4.1.8. Image button (type=image) (Web Design in a Nutshell)
radio: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.5. Radio button (type=radio) (Web Design in a Nutshell)
submit and reset: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.6. Submit and reset buttons (type=submit; type=reset) (Web Design in a Nutshell)
byte keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
bytes
checking number downloaded to Player: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
checking size of clips or movies in: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
byteserving, linking to PDF files: 5.4.3.2. Linking to a specific page in a PDF file (Web Design in a Nutshell)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: C

cable modems: 5.1.1. Lossy compression (Designing Web Audio)
cables: A.3.2. High-quality cables (Designing Web Audio)
using high-quality: 3.1.9. High-quality cables (Designing Web Audio)
cache, preventing with loadVariables( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
caching images: 12.3.6.2. Reuse images whenever possible (Web Design in a Nutshell)
Cakewalk: 6.3. Professional webcasting (Designing Web Audio)
10.3.3. MIDI file editing tutorial (Designing Web Audio)
calculation scripts, creating: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
call( ) statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
Statement (ActionScript: The Definitive Guide) 6.3.7. The call( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
callback handlers
XML.onLoad( ) event handler and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket class and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.onClose event handler and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.onConnect event handler and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.onXML event handler and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
callee property (arguments object): 9.8.2.2. The callee property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
calling functions: 5.11.8. The Function Call Operator (ActionScript: The Definitive Guide)
9.1. Creating Functions (ActionScript: The Definitive Guide)
12.4. Methods (ActionScript: The Definitive Guide)
capitalization and small caps in style sheets: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
17.5.1. Type-Related Properties (Web Design in a Nutshell)
capitalizing text: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
capitalizing variables: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
Caps Lock key and isToggled( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
CAPSLOCK property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
caption-side property: 10.7. Tables (Cascading Style Sheets: The Definitive Guide)
caption, table: 2.10. Tables (HTML & XHTML: The Definitive Guide)
<caption> tags: 2.10. Tables (HTML & XHTML: The Definitive Guide)
captions, appearing consecutively beneath graphics: 7.4.2. Window types (Designing Web Audio)
captions for graphics: 6.1.3. The Techniques (Web Design in a Nutshell)
carbon copy (cc) field, mail messages: 6.2.8.1. Defining mail header fields (HTML & XHTML: The Definitive Guide)
cardioid microphones: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
cards (WML element): 32.3.1. Document Structure (Web Design in a Nutshell)
32.4. WML Elements and Attributes (Web Design in a Nutshell)
carriage returns (see paragraphs)
carriage returns in strings (see line breaks)
cascade (the): 1.2.4. Cascading (Cascading Style Sheets: The Definitive Guide)
2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
borders and: 7.4.4.1. Setting borders as quickly as possible (Cascading Style Sheets: The Definitive Guide)
rules: 2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
Cascading Style Sheets and Formatting Properties Working Group (CSS&FP): 1.2. CSS to the Rescue (Cascading Style Sheets: The Definitive Guide)
cascading style sheets (CSS): 17. Cascading Style Sheets (Web Design in a Nutshell)
accessibility features (CSS2): 6.2.2. CSS2 Features (Web Design in a Nutshell)
conflict resolution: 17.2.4. Conflicting Style Sheets: The Cascade (Web Design in a Nutshell)
CSS2 features: 17.7. What's New in CSS2 (Web Design in a Nutshell)
at-rules: 17.7.5. New "at-rules" (Web Design in a Nutshell)
fixed page width: 2.2.2.3. Creating fixed pages (Web Design in a Nutshell)
language features for: 7.3. Style Sheets Language Features (Web Design in a Nutshell)
positioning with: 17.5.2. Box Properties (Web Design in a Nutshell)
17.6. Positioning with Style Sheets (Web Design in a Nutshell)
for printouts: 5.3. Cascading Style Sheets for Printouts (Web Design in a Nutshell)
properties: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.5. Properties (Web Design in a Nutshell)
background: 17.5.3. Background Properties (Web Design in a Nutshell)
box properties: 17.5.2. Box Properties (Web Design in a Nutshell)
classification: 17.5.4. Classification Properties (Web Design in a Nutshell)
CSS2: 17.7.2. New Properties (Web Design in a Nutshell)
type-related: 17.5. Properties (Web Design in a Nutshell)
selectors: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.3. Selectors (Web Design in a Nutshell)
17.7.1. New Selectors (Web Design in a Nutshell)
values for rules: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.4. Specifying Values (Web Design in a Nutshell)
XML and: 30.2.2. Style Sheets and XML (Web Design in a Nutshell)
XSL vs.: 30.6. Where to Learn More (Web Design in a Nutshell)
case-conversion functions: 4.6.8. Character Case Conversion (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
case keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
case sensitivity: 6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
12.4.1.3. Defining styles for tags (HTML & XHTML: The Definitive Guide)
elements of style rules: 8.2.1. The Basics (HTML & XHTML: The Definitive Guide)
XHTML tags and attribute names: 3.4. Well-Formed Documents and XHTML (HTML & XHTML: The Definitive Guide)
16.3.4. Case Sensitivity (HTML & XHTML: The Definitive Guide)
case sensitivity in ActionScript: 14.6. Case Sensitivity (ActionScript: The Definitive Guide)
19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
case statement, simulating: 7.4. Simulating the switch Statement (ActionScript: The Definitive Guide)
case study for architecture: 10.2. A Case Study: Henry Ford Health System (Information Architecture for the World Wide Web)
case, transforming text in documents: 8.4.5.9. The text-transform property (HTML & XHTML: The Definitive Guide)
catch keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
categorizing data: 3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
CBR (constant bitrate): 8.4.1. Encoding MP3 files (Designing Web Audio)
C/C++ language for CGI scripting: 15.7. Demystifying CGI (Web Design in a Nutshell)
CDATA in XML source code: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
CDATA sections
JavaScript and CSS declarations, enclosing within: 16.3.7. Handling Special Characters (HTML & XHTML: The Definitive Guide)
in XML DTDs: 15.3.3. Entity Declarations (HTML & XHTML: The Definitive Guide)
CDATA_SECTION_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
CDDB (compact disc database): 8.4.1.1. Working with the CDDB (Designing Web Audio)
8.4.2.5. CDDB database support (Designing Web Audio)
CDNow: 6.6. Case study: N2K streams live M[DBLENTITY:ouml]tley Cr[DBLENTITY:uuml]e concert (Designing Web Audio)
ceil( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
cellpadding attribute ( ): 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.4.5. Table Cell Spacing (Web Design in a Nutshell)
13.5.4.1. Returns and spaces within <td> tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
10.2.1.7. The cellpadding attribute (HTML & XHTML: The Definitive Guide)
cells (tables): 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.3.1. Rows and Cells (Web Design in a Nutshell)
aligning text in: 13.4.3. Aligning Text in Cells (Web Design in a Nutshell)
collapsing in Netscape Navigator: 13.5.5. Collapsing Cells in Navigator (Web Design in a Nutshell)
coloring: 13.4.6. Coloring Tables (Web Design in a Nutshell)
controlling: 13.3.1.3. Cell-level controls (Web Design in a Nutshell)
fonts: 13.6.1. <font> and Tables (Web Design in a Nutshell)
size of: 13.4.4.2. Cell dimensions (Web Design in a Nutshell)
cellspacing attribute ( ): 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.4.5. Table Cell Spacing (Web Design in a Nutshell)
13.5.4.1. Returns and spaces within <td> tags (Web Design in a Nutshell)
10.2.1.6. The cellspacing attribute (HTML & XHTML: The Definitive Guide)
cellular telephones: 2.5.2. Hand-held Devices (Web Design in a Nutshell)
center attribute ( ): 5.2.6.6. Centering an image (HTML & XHTML: The Definitive Guide)
<center> tags: 4.7.6. The <center> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
center value (alignment): 5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
centering (see alignment)
centimeters (cm): 3.2.1. Absolute Length Units (Cascading Style Sheets: The Definitive Guide)
CERN servers: 4.1.1. Popular Server Software (Web Design in a Nutshell)
Cevents utility, RealAudio: 6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
cgi attribute (exec command): 18.6. SSI Commands (Web Design in a Nutshell)
cgi-bin directory: 6.4.7. Load balancing (Designing Web Audio)
4.1.3.1. CGI (Common Gateway Interface) (Web Design in a Nutshell)
CGI (Common Gateway Interface) programs, storing: 9.2.1. The action Attribute (HTML & XHTML: The Definitive Guide)
CGI (Common Gateway Interface) scripts: 4.1.3.1. CGI (Common Gateway Interface) (Web Design in a Nutshell)
15.7. Demystifying CGI (Web Design in a Nutshell)
15.7.2. Using Available Scripts (Web Design in a Nutshell)
(see also forms)
environment variables for: 18.7.1. Other Available Variables (Web Design in a Nutshell)
server-side imagemaps: 11.6. Imagemaps (Web Design in a Nutshell)
11.6.3. Server-Side Imagemaps (Web Design in a Nutshell)
change markers: 9.3. Absolute Positioning (Cascading Style Sheets: The Definitive Guide)
_changed event (text fields): 18.4.4. The _changed Event (ActionScript: The Definitive Guide)
changePages( ) (JavaScript example): 14.7.4.2. Loading two frames with JavaScript (Web Design in a Nutshell)
channels
balance of left/right
determining: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
determining distribution to left/right speakers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
distributing between left/right speakers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
channels, audio: 24.1. Basic Digital Audio Concepts (Web Design in a Nutshell)
24.3.3. Optimizing for the Web (Web Design in a Nutshell)
char attribute: B. List of Attributes (Web Design in a Nutshell)
10.2.3.2. The char and charoff attributes (HTML & XHTML: The Definitive Guide)
char keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
character encoding: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
B. Latin 1 Character Repertoire and Keycodes (ActionScript: The Definitive Guide)
character entities: 31.4.7. Character Entities (Web Design in a Nutshell)
2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
3.5.2. Character Entities (HTML & XHTML: The Definitive Guide)
4.10. Special Character Encoding (HTML & XHTML: The Definitive Guide)
6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
JavaScript: 12.3.5. JavaScript Entities (HTML & XHTML: The Definitive Guide)
references: 10.8. Character Entity References (Web Design in a Nutshell)
XML: 30.3.1. Well-Formed XML (Web Design in a Nutshell)
character indexes
string functions and: 4.6.4. Character Indexing (ActionScript: The Definitive Guide)
in text fields: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
character-order comparisons: 4.6.2.2. Character order and alphabetic comparisons (ActionScript: The Definitive Guide)
character sets
internationalization and: 7.1. Character Sets (Web Design in a Nutshell)
specifying character encoding: 7.1.3. Specifying Character Encoding (Web Design in a Nutshell)
characters
letter spacing: 8.4.5.1. The letter-spacing property (HTML & XHTML: The Definitive Guide)
reserved/unsafe in URLs: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
word spacing: 8.4.5.8. The word-spacing property (HTML & XHTML: The Definitive Guide)
charAt( ) (String class): function (ActionScript: The Definitive Guide) 4.6.5.2. The charAt( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
charCodeAt( ) (String class): function (ActionScript: The Definitive Guide) 4.6.9.2. The charCodeAt( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
charoff attribute: B. List of Attributes (Web Design in a Nutshell)
10.2.3.2. The char and charoff attributes (HTML & XHTML: The Definitive Guide)
charset attribute: B. List of Attributes (Web Design in a Nutshell)
6.3.1.10. The charset, hreflang, and type attributes (HTML & XHTML: The Definitive Guide)
6.8.1.4. The charset attribute (HTML & XHTML: The Definitive Guide)
12.3.1.2. The src and charset attributes (HTML & XHTML: The Definitive Guide)
chat client, creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Check Syntax command: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
checkboxes: 9.5.2. Checkboxes (HTML & XHTML: The Definitive Guide)
checkboxes on forms: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.4. Checkbox (type=checkbox) (Web Design in a Nutshell)
checked attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.1. Summary of Form Tags (Web Design in a Nutshell)
Chemical Markup Language (CML): 30.5.2. Other XML Applications (Web Design in a Nutshell)
child document relationship: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
child nodes
accessing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
checking for descendants: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
referring to
first descendant: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
last descendant: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
child selectors: 10.2.1.2. Child selector (Cascading Style Sheets: The Definitive Guide)
childNodes property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
children: 2.5. Structure (Cascading Style Sheets: The Definitive Guide)
choice grammar rules, elements: 15.4.1. Sequence, Choice, Grouping, and Repetition (HTML & XHTML: The Definitive Guide)
chr( ) (Flash 4): 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
chronological organization: 3.2.1.1.2. Chronological (Information Architecture for the World Wide Web)
6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
6.5.2.4. Yesterday's news: Indexing recent content (Information Architecture for the World Wide Web)
chunks, content: 7.5. Grouping Content (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.2. Content Mapping (Information Architecture for the World Wide Web)
Cinepak codec (Radius): 25.2.3. Video Codecs (Web Design in a Nutshell)
circle attribute: 10.6.1.1. Changing the bullet shape (Web Design in a Nutshell)
circle, moving movie clips in a: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
circular bullets: 7.3.1.1. The type attribute (HTML & XHTML: The Definitive Guide)
circular clips, detecting collisions: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
circular image map areas: 6.5.4.2. The coords attribute (HTML & XHTML: The Definitive Guide)
Cisco, load balancing: 6.4.7. Load balancing (Designing Web Audio)
cite attribute: B. List of Attributes (Web Design in a Nutshell)
4.8.1.1. The cite attribute (HTML & XHTML: The Definitive Guide)
4.8.2.1. The cite attribute (HTML & XHTML: The Definitive Guide)
and: 3.9.1.1. The cite attribute (HTML & XHTML: The Definitive Guide)
<cite> tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
4.4.3. The <cite> Tag (HTML & XHTML: The Definitive Guide)
10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
CLASS attribute: 2.3.1. Class Selectors (Cascading Style Sheets: The Definitive Guide)
Class C network: 8.6.1.3. Installing the SHOUTcast server software (Designing Web Audio)
.class files: 12.6.4. Downloading and Using Java Applets (Web Design in a Nutshell)
class keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
class methods, Java vs. ActionScript property equivalencies for: 12.5.4.5. Comparing Java terminology (ActionScript: The Definitive Guide)
class selectors: 2.3. Class and ID Selectors (Cascading Style Sheets: The Definitive Guide)
2.3.1. Class Selectors (Cascading Style Sheets: The Definitive Guide)
combining with pseudo-class selectors: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
vs. ID selectors: 2.3.3. Class? ID? What's the Difference? (Cascading Style Sheets: The Definitive Guide)
simulating: 10.2.2.4. Simulating class and ID (Cascading Style Sheets: The Definitive Guide)
universal selector and: 10.2.1.1. Universal selector (Cascading Style Sheets: The Definitive Guide)
CLASS selectors (style sheets): 17.3.3.1. class selector (Web Design in a Nutshell)
class variables, Java vs. ActionScript property equivalencies for: 12.5.4.5. Comparing Java terminology (ActionScript: The Definitive Guide)
classes: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
12. Objects and Classes (ActionScript: The Definitive Guide)
adding methods to: 12.5.2.3. Assigning methods to objects of a class (ActionScript: The Definitive Guide)
base class of ActionScript: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
built-in: 12.6.1. Built-in Classes (ActionScript: The Definitive Guide)
20.3. Built-in Classes and Objects (ActionScript: The Definitive Guide)
creating members of: 12.5.2.1. Creating members of a class (ActionScript: The Definitive Guide)
creating, reasons for: 12.5.1. Object Classes (ActionScript: The Definitive Guide)
customizing object properties: 12.5.2.2. Assigning custom properties to the objects of a class (ActionScript: The Definitive Guide)
defining constructor functions: 12.5.2. Making a Class (ActionScript: The Definitive Guide)
object-oriented programming and: 12.5. Classes and Object-Oriented Programming (ActionScript: The Definitive Guide)
superclasses and subclasses: 12.5.4. Superclasses and Subclasses (ActionScript: The Definitive Guide)
classes, picking names of: 6. Colors and Backgrounds (Cascading Style Sheets: The Definitive Guide)
classes, style: 8.3. Style Classes (HTML & XHTML: The Definitive Guide)
12.4.1.4. Defining style classes (HTML & XHTML: The Definitive Guide)
inheritance and: 8.3.6. Class Inheritance (HTML & XHTML: The Definitive Guide)
8.4.2. Property Inheritance (HTML & XHTML: The Definitive Guide)
classical music concerts, broadcasting live: 6.6.1. Capturing high-quality live sound (Designing Web Audio)
classid attribute: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
26.4.2.2. The <object> tag (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
classification style properties: 8.4.8. Classification Properties (HTML & XHTML: The Definitive Guide)
classification style sheet properties: 17.5.4. Classification Properties (Web Design in a Nutshell)
clear attribute ( ): 12.3.5.2. Stopping text wrap (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
4.7.1.1. The clear attribute (HTML & XHTML: The Definitive Guide)
clear images (see transparency)
clear property: 7.6.2. Clear (Cascading Style Sheets: The Definitive Guide)
8.4.6.7. The clear property (HTML & XHTML: The Definitive Guide)
clear property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
clearing floated elements: 7.6.2. Clear (Cascading Style Sheets: The Definitive Guide)
clickable image maps: 4.1. Browser Navigation Features (Information Architecture for the World Wide Web)
2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5. Mouse-Sensitive Images (HTML & XHTML: The Definitive Guide)
<img> tag: 5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.4. The <area> Tag (HTML & XHTML: The Definitive Guide)
a href="../xhtml/ch05_02.htm#INDEX-841"> 5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.3. The <map> Tag (HTML & XHTML: The Definitive Guide)
client-side: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.2. Client-Side Image Maps (HTML & XHTML: The Definitive Guide)
6.5.5. A Client-Side Image Map Example (HTML & XHTML: The Definitive Guide)
server-side: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.1. Server-Side Image Maps (HTML & XHTML: The Definitive Guide)
web browsers and: 6.5.6. Handling Other Browsers (HTML & XHTML: The Definitive Guide)
clickable imagemaps: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
11.6. Imagemaps (Web Design in a Nutshell)
12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
multipart images in tables: 13.8. Multipart Images in Tables (Web Design in a Nutshell)
text alternatives for: 6.1.3. The Techniques (Web Design in a Nutshell)
11.6.4.1. Providing complete alternative text (Web Design in a Nutshell)
client-pull documents: 13.1. An Overview of Dynamic Documents (HTML & XHTML: The Definitive Guide)
client-pull, meta tags for: 9.4.1.1. Meta tags for client-pull (Web Design in a Nutshell)
client-side image maps: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.2. Client-Side Image Maps (HTML & XHTML: The Definitive Guide)
example of: 6.5.5. A Client-Side Image Map Example (HTML & XHTML: The Definitive Guide)
client-side imagemaps: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
11.6. Imagemaps (Web Design in a Nutshell)
11.6.2. Client-Side Imagemaps (Web Design in a Nutshell)
12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
multipart images in tables: 13.8. Multipart Images in Tables (Web Design in a Nutshell)
text alternatives: 6.1.3. The Techniques (Web Design in a Nutshell)
11.6.4.1. Providing complete alternative text (Web Design in a Nutshell)
clients: 1.2.1. Clients, Servers, and Browsers (HTML & XHTML: The Definitive Guide)
1.2.1. Clients, Servers, and Browsers (HTML & XHTML: The Definitive Guide)
(see also servers)
clients, defined: 4.1. Servers 101 (Web Design in a Nutshell)
4.1. Servers 101 (Web Design in a Nutshell)
(see also browsers)
clip attribute ( ): 14.3.1.8. The clip attribute (HTML & XHTML: The Definitive Guide)
clip event loops (see movie clip events, loops)
clip events (see movie clip events)
clip parameters
configuring: 16.8.1.2. Configuring standard clip parameters (ActionScript: The Definitive Guide)
removing/reordering: 16.8.1.3. Removing and reordering standard clip parameters (ActionScript: The Definitive Guide)
clip property: 9.1.4.3. Element clipping (Cascading Style Sheets: The Definitive Guide)
clipping: 9.1.4.2. Overflow clipping (Cascading Style Sheets: The Definitive Guide)
clock, building: 13.9.1. Building a Clock with Clips (ActionScript: The Definitive Guide)
cloneNode( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
close( ) (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
closed organization schemes: 3.2.1.2.3. Audience-specific (Information Architecture for the World Wide Web)
clustering: 6.1.2. RealServer (Designing Web Audio)
CLUTs (color look-up tables): 3.3.3.2. Photoshop swatches (Web Design in a Nutshell)
22.1.2. Color Look-Up Tables (CLUT Files) (Web Design in a Nutshell)
cmd attribute (exec command): 18.6. SSI Commands (Web Design in a Nutshell)
CML (Chemical Markup Language): 30.5.2. Other XML Applications (Web Design in a Nutshell)
CMYK mode: 3.4.4.1. Work in RGB mode (Web Design in a Nutshell)
code
adding to buttons: 16.3. Adding Scripts to Buttons (ActionScript: The Definitive Guide)
attaching to frames: 1.1.2. Say Hi to Flash (ActionScript: The Definitive Guide)
16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
centralizing: 9.12. Centralizing Code (ActionScript: The Definitive Guide)
10.15. Code Reusability (ActionScript: The Definitive Guide)
16.3. Adding Scripts to Buttons (ActionScript: The Definitive Guide)
comments in: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
14.3. Comments (ActionScript: The Definitive Guide)
debugging: 19. Debugging (ActionScript: The Definitive Guide)
delimiters in: 14.1. Whitespace (ActionScript: The Definitive Guide)
execution
asynchronous (event-based): 10.2. Event-Based AsynchronousCode Execution (ActionScript: The Definitive Guide)
synchronous: 10.1. Synchronous Code Execution (ActionScript: The Definitive Guide)
16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
importing using #include directive: 16.7.2. #include (Compile-Time Import) (ActionScript: The Definitive Guide)
locating hidden: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
organizing into functions: 9.13.1. Organizing the Quiz Code into Functions (ActionScript: The Definitive Guide)
streamlining code authoring: 16.6. Productivity (ActionScript: The Definitive Guide)
tips for writing optimized code: 19.1.4. The Bandwidth Profiler (ActionScript: The Definitive Guide)
whitespace in: 14.1. Whitespace (ActionScript: The Definitive Guide)
code attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.6.5.2. Adding applets with <applet> (Web Design in a Nutshell)
code attribute ( ): 12.2.3.5. The code and codebase attributes (HTML & XHTML: The Definitive Guide)
Code Depot: 0.2. The Code Depot (ActionScript: The Definitive Guide)
code points for Latin 1 characters: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
B. Latin 1 Character Repertoire and Keycodes (ActionScript: The Definitive Guide)
creating strings from: function (ActionScript: The Definitive Guide) 4.6.9.1. The fromCharCode( )
generating strings from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hexadecimal escape sequences and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
inaccessible characters in strings: 4.5.2.3. Unicode-style escape sequences (ActionScript: The Definitive Guide)
retrieving: function (ActionScript: The Definitive Guide) 4.6.9.2. The charCodeAt( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sorting arrays: Method (ActionScript: The Definitive Guide) 11.9.2. The sort( )
vs. keycodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
code portability and movie clip event loops: 8.7.2.1. Keeping event loops portable (ActionScript: The Definitive Guide)
<code> tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
codebase attribute: B. List of Attributes (Web Design in a Nutshell)
codebase attribute ( ): 12.2.1.2. The codebase attribute (HTML & XHTML: The Definitive Guide)
codecs: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
bandwidth, RealAudio: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
determining which to use: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
lossless: 5.1.2. Lossless compression (Designing Web Audio)
lossy: 5.1.1. Lossy compression (Designing Web Audio)
MP3, installing appropriate: 8.6.1.2. Installing an appropriate MP3 codec (Designing Web Audio)
RealAudio: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
RealSystem G2, improvements in: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
codecs, video: 25.2.3. Video Codecs (Web Design in a Nutshell)
codetype attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.2.1.4. The codetype attribute (HTML & XHTML: The Definitive Guide)
<col> tag: 10.3.7.2. When to span and col (HTML & XHTML: The Definitive Guide)
collaboration: 2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
7.1.1. Face-to-Face Meetings (Information Architecture for the World Wide Web)
collapsing margins: 7.3.5. Collapsing Margins (Cascading Style Sheets: The Definitive Guide)
block-level elements: 8.2.1.2. Collapsing vertical margins (Cascading Style Sheets: The Definitive Guide)
floating and: 7.6.1. Floated Elements (Cascading Style Sheets: The Definitive Guide)
collisions, detecting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
colon (:): 8.2.3. Attributes (Web Design in a Nutshell)
in declarations: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
in pseudo-classes/pseudo-elements: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
pseudo-selectors (style sheets): 17.3.4. Pseudo-Selectors (Web Design in a Nutshell)
style sheet declarations: 17.2.1. Rule Syntax (Web Design in a Nutshell)
color
changing brightness of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
offset values for: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
percentage values for: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
randomly generating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting for a movie clip: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transformations: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
color as navigation feature: 4.1. Browser Navigation Features (Information Architecture for the World Wide Web)
color attribute: 4.6.2. The <basefont> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
4.6.3.2. The color attribute (HTML & XHTML: The Definitive Guide)
5.1.1.5. The color attribute (HTML & XHTML: The Definitive Guide)
COLOR attribute of HTML tag: 18.5.4. <FONT> (Font Control) (ActionScript: The Definitive Guide)
Color class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
color equivalents, list of: 3.1.2.5. Bringing the colors together (Cascading Style Sheets: The Definitive Guide)
color look-up tables (see CLUTs)
Color objects
applying transformations to clips: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setTransform( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
color property: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
8.4.4.7. The color property (HTML & XHTML: The Definitive Guide)
BODY attributes, replacing: 6.1.1.1. BODY attributes (Cascading Style Sheets: The Definitive Guide)
border-color property and: 6.1.1.2. Affecting borders (Cascading Style Sheets: The Definitive Guide)
inheritance and: 6.1.1.3. Inheriting color (Cascading Style Sheets: The Definitive Guide)
single keyword with: 2.2.2. Grouping Declarations (Cascading Style Sheets: The Definitive Guide)
color property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
color reproduction: 3.1.1. Named Colors (Cascading Style Sheets: The Definitive Guide)
color units: 3.6. Summary (Cascading Style Sheets: The Definitive Guide)
values (CSS2): 17.7.6. New Values for Existing Properties (Web Design in a Nutshell)
coloration: 3.1.5. Studio reference speakers (Designing Web Audio)
Color.getRGB( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Color.getTransform( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
colormaps: 17.5.1. Colors, Maps, and Indexes (HTML & XHTML: The Definitive Guide)
colors: 3.1. Colors (Cascading Style Sheets: The Definitive Guide)
6. Colors and Backgrounds (Cascading Style Sheets: The Definitive Guide)
3.3. Color on the Web (Web Design in a Nutshell)
22.2.2. "Snapping" to Web Colors (Web Design in a Nutshell)
5.3. Document Colors and Background Images (HTML & XHTML: The Definitive Guide)
attributes for tags: 10.5. The <font> Tag (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
background: 6.1.2. Background Color (Cascading Style Sheets: The Definitive Guide)
6.1.4. Good Practices (Cascading Style Sheets: The Definitive Guide)
17.5.3. Background Properties (Web Design in a Nutshell)
5.3.1.1. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
5.3.1.9. Mixing and matching body attributes (HTML & XHTML: The Definitive Guide)
8.4.4.2. The background-color property (HTML & XHTML: The Definitive Guide)
layers: 14.3.1.4. The background and bgcolor attributes (HTML & XHTML: The Definitive Guide)
marquees: 5.5.1.3. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
troubleshooting: 5.3.2.2. Problems with background, text, and link colors (HTML & XHTML: The Definitive Guide)
black and white designs: 2.4. Monitor Color Issues (Web Design in a Nutshell)
body elements: 9.3.1. Colors (Web Design in a Nutshell)
tag extensions: 5.3. Document Colors and Background Images (HTML & XHTML: The Definitive Guide)
border: 8.4.6.3. The border-color property (HTML & XHTML: The Definitive Guide)
borders: 7.4.3. Border Colors (Cascading Style Sheets: The Definitive Guide)
borders for elements: 17.5.2. Box Properties (Web Design in a Nutshell)
box rules (example): 13.7.4. Creating a Box Rule (Web Design in a Nutshell)
for browsers: 3.3.2. Color in Browsers ( The Web Palette) (Web Design in a Nutshell)
CLUTs (color look-up tables): 22.1.2. Color Look-Up Tables (CLUT Files) (Web Design in a Nutshell)
color blenders (hybrid colors): 22.4. Color Blenders (Web Design in a Nutshell)
CSS2 values for: 17.7.6. New Values for Existing Properties (Web Design in a Nutshell)
dithered: 17.5.2. Creating a Potentially Transparent Image (HTML & XHTML: The Definitive Guide)
dithering: 19.8.2.4. Limit dithering (Web Design in a Nutshell)
color names and: 16.2.2. Color Name Cautions (Web Design in a Nutshell)
GIF animation: 23.5.5. Other Options (Web Design in a Nutshell)
flat colors, designing with: 19.8.2.2. Design with flat color (Web Design in a Nutshell)
foreground: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
6.1.4. Good Practices (Cascading Style Sheets: The Definitive Guide)
foreground, for elements: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
frame borders: 11.3.1.2. Controlling frame borders and spacing (HTML & XHTML: The Definitive Guide)
11.4.1.6. The frameborder and bordercolor attributes (HTML & XHTML: The Definitive Guide)
GIFs and: 19.2. 8-Bit Indexed Color (Web Design in a Nutshell)
19.8.3.1. Weighted color reduction (Web Design in a Nutshell)
graphics file formats and: 5.2.1.1. GIF (HTML & XHTML: The Definitive Guide)
hexadecimal: 3.1.2.3. Hexadecimal colors (Cascading Style Sheets: The Definitive Guide)
short: 3.1.2.4. Short hexadecimal colors (Cascading Style Sheets: The Definitive Guide)
horizontal rules: 5.1.1.5. The color attribute (HTML & XHTML: The Definitive Guide)
hybrid: 22.4.2. Creating Hybrid Colors (Web Design in a Nutshell)
hyperlinks: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
9.3.1. Colors (Web Design in a Nutshell)
11.4. Affecting the Appearance of Links (Web Design in a Nutshell)
5.3.1.5. The link, vlink, and alink attributes (HTML & XHTML: The Definitive Guide)
8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
JavaScript Style Sheets (JSS), specifying values: 12.4.1.2. JSS values (HTML & XHTML: The Definitive Guide)
monitor capabilities: 2.4. Monitor Color Issues (Web Design in a Nutshell)
named: 3.1.1. Named Colors (Cascading Style Sheets: The Definitive Guide)
names for: 17.4.2.1. By name (Web Design in a Nutshell)
numbers of (see bit depth)
operating system and: 10.5.2. Colors (Cascading Style Sheets: The Definitive Guide)
palettes (see palettes)
percentage: 3.1.2.1. Percentage colors (Cascading Style Sheets: The Definitive Guide)
performance considerations: 5.3.2. Extending a Warning (HTML & XHTML: The Definitive Guide)
print designers and: 3.1.1. Designing for the Unknown (Web Design in a Nutshell)
reproducing: 3.1.1. Named Colors (Cascading Style Sheets: The Definitive Guide)
RGB: 3.1.2. Colors by RGB (Cascading Style Sheets: The Definitive Guide)
RGB value representation: 3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
16.1. Specifying Color by RGB Values (Web Design in a Nutshell)
17.4.2.2. By RGB values (Web Design in a Nutshell)
set by numbers: 3.1.2.2. Going by numbers (Cascading Style Sheets: The Definitive Guide)
specifying by name: 16.2. Specifying Colors by Name (Web Design in a Nutshell)
style properties for: 8.4.1.5. Color property values (HTML & XHTML: The Definitive Guide)
8.4.4. Color and Background Properties (HTML & XHTML: The Definitive Guide)
style sheet specifications: 17.4.2. Specifying Color (Web Design in a Nutshell)
tables: 13.4.6. Coloring Tables (Web Design in a Nutshell)
10.2.1.2. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
10.2.3.3. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
10.2.4.8. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
10.2.4.8. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
borders: 10.2.1.5. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
text: 4.6.3.2. The color attribute (HTML & XHTML: The Definitive Guide)
5.3.1.4. The text attribute (HTML & XHTML: The Definitive Guide)
8.4.4.7. The color property (HTML & XHTML: The Definitive Guide)
transparency: 19.7. Transparency (Web Design in a Nutshell)
5.2.1.2. Interlacing, transparency, and animation (HTML & XHTML: The Definitive Guide)
true color images: 17.5.1. Colors, Maps, and Indexes (HTML & XHTML: The Definitive Guide)
truecolor images: 21.4.3. Truecolor (Web Design in a Nutshell)
24-bit color: 20.1. 24-Bit Color (Web Design in a Nutshell)
WAP programming and: 32.2.3. Handheld Devices (Web Design in a Nutshell)
Web Palette: 2.4. Monitor Color Issues (Web Design in a Nutshell)
3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
16.1.3. Hexadecimal Values for Web Palette Colors (Web Design in a Nutshell)
22. Designing Graphics with the Web Palette (Web Design in a Nutshell)
color names vs.: 16.2.2. Color Name Cautions (Web Design in a Nutshell)
designing with web-safe colors: 22.1. Designing with Web-Safe Colors (Web Design in a Nutshell)
web-safe: 3.1.2.6. Web-safe colors (Cascading Style Sheets: The Definitive Guide)
Color.setRGB( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Color.setTransform( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ColorWeb Pro (Pantone): 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
cols attribute: B. List of Attributes (Web Design in a Nutshell)
9.7.1.1. The rows and cols attributes (HTML & XHTML: The Definitive Guide)
10.2.1.9. The cols attribute (HTML & XHTML: The Definitive Guide)
11.3.1.1. The rows and cols attributes (HTML & XHTML: The Definitive Guide)
14.2.1.1. The cols attribute (HTML & XHTML: The Definitive Guide)
tag: 14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.3.2. Establishing Rows and Columns (Web Design in a Nutshell)
15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
colspan attribute ( and ): 13.1. Summary of Table Tags (Web Design in a Nutshell)
10.2.4.4. The colspan attribute (HTML & XHTML: The Definitive Guide)
columns: 2.10. Tables (HTML & XHTML: The Definitive Guide)
(see also tables)
creating: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
CSS2 and: 11.1.3.1. Cleaning up (Cascading Style Sheets: The Definitive Guide)
frames: 11.3.1.1. The rows and cols attributes (HTML & XHTML: The Definitive Guide)
tags: 14.2.1. The <multicol> Tag (HTML & XHTML: The Definitive Guide)
multiline text entry areas: 9.7.1.1. The rows and cols attributes (HTML & XHTML: The Definitive Guide)
tables: 10.2.1.9. The cols attribute (HTML & XHTML: The Definitive Guide)
10.2.4.4. The colspan attribute (HTML & XHTML: The Definitive Guide)
defining column groups: 10.3.6. Defining Column Groups (HTML & XHTML: The Definitive Guide)
text layout in: 14.2. Multicolumn Layout (HTML & XHTML: The Definitive Guide)
17.4.1. Multicolumn Pages (HTML & XHTML: The Definitive Guide)
whitespace between (gutter): 14.2.1.2. The gutter attribute (HTML & XHTML: The Definitive Guide)
columns (frameset): 14.3.2. Establishing Rows and Columns (Web Design in a Nutshell)
columns (tables): 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.1. Summary of Table Tags (Web Design in a Nutshell)
(see also tables)
grouping: 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.3.3.2. Column groups (Web Design in a Nutshell)
sizing: 13.4.4. Sizing Tables (Web Design in a Nutshell)
13.7.4. Creating a Box Rule (Web Design in a Nutshell)
spanning: 13.3.2. Spanning Rows and Columns (Web Design in a Nutshell)
13.5.7. Column Span Problems (Web Design in a Nutshell)
two-column page layout: 13.7.5. Two-Column Page Layouts (Web Design in a Nutshell)
combined alignment: 4.1.3.7. Combined alignment (Cascading Style Sheets: The Definitive Guide)
combining text decorations: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
comma (,)
in clip property: 9.1.4.2. Overflow clipping (Cascading Style Sheets: The Definitive Guide)
separating selectors: 2.2.1. Grouping Selectors (Cascading Style Sheets: The Definitive Guide)
comma (,) in styles: 8.2.2. Multiple Selectors (HTML & XHTML: The Definitive Guide)
comma (,) operator: 5.9. The Comma Operator (ActionScript: The Definitive Guide)
in for loops: 8.4.1. Multiple Iterators in for Loops (ActionScript: The Definitive Guide)
, (comma) in styles: 8.2.2. Multiple Selectors (HTML & XHTML: The Definitive Guide)
command-line batch encoding options (RealAudio): 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
comment markers
//: 14.3. Comments (ActionScript: The Definitive Guide)
/* */: 14.3. Comments (ActionScript: The Definitive Guide)
comment tags
for SSI commands: 18.3. Adding SSI Commands to a Document (Web Design in a Nutshell)
for XSSI commands: 18.5.1. Flow Control Elements (Web Design in a Nutshell)
COMMENT_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
comments: 2.5.1. Comments (HTML & XHTML: The Definitive Guide)
3.5.3. Comments (HTML & XHTML: The Definitive Guide)
16.3.7. Handling Special Characters (HTML & XHTML: The Definitive Guide)
<comment> tags: 3.5.3. Comments (HTML & XHTML: The Definitive Guide)
CSS: 1.4.5. CSS Comments (Cascading Style Sheets: The Definitive Guide)
enclosing style declarations in: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
HTML: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
in tags: 8.1.7. Style Comments (HTML & XHTML: The Definitive Guide)
in XML DTDs: 15.3. Understanding XML DTDs (HTML & XHTML: The Definitive Guide)
comments in code: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
14.3. Comments (ActionScript: The Definitive Guide)
common elements, styling: 11.2.4. Styling Common Elements (Cascading Style Sheets: The Definitive Guide)
Common Gateway Interface (see CGI scripts)
15.7. Demystifying CGI (Web Design in a Nutshell)
Common Gateway Interface (CGI) programs, storing: 9.2.1. The action Attribute (HTML & XHTML: The Definitive Guide)
compact attribute: B. List of Attributes (Web Design in a Nutshell)
7.1.1.2. Compact unordered lists (HTML & XHTML: The Definitive Guide)
7.2.1.3. Compact ordered lists (HTML & XHTML: The Definitive Guide)
7.5.1.1. More compact definition lists (HTML & XHTML: The Definitive Guide)
compact disc database (CDDB): 8.4.1.1. Working with the CDDB (Designing Web Audio)
8.4.2.5. CDDB database support (Designing Web Audio)
compact discs
extracting data from: 8.4.1. Encoding MP3 files (Designing Web Audio)
interactive sound: 1.9. Interactive sound design case study (Designing Web Audio)
track numbers: 8.4.2.4. Working with ID3 tags (Designing Web Audio)
compare functions, creating: Method (ActionScript: The Definitive Guide) 11.9.2. The sort( )
comparison operators: 4.6.2.2. Character order and alphabetic comparisons (ActionScript: The Definitive Guide)
5.5. The Comparison Operators (ActionScript: The Definitive Guide)
datatype conversion and: 5.5.5. Comparison Operations and Datatype Conversion (ActionScript: The Definitive Guide)
primitive vs. composite data: 15.1. Copying, Comparing, and Passing Data (ActionScript: The Definitive Guide)
compile-time error messages: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
complex backgrounds: 6.2. Complex Backgrounds (Cascading Style Sheets: The Definitive Guide)
complex expressions: 3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
automatic typing: 3.3.2. Automatic Complex Expression Typing (ActionScript: The Definitive Guide)
conditional test expressions: 7.1. The if Statement (ActionScript: The Definitive Guide)
composite datatypes, equality rules for: 5.4.2. Composite Datatype Equality (ActionScript: The Definitive Guide)
composite vs. primitive data: 3.5. Primitive Data Versus Composite Data (ActionScript: The Definitive Guide)
copying, comparing, and passing: 15.1. Copying, Comparing, and Passing Data (ActionScript: The Definitive Guide)
passing values to functions: 9.8.3. Primitive Versus Composite Parameter Values (ActionScript: The Definitive Guide)
compound assignment operators: 5.2.1. Combining Operations with Assignment (ActionScript: The Definitive Guide)
comprehensive searching: 6.2.1.4. Comprehensive searching (research) (Information Architecture for the World Wide Web)
6.5.1. Indexing the Entire Site (Information Architecture for the World Wide Web)
compression: 4.3.2. Compression: reducing sound peaks and spikes (Designing Web Audio)
5.1.1. Lossy compression (Designing Web Audio)
animated GIFs: 23.6.1. Image Compression (Web Design in a Nutshell)
formats: 1.7.1.1. Capturing narration (Designing Web Audio)
GIF images: 19.3. GIF Compression (Web Design in a Nutshell)
JPEG images: 20.2. JPEG Compression (Web Design in a Nutshell)
lossless: 19.3. GIF Compression (Web Design in a Nutshell)
21.5. PNG Compression (Web Design in a Nutshell)
25.2.1. Lossless Versus Lossy Compression (Web Design in a Nutshell)
lossy: 20.2. JPEG Compression (Web Design in a Nutshell)
25.2.1. Lossless Versus Lossy Compression (Web Design in a Nutshell)
MP3: 8.2. What is MP3? (Designing Web Audio)
PNG format: 21.5. PNG Compression (Web Design in a Nutshell)
Shockwave file format: 26.7.1. Advantages (Web Design in a Nutshell)
video: 25.2. Compression (Web Design in a Nutshell)
compression rates, Flash: 9.2.2.2. Publishing and file size optimization (Designing Web Audio)
compressors: 3.1.4. Compressors/limiters (Designing Web Audio)
4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
Appendix A.2.3. Compressor/limiters (Designing Web Audio)
pro and budget options: A.2.3.1. Pro option (Designing Web Audio)
Computer Music Programs for the Macintosh (web site): A.4.1. Digital audio software (Designing Web Audio)
computer science, importance of: 2.2.3.6. Computer science (Information Architecture for the World Wide Web)
concat( )
Array class: method (ActionScript: The Definitive Guide) 11.7.3.4. The concat( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vs. += operator: function (ActionScript: The Definitive Guide) 4.6.1.1. The concat( )
concatenation (+) operator (Flash 5): 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
3.4.2.3. Converting to a string with empty string concatenation (ActionScript: The Definitive Guide)
4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.1. Addition (ActionScript: The Definitive Guide)
converting data to strings: 3.4.2.3. Converting to a string with empty string concatenation (ActionScript: The Definitive Guide)
concatenation (&) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
conceptual design: 8. Conceptual Design (Information Architecture for the World Wide Web)
8. Conceptual Design (Information Architecture for the World Wide Web)
(see also graphic design and layout)
blueprints: 8.4. High-Level Architecture Blueprints (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
brainstorming and exploring possibilities: 8.1. Brainstorming with White Boards and Flip Charts (Information Architecture for the World Wide Web)
metaphors for: 8.2. Metaphor Exploration (Information Architecture for the World Wide Web)
page mockups: 8.5. Architectural Page Mockups (Information Architecture for the World Wide Web)
site prototypes: 8.7. Web-Based Prototypes (Information Architecture for the World Wide Web)
condenser microphones: 3.1.1.3. Condenser microphones (Designing Web Audio)
budget option: A.2.1.2. Budget option (Designing Web Audio)
large and small diaphragm: A.2.1.2. Budget option (Designing Web Audio)
pro option: A.2.1.1. Pro option (Designing Web Audio)
conditional (?:) operator: 5.11.7. The conditional Operator (ActionScript: The Definitive Guide)
7.2.1. The Conditional Operator (ActionScript: The Definitive Guide)
conditional sections, XML DTD: 15.6. Conditional Sections (HTML & XHTML: The Definitive Guide)
conditionals: 1.2.3.1. Making choices using conditionals (ActionScript: The Definitive Guide)
7. Conditionals (ActionScript: The Definitive Guide)
in calculation scripts: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
statement blocks and: 7.5. Compact Conditional Syntax (ActionScript: The Definitive Guide)
in statements: 6.3.1. Loops and Conditionals (ActionScript: The Definitive Guide)
config command (SSI): 18.6. SSI Commands (Web Design in a Nutshell)
18.8. Time Formats for SSI Output (Web Design in a Nutshell)
connect( ) (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
connecting to Internet: 1.7.1.3. Internet connection (HTML & XHTML: The Definitive Guide)
connection rates, RealSystem G2: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
connections between Flash and servers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
consistency, achieving with style sheets: 11.1.1. Case 1: Consistent Look and Feel (Cascading Style Sheets: The Definitive Guide)
const keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
constant bitrate (CBR): 8.4.1. Encoding MP3 files (Designing Web Audio)
constant e (natural logarithmic base): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
raising to a specified power: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
constant-width fonts: 3.2.1.2. Fixed-width font (Web Design in a Nutshell)
constants
mathematical: 4.3.3.4. Irrational numbers (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
numeric: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
constructor functions
adding methods to classes: 12.5.2.3. Assigning methods to objects of a class (ActionScript: The Definitive Guide)
creating: 12.5.3.1. Creating inherited properties with the prototype property (ActionScript: The Definitive Guide)
members of a class: 12.5.2.1. Creating members of a class (ActionScript: The Definitive Guide)
object instances: 12.2. Instantiating Objects (ActionScript: The Definitive Guide)
12.5.2.1. Creating members of a class (ActionScript: The Definitive Guide)
defining: 12.5.2. Making a Class (ActionScript: The Definitive Guide)
inherited properties and: 12.5.3. Object Property Inheritance (ActionScript: The Definitive Guide)
overriding: 14.4. Reserved Words (ActionScript: The Definitive Guide)
constructor property (Object class): 12.5.3.3. The constructor property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
consumers (see audiences)
containers: 8.2.1. Containers (Web Design in a Nutshell)
containing blocks: 9.1. General Concepts (Cascading Style Sheets: The Definitive Guide)
descendant elements and: 9.3. Absolute Positioning (Cascading Style Sheets: The Definitive Guide)
positioning elements outside: 9.1.2. Side Offsets (Cascading Style Sheets: The Definitive Guide)
content area: 4.1.2. The Height of Lines (Cascading Style Sheets: The Definitive Guide)
8.1. Basic Boxes (Cascading Style Sheets: The Definitive Guide)
content attribute ( ): 9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.4. Using <meta> Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
6.8.1.2. The content attribute (HTML & XHTML: The Definitive Guide)
13.2.2.2. Refreshing with a different document (HTML & XHTML: The Definitive Guide)
content-based style tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
3.5. Document Content (HTML & XHTML: The Definitive Guide)
4.3.1. Content-Based Styles (HTML & XHTML: The Definitive Guide)
4.4. Content-Based Style Tags (HTML & XHTML: The Definitive Guide)
Content-Disposition header: 9.2.2.2. The multipart/form-data encoding (HTML & XHTML: The Definitive Guide)
9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
content in web pages, making accessible: 6.1.1. Web Content Accessibility Guidelines (Web Design in a Nutshell)
techniques for: 6.1.3. The Techniques (Web Design in a Nutshell)
content-language value (http-equiv attribute): 9.4.1.2. Other uses (Web Design in a Nutshell)
content layers: 1.2. What you can do with sound on the Web (Designing Web Audio)
content overflow (see overflow)
content property: 10.4. Generated Content (Cascading Style Sheets: The Definitive Guide)
Content-type header: 7.1.3. Specifying Character Encoding (Web Design in a Nutshell)
content-type value (http-equiv attribute): 9.4.1.2. Other uses (Web Design in a Nutshell)
content types: 5.6.2. Referencing Audio, Video, and Images (HTML & XHTML: The Definitive Guide)
6.7.2.4. The type attribute (HTML & XHTML: The Definitive Guide)
application/x-www-form-urlencoded: 9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
file-selection controls and: 9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
multipart/form-data: 9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
multipart/mixed: 13.3.1. The Multipart/Mixed Media Type (HTML & XHTML: The Definitive Guide)
multipart/x-mixed-replace: 13.3.2. Multipart Mixed-Replace Media Type (HTML & XHTML: The Definitive Guide)
text/css: 8.1.2.1. The type attribute (HTML & XHTML: The Definitive Guide)
text/plain: 9.2.2.3. The text/plain encoding (HTML & XHTML: The Definitive Guide)
contentType property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
contextual selectors: 2.5.1. Contextual Selectors (Cascading Style Sheets: The Definitive Guide)
child selectors and: 10.2.1.2. Child selector (Cascading Style Sheets: The Definitive Guide)
universal selector and: 10.2.1.1. Universal selector (Cascading Style Sheets: The Definitive Guide)
contextual selectors (style sheets): 17.3.2. Contextual Selectors (Web Design in a Nutshell)
contextual styles: 8.2.3. Contextual Selectors (HTML & XHTML: The Definitive Guide)
12.4.1.5. Using contextual styles (HTML & XHTML: The Definitive Guide)
continue statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
8.6.2. The continue Statement (ActionScript: The Definitive Guide)
CONTROL property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
controlled vocabulary: 3.2.2.5. Designing databases (Information Architecture for the World Wide Web)
taking label text from: 5.4.1.3. Controlled vocabularies and thesauri (Information Architecture for the World Wide Web)
5.5.1. The Basics (Information Architecture for the World Wide Web)
controller attribute ( ): 25.5.3.2. Special QuickTime <embed> attributes (Web Design in a Nutshell)
controller in Flash: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
controls attribute: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
25.5.4. The dynsrc Attribute (Web Design in a Nutshell)
controls attribute ( ): 5.2.7.2. The controls attribute (HTML & XHTML: The Definitive Guide)
controls, embedded: 6.4.2. Creating custom player controls (Designing Web Audio)
controls, loop: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
conversions
automatic datatype: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
automatic value: 2.4.2. Automatic Value Conversion (ActionScript: The Definitive Guide)
comparison operations and type conversions: 5.5.5. Comparison Operations and Datatype Conversion (ActionScript: The Definitive Guide)
datatypes to
Booleans: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
3.4.2.7. Converting to a Boolean (ActionScript: The Definitive Guide)
7.1. The if Statement (ActionScript: The Definitive Guide)
numbers: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
function (ActionScript: The Definitive Guide) 3.4.2.4. Converting to a number with the Number( )
5.3. Arithmetic Operators (ActionScript: The Definitive Guide)
strings: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
file formats to RealMedia formats: 6.3.2. Using the RealEncoder (Designing Web Audio)
equality operations and type conversions: 5.4.3. Equality and Datatype Conversion (ActionScript: The Definitive Guide)
explicit datatype: 3.4.2. Explicit Type Conversion (ActionScript: The Definitive Guide)
Flash 4 to Flash 5: 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
HTML documents to XHTML: 16.4.2. Automatic Conversion (HTML & XHTML: The Definitive Guide)
permanent: 3.4.3. Conversion Duration (ActionScript: The Definitive Guide)
temporary: 3.4.3. Conversion Duration (ActionScript: The Definitive Guide)
unexpected type: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
CoolEdit: 1.7.3. Designing music loops (Designing Web Audio)
for Windows (web site): A.4.1. Digital audio software (Designing Web Audio)
24.3.2.1. Windows audio tools (Web Design in a Nutshell)
4. Optimizing Your Sound Files (Designing Web Audio)
6.3. Professional webcasting (Designing Web Audio)
coordinate spaces (MovieClip class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
globalToLocal( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
localToGlobal( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
coordinates in image maps: 6.5.1. Server-Side Image Maps (HTML & XHTML: The Definitive Guide)
coords attribute: B. List of Attributes (Web Design in a Nutshell)
6.3.1.11. The coords and shape attributes (HTML & XHTML: The Definitive Guide)
6.5.4.2. The coords attribute (HTML & XHTML: The Definitive Guide)
tag: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
copyright laws: 8.6.2.2. Complying with copyright laws (Designing Web Audio)
infringement of: 8.7.1. Is MP3 legal? (Designing Web Audio)
Liquifier Pro, anti-piracy protections: 5.2.7. Liquid Audio (Designing Web Audio)
MP3 and: 8.7. Legalities of MP3 (Designing Web Audio)
copyright symbol: function (ActionScript: The Definitive Guide) 4.6.9.2. The charCodeAt( )
copyright value ( ): 9.4.2.1. Meta tags for search engines (Web Design in a Nutshell)
cos( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
cosine, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
countdown timer, building: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
counters for web pages: 1.2.1.1. Server log analysis (Web Design in a Nutshell)
counters in loops: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.4.1. Multiple Iterators in for Loops (ActionScript: The Definitive Guide)
Courier (font): 3.2.1.2. Fixed-width font (Web Design in a Nutshell)
createElement( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
createTextNode( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
critiquing
information architecture: 7.1.3. Information Architecture Critiques (Information Architecture for the World Wide Web)
web sites: 7.1.2. Web Site Critiques (Information Architecture for the World Wide Web)
crop marks: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
cross-fades: 1.7.3.1. Sound loops versus repetitive sound effects (Designing Web Audio)
cross marks: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
cross-platform sequencer: 10.3.3. MIDI file editing tutorial (Designing Web Audio)
crowd noises: 6.6.1. Capturing high-quality live sound (Designing Web Audio)
CSS2: 1.2. CSS to the Rescue (Cascading Style Sheets: The Definitive Guide)
3.5. CSS2 Units (Cascading Style Sheets: The Definitive Guide)
10. CSS2: A Look Ahead (Cascading Style Sheets: The Definitive Guide)
absolute font sizes, scaling factor and: 5.3.1. Absolute Sizes (Cascading Style Sheets: The Definitive Guide)
changes from CSS1: 10.1. Changes from CSS1 (Cascading Style Sheets: The Definitive Guide)
markers (bullets) and: 8.2.3. List Items (Cascading Style Sheets: The Definitive Guide)
new features with: 10.9. Summary (Cascading Style Sheets: The Definitive Guide)
scrollbars and: 8.2.1.1. Height (Cascading Style Sheets: The Definitive Guide)
selectors: 10.2. CSS2 Selectors (Cascading Style Sheets: The Definitive Guide)
side-offset properties and: 9.1.2. Side Offsets (Cascading Style Sheets: The Definitive Guide)
table elements: 8.4. Inline Elements (Cascading Style Sheets: The Definitive Guide)
CSS (Cascading Style Sheets): 1. HTML and CSS (Cascading Style Sheets: The Definitive Guide)
1. HTML and CSS (Cascading Style Sheets: The Definitive Guide)
2.12. Style Sheets and JavaScript (HTML & XHTML: The Definitive Guide)
8. Cascading Style Sheets (HTML & XHTML: The Definitive Guide)
benefits of: 1.2. CSS to the Rescue (Cascading Style Sheets: The Definitive Guide)
box properties: 8.4.6. Box Properties (HTML & XHTML: The Definitive Guide)
cascade (see cascade)
classification properties: 8.4.8. Classification Properties (HTML & XHTML: The Definitive Guide)
color and background properties: 8.4.4. Color and Background Properties (HTML & XHTML: The Definitive Guide)
file size and: 1.2.5. Compact File Size (Cascading Style Sheets: The Definitive Guide)
font properties: 8.4.3. Font Properties (HTML & XHTML: The Definitive Guide)
how to use: 8.6. Applying Styles to Documents (HTML & XHTML: The Definitive Guide)
HTML
combined with: 1.4. Bringing CSS and HTML Together (Cascading Style Sheets: The Definitive Guide)
styling comparison: 1.2.1. Rich Styling (Cascading Style Sheets: The Definitive Guide)
implementations of: 1.3.2. Implementations (Cascading Style Sheets: The Definitive Guide)
limitations of: 1.3. Limitations of CSS (Cascading Style Sheets: The Definitive Guide)
list properties: 8.4.7. List Properties (HTML & XHTML: The Definitive Guide)
using effectively: 8.4.7.5. Using list properties effectively (HTML & XHTML: The Definitive Guide)
making them work: 11.2.1. Making Styles Work (Cascading Style Sheets: The Definitive Guide)
properties
permitted on pseudo-element selectors: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
rectangular box model for: 8.4.6.1. The CSS2 formatting model (HTML & XHTML: The Definitive Guide)
rules: 2.1. Basic Rules (Cascading Style Sheets: The Definitive Guide)
sample projects: 11. CSS in Action (Cascading Style Sheets: The Definitive Guide)
style properties: 8.4. Style Properties (HTML & XHTML: The Definitive Guide)
style syntax: 8.3. Style Classes (HTML & XHTML: The Definitive Guide)
tag-less styles ( ): 8.5. Tag-less Styles: The <span> Tag (HTML & XHTML: The Definitive Guide)
text properties: 8.4.5. Text Properties (HTML & XHTML: The Definitive Guide)
tips for using: 11.2. Tips & Tricks (Cascading Style Sheets: The Definitive Guide)
XML and: 1.2.6. Preparing for the Future (Cascading Style Sheets: The Definitive Guide)
CSS comments: 1.4.5. CSS Comments (Cascading Style Sheets: The Definitive Guide)
.css filename extension: 1.4.1. The LINK Tag (Cascading Style Sheets: The Definitive Guide)
.css files: 17.2.2.3. External style sheets (Web Design in a Nutshell)
CSS&FP (Cascading Style Sheets and Formatting Properties Working Group): 1.2. CSS to the Rescue (Cascading Style Sheets: The Definitive Guide)
Cubase (Steinberg): 24.3.2.3. Tools for both Mac and Windows systems (Web Design in a Nutshell)
curly braces ({}) object initializers/statement block delimiters: 1.2.4. Modular Code (Functions) (ActionScript: The Definitive Guide)
6.2.1. Statement Blocks (ActionScript: The Definitive Guide)
curly double-quotes ( ): 10.4. Generated Content (Cascading Style Sheets: The Definitive Guide)
current version design strategy: 1.3.2. Current Version Design (Web Design in a Nutshell)
_currentframe property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
cursive fonts: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
cursive joining behavior: 7.2.3. Cursive Joining Behavior (Web Design in a Nutshell)
cursive text: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
cursor (see insertion point mouse)
outline for: 10.5.3. Outlines (Cascading Style Sheets: The Definitive Guide)
shape: 10.5.1. Cursors (Cascading Style Sheets: The Definitive Guide)
cursor property: 10.5.1. Cursors (Cascading Style Sheets: The Definitive Guide)
cursors, custom: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
CUSeeMe: 8.6. Start your own MP3 radio station (Designing Web Audio)
custom bullets: 8.4.7.1. The list-style-image property (HTML & XHTML: The Definitive Guide)
17.3. Custom Bullets (HTML & XHTML: The Definitive Guide)
custom form buttons: 15.4.1.7. Custom button (type=button) (Web Design in a Nutshell)
custom image buttons (forms): 9.5.4.3. Custom image buttons (HTML & XHTML: The Definitive Guide)
custom mouse pointers
Mouse.hide( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mouseMove event and: 10.11.3. mouseMove (ActionScript: The Definitive Guide)
simulating: 10.17. Event Handlers Applied (ActionScript: The Definitive Guide)
Custom Palette: 22.2. Converting to the Web Palette (Web Design in a Nutshell)
custom player controls
creating with JavaScript: 6.4.2. Creating custom player controls (Designing Web Audio)
embedding with RealPublisher: 6.4.2.3. Embedding custom player controls with RealPublisher (Designing Web Audio)
Cyberbit font: 7.1.2. 16-Bit Encoded Character Sets (Web Design in a Nutshell)
cycling documents: 13.2.2.3. Cycling among documents (HTML & XHTML: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: D

Darwin Streaming Media Server: 5.2.3. QuickTime (Designing Web Audio)
dashed borders: 8.4.6.5. The border-style property (HTML & XHTML: The Definitive Guide)
DAT (digital audio tape) machines: 3.1.6. DAT recorders (Designing Web Audio)
recorders (Designing Web Audio) A.2.11. DAT (digital audio tape)
field recording: 3.2.2. Field recording (Designing Web Audio)
lavaliere clip-on microphones: 3.1.1.4. Lavaliere clip-on microphones (Designing Web Audio)
live concerts: 3.2.2.1. Live concerts and events (Designing Web Audio)
data attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
12.2.1.5. The data attribute (HTML & XHTML: The Definitive Guide)
data containers, storing clip references in: 13.5.6.2. Storing references to clips in data containers (ActionScript: The Definitive Guide)
data, exchanging with XML
connecting systems: 15.8.3. Connecting Systems (HTML & XHTML: The Definitive Guide)
document exchange: 15.8.2. Document Exchange (HTML & XHTML: The Definitive Guide)
data movie clip event: 10.10.4. data (ActionScript: The Definitive Guide)
data movie clip event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
building preloaders: 10.10.4.2. Using a data event handler with loadMovie( ) (ActionScript: The Definitive Guide)
loadMovie( ) and: 10.10.4.2. Using a data event handler with loadMovie( ) (ActionScript: The Definitive Guide)
loadVariables( ) and: 10.10.4.1. Using a data event handler with loadVariables( ) (ActionScript: The Definitive Guide)
order of execution: 10.12. Order of Execution (ActionScript: The Definitive Guide)
data rate (video): 25.1. Basic Digital Video Concepts (Web Design in a Nutshell)
data tables: 13.2. Introduction to Tables (Web Design in a Nutshell)
data validation: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
data values and logical expressions: 5.7.4. Logical Expressions and Data Values (ActionScript: The Definitive Guide)
database model: 3.2.2.4. The relational database model: A bottom-up approach (Information Architecture for the World Wide Web)
databases
CDDB: 8.4.1.1. Working with the CDDB (Designing Web Audio)
8.4.2.5. CDDB database support (Designing Web Audio)
tracking RealAudio content: 6.4.6. Database management and tracking of RealAudio content (Designing Web Audio)
datatypes: 3. Data and Datatypes (ActionScript: The Definitive Guide)
built-in ActionScript: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
converting: 3.4. Datatype Conversion (ActionScript: The Definitive Guide)
comparison operations and: 5.5.5. Comparison Operations and Datatype Conversion (ActionScript: The Definitive Guide)
equality operations and: 5.4.3. Equality and Datatype Conversion (ActionScript: The Definitive Guide)
converting to
Booleans: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
3.4.2.7. Converting to a Boolean (ActionScript: The Definitive Guide)
7.1. The if Statement (ActionScript: The Definitive Guide)
numbers: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
function (ActionScript: The Definitive Guide) 3.4.2.4. Converting to a number with the Number( )
5.3. Arithmetic Operators (ActionScript: The Definitive Guide)
strings: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
creating data: 3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
Flash 4 to Flash 5 conversions: 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
manually determining: 2.4.3. Determining the Type Manually (ActionScript: The Definitive Guide)
3.4.5. Determining the Type of an Existing Datum (ActionScript: The Definitive Guide)
operators and: 5.1.5. Datatypes and Operators (ActionScript: The Definitive Guide)
primitive: 4. Primitive Datatypes (ActionScript: The Definitive Guide)
equality of: 5.4.1. Primitive Datatype Equality (ActionScript: The Definitive Guide)
vs. composite: 3.5. Primitive Data Versus Composite Data (ActionScript: The Definitive Guide)
variables and: 2.4. Types of Values (ActionScript: The Definitive Guide)
date and time, SSI and: 18.4.1. Example: Printing the Date and Time (Web Design in a Nutshell)
formatting: 18.8. Time Formats for SSI Output (Web Design in a Nutshell)
Date class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
DATE_GMT variable: 18.7. Include Variables (Web Design in a Nutshell)
DATE_LOCAL variable: 18.4. Using Environment Variables (Web Design in a Nutshell)
18.7. Include Variables (Web Design in a Nutshell)
Date objects, creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getDate( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getDay( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getFullYear( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getHours( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getMilliseconds( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getMinutes( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getMonth( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getSeconds( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getTime( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getTimezoneOffset( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getUTCDate( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getUTCDay( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getUTCFullYear( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getUTCHours( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getUTCMilliseconds( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getUTCMinutes( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getUTCMonth( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getUTCSeconds( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.getYear( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
dates
adding days to/subtracting days from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
applying custom formatting to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
calculating using milliseconds: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
loading SWF files based on: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setDate( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setFullYear( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setHours( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setMilliseconds( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setMinutes( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setMonth( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setSeconds( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setTime( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setUTCDate( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setUTCFullYear( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setUTCHours( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setUTCMilliseconds( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setUTCMinutes( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setUTCMonth( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setUTCSeconds( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.setYear( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
datetime attribute: B. List of Attributes (Web Design in a Nutshell)
datetime attribute ( and ): 3.9.1.2. The datetime attribute (HTML & XHTML: The Definitive Guide)
Date.toString( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.UTC( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date.valueOf( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
days of the month
assigning: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
days of the week
retrieving: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
dbx 262 Stereo compressor: A.2.3.2. Budget option (Designing Web Audio)
DC offset: 6.3. Professional webcasting (Designing Web Audio)
DCR files: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
.dcr (Shockwave) files: and Shockwave (.dcr) (Web Design in a Nutshell) 24.5.8. Flash (.swf)
26.7.3. Creating Shockwave Movies (Web Design in a Nutshell)
<dd> tag: 7.5.3. The <dd> Tag (HTML & XHTML: The Definitive Guide)
de-essing: 4.1.3.3. Equalization (Designing Web Audio)
4.3.4.1. Removing sibilance (Designing Web Audio)
dead space: 4.1.2. Avoiding gaps between edited sections (Designing Web Audio)
deallocating local variables: 2.5.8. Local Variables (ActionScript: The Definitive Guide)
debugger keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
Debugger tool: 19.1.5. The Debugger (ActionScript: The Definitive Guide)
debugging: 19. Debugging (ActionScript: The Definitive Guide)
methodology: 19.2. Debugging Methodology (ActionScript: The Definitive Guide)
problems
common sources of: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
fixing: 19.2.4. Fixing Bugs (ActionScript: The Definitive Guide)
identifying sources of: 19.2.2. Identifying the Source of a Bug (ActionScript: The Definitive Guide)
recognizing/reproducing: 19.2.1. Recognizing Bugs (ActionScript: The Definitive Guide)
tools: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
decimal (base-10)
integers: 4.3.1. Integer Literals (ActionScript: The Definitive Guide)
converting numbers to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
logarithm of e: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
decimal color representations: 3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
16.1.2. Converting Decimal to Hexadecimal (Web Design in a Nutshell)
decimal points in floating-point literals: 4.3.2. Floating-Point Literals (ActionScript: The Definitive Guide)
decimal values in percentage values: 3.1.2.1. Percentage colors (Cascading Style Sheets: The Definitive Guide)
decks/card metaphor in WML programming: 32.3.1. Document Structure (Web Design in a Nutshell)
declaration, function: 9.1. Creating Functions (ActionScript: The Definitive Guide)
declarations: 2.1.1. Rule Structure (Cascading Style Sheets: The Definitive Guide)
2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
grouping: 2.2.2. Grouping Declarations (Cascading Style Sheets: The Definitive Guide)
ignored: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
style sheet rules: 17.2.1. Rule Syntax (Web Design in a Nutshell)
XML: 30.3. XML Document Syntax (Web Design in a Nutshell)
declare attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
12.2.1.8. The declare attribute (HTML & XHTML: The Definitive Guide)
declaring variables: 2.1. Creating Variables (Declaration) (ActionScript: The Definitive Guide)
declaring XML entities and elements (see DTD for XML)
decoded strings, creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
decompressing JPEG images: 20.2.3. JPEG Decompression (Web Design in a Nutshell)
decompression: 5.1.1. Lossy compression (Designing Web Audio)
decorating text (see text decoration)
decrement ( ) operator: 5.3.4. Decrement (ActionScript: The Definitive Guide)
default keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
defer attribute: B. List of Attributes (Web Design in a Nutshell)
defer attribute ( ): 12.3.1.3. The defer attribute (HTML & XHTML: The Definitive Guide)
defining instance ( ) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
defining the web site: 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
definition list ( ) tag: 10.1.4. Lists (Web Design in a Nutshell)
10.6.3. Definition Lists (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
definition lists: 2.9.1. Unordered, Ordered, and Definition Lists (HTML & XHTML: The Definitive Guide)
7.5. Definition Lists (HTML & XHTML: The Definitive Guide)
custom list item markers: 17.3. Custom Bullets (HTML & XHTML: The Definitive Guide)
using appropriately: 7.6. Appropriate List Usage (HTML & XHTML: The Definitive Guide)
deflate compression scheme (PNG): 21.5. PNG Compression (Web Design in a Nutshell)
(deleted text) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
delay: 4. Optimizing Your Sound Files (Designing Web Audio)
4.2.2. Delay (Designing Web Audio)
document refresh: 13.2.2. The Refresh Header Contents (HTML & XHTML: The Definitive Guide)
loading (see performance)
marquee movement: 5.5.1.6. The scrollamount and scrolldelay attributes (HTML & XHTML: The Definitive Guide)
reverberation: 2.1.5. Reverberation and delay (Designing Web Audio)
delete operator: 5.11.4. The delete Operator (ActionScript: The Definitive Guide)
array elements, removing: 11.8.1. Removing Elements with the delete Operator (ActionScript: The Definitive Guide)
named array elements, removing: 11.6.2. Removing Named Elements (ActionScript: The Definitive Guide)
delete value for WML type attribute: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
DELETEKEY property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
delimiters
in code: 14.1. Whitespace (ActionScript: The Definitive Guide)
in strings converted from arrays: Method (ActionScript: The Definitive Guide) 11.9.4. The join( )
deprecated HTML tags: C. Deprecated Tags (Web Design in a Nutshell)
depth, hierarchy: 3.2.2.2. Designing hierarchies (Information Architecture for the World Wide Web)
depth-swapping instances: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
descendants: 2.5. Structure (Cascading Style Sheets: The Definitive Guide)
description value ( ): 9.4.2.1. Meta tags for search engines (Web Design in a Nutshell)
design, site
conceptual (see conceptual design)
graphic (see graphic design and layout)
designers: 2.2.3.1. Graphic design (Information Architecture for the World Wide Web)
2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
(see also graphic design and layout)
designing in HTML (see writing HTML documents)
destination pages: 6.5.2.1. Apples and apples: indexing similar content types (Information Architecture for the World Wide Web)
destructive editing: 4.2. Digital effects (Designing Web Audio)
developers
communication between: 2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
face-to-face meetings: 7.1.1. Face-to-Face Meetings (Information Architecture for the World Wide Web)
perspective of: 2.1.2. The Producer's Perspective (Information Architecture for the World Wide Web)
thinking like: 2.2.2. Thinking Like an Insider (Information Architecture for the World Wide Web)
wish lists of: 7.4.2. Wish Lists and Content Inventory Forms (Information Architecture for the World Wide Web)
developing web sites: 7. Research (Information Architecture for the World Wide Web)
7. Research (Information Architecture for the World Wide Web)
(see also developers)
blueprints: 8.4. High-Level Architecture Blueprints (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
conceptual design: 8. Conceptual Design (Information Architecture for the World Wide Web)
content/function requirements: 7.4. Identifying Content and Function Requirements (Information Architecture for the World Wide Web)
defining goals: 7.2. Defining Goals (Information Architecture for the World Wide Web)
design sketches: 8.6. Design Sketches (Information Architecture for the World Wide Web)
grouping (chunking) content: 7.5. Grouping Content (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.2. Content Mapping (Information Architecture for the World Wide Web)
initial phase of: 7.1. Getting Started (Information Architecture for the World Wide Web)
learning about audiences: 7.3. Learning About the Intended Audiences (Information Architecture for the World Wide Web)
page inventory: 9.3. Web Page Inventory (Information Architecture for the World Wide Web)
page mockups: 8.5. Architectural Page Mockups (Information Architecture for the World Wide Web)
scenarios: 8.3. Scenarios (Information Architecture for the World Wide Web)
site prototypes: 8.7. Web-Based Prototypes (Information Architecture for the World Wide Web)
style guides: 9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
device fonts, used by text fields: 18.3.7. Embed Fonts (ActionScript: The Definitive Guide)
(defining instance) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
<dfn> tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
4.4.5. The <dfn> Tag (HTML & XHTML: The Definitive Guide)
DHTML (Dynamic HTML): 29. Introduction to DHTML (Web Design in a Nutshell)
advantages/disadvantages of: 29.1.1. Advantages to Using DHTML (Web Design in a Nutshell)
browser detection and: 29.6. Browser Detection (Web Design in a Nutshell)
DOM (Document Object Model) and: 29.3. The Document Object Model (Web Design in a Nutshell)
drop-down menus and: 29.5.2. Drop-Down Menus (Web Design in a Nutshell)
layers, creating: 29.4. Creating Layers (Web Design in a Nutshell)
in 4.0 browsers: 29.6.1. Layers in the 4.0 Browsers (Web Design in a Nutshell)
sliding tabs, creating: 29.5.3. Sliding Tabs (Web Design in a Nutshell)
tools: 29.7. DHTML Tools (Web Design in a Nutshell)
Diamond Multimedia: 8.7.1. Is MP3 legal? (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
diatonic scale: 4.2.4. Bender (Designing Web Audio)
DigArtz, MIDI files created by: 10.2.2. Add a bit of spice to your site (Designing Web Audio)
Digidesign: 24.3.2.3. Tools for both Mac and Windows systems (Web Design in a Nutshell)
digital audio: 2.2. Digital audio demystified (Designing Web Audio)
encoding standards: 2.2. Digital audio demystified (Designing Web Audio)
digital audio software, shareware: A.4.1. Digital audio software (Designing Web Audio)
digital audio workstations: A.2.4. Digital audio workstation/recording editing software (Designing Web Audio)
digital distortion: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
digital effects: 4. Optimizing Your Sound Files (Designing Web Audio)
4.2. Digital effects (Designing Web Audio)
backwards: 4.2.5. Backwards (Designing Web Audio)
bender: 4.2.4. Bender (Designing Web Audio)
delay: 4.2.2. Delay (Designing Web Audio)
pitch shift: 4.2.3. Pitch shift (Designing Web Audio)
reverberation: 4.2.1. Reverb (Designing Web Audio)
Digital Frontiers
HVS ColorGIF: 19.5. Tools Overview (Web Design in a Nutshell)
HVS JPEG 2.1 plug-in: 20.5. Creating JPEGs (Web Design in a Nutshell)
digital mixers: A.2.8. Digital mixers (Designing Web Audio)
Appendix A.2.8. Digital mixers (Designing Web Audio)
(see also mixers)
Digital Performer (MOTU): 24.3.2.2. Mac audio tools (Web Design in a Nutshell)
Digital Signal Processor (see DSP)
digital software plug-ins: A.3.5. Audio plug-ins and utilities (Designing Web Audio)
Digital Unix v3.2: 6.3.3.2. RealServer system requirements (Designing Web Audio)
digital video (see video)
digitized waveforms: 2.2. Digital audio demystified (Designing Web Audio)
dir attribute: 7.2.2. Directionality (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
form controls: 9.9.3. The style, class, lang, and dir Attributes (HTML & XHTML: The Definitive Guide)
overriding with: 3.10. The <bdo> Tag (HTML & XHTML: The Definitive Guide)
table tags: 10.2.2.2. The dir and lang attributes (HTML & XHTML: The Definitive Guide)
Direct X plug-in (AnalogX), correcting DC offset: 6.3. Professional webcasting (Designing Web Audio)
direction attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
5.5.1.2. The behavior, direction, and loop attributes (HTML & XHTML: The Definitive Guide)
direction property in CSS2 for multilingualism: 7.3. Style Sheets Language Features (Web Design in a Nutshell)
directionality, microphones: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
directionality of character encodings: 7.2.2. Directionality (Web Design in a Nutshell)
DirectMusic: 10.3. Creating your own MIDI files (Designing Web Audio)
Director: 9.3. Introduction to Shockwave (Designing Web Audio)
11.4.4. Making a custom instrument from your imported samples (Designing Web Audio)
compression: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
cue points: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
embedded audio: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
streaming audio: 9.3.3. Shockwave streaming audio (Designing Web Audio)
Director, communicating with: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Director (Macromedia): 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
26.7. Shockwave for Director (Web Design in a Nutshell)
Director Shockwave: 5.2. Streaming media formats (Designing Web Audio)
5.2.4. Flash and Director Shockwave (Designing Web Audio)
9.2. Introduction to Flash (Designing Web Audio)
capbilities overview: B.7. Director Shockwave (Designing Web Audio)
directory lists: 7.7. Directory Lists (HTML & XHTML: The Definitive Guide)
directory structure in Unix: 4.2. Unix Directory Structures (Web Design in a Nutshell)
root directory: 4.1.2.1. Root directory (Web Design in a Nutshell)
4.2. Unix Directory Structures (Web Design in a Nutshell)
disabled attribute: 15.5. New Form Attributes in HTML 4.01 (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
disabled attribute (form controls): 9.9.6. The disabled and readonly Attributes (HTML & XHTML: The Definitive Guide)
disc attribute: 10.6.1.1. Changing the bullet shape (Web Design in a Nutshell)
disc bullets: 7.3.1.1. The type attribute (HTML & XHTML: The Definitive Guide)
disk optimization: 3.1.2. Microphone pre-amps (Designing Web Audio)
disk space: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
display (CSS2 value): 17.7.6. New Values for Existing Properties (Web Design in a Nutshell)
display driver, setting on Windows systems: 3.2.1.1. Working with absolute lengths (Cascading Style Sheets: The Definitive Guide)
display property: 2.9. Classification of Elements (Cascading Style Sheets: The Definitive Guide)
8.4.8.1. The display property (HTML & XHTML: The Definitive Guide)
additions/changes with CSS2: 10.1.1. Additions and Changes to the display Property (Cascading Style Sheets: The Definitive Guide)
markers (bullets): 10.4.2. Markers (Cascading Style Sheets: The Definitive Guide)
table-related values: 10.7. Tables (Cascading Style Sheets: The Definitive Guide)
display property (CSS): 17.5.4. Classification Properties (Web Design in a Nutshell)
displaying XML documents: 15.1.1. Creation Versus Display (HTML & XHTML: The Definitive Guide)
displays, designing for: 2. Designing for a Variety of Displays (Web Design in a Nutshell)
color capabilities: 2.4. Monitor Color Issues (Web Design in a Nutshell)
monitor resolution: 2.1. Dealing with Unknown Monitor Resolutions (Web Design in a Nutshell)
displays, form contents and: 9.11.2. Handling Limited Displays (HTML & XHTML: The Definitive Guide)
disposal methods (animation): 23.5.3. Disposal Methods (Web Design in a Nutshell)
distance (see length units)
distortion
analog versus digital: 3.2. Recording techniques (Designing Web Audio)
4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
harmonic: 6.3. Professional webcasting (Designing Web Audio)
dithering: 2.4. Monitor Color Issues (Web Design in a Nutshell)
3.3.2.1. Shifting and dithering (Web Design in a Nutshell)
19.8.2.4. Limit dithering (Web Design in a Nutshell)
color names and: 16.2.2. Color Name Cautions (Web Design in a Nutshell)
GIF animation: 23.5.5. Other Options (Web Design in a Nutshell)
DIV element
creating columns: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
wrapping images: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
<div> (division) tag: 2.6.2.1. Divisions, paragraphs, and line breaks (HTML & XHTML: The Definitive Guide)
10.1.1. Paragraphs and Headings (Block-Level Elements) (Web Design in a Nutshell)
10.4. <div> and <span> (Web Design in a Nutshell)
17.3.1.1. <div> and <span> (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
align attribute and: 10.7.3.1. The align attribute (Web Design in a Nutshell)
paragraphs and line breaks, using for: 10.2.1. Paragraphs and Line Breaks (Web Design in a Nutshell)
division assignment (/=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
division operator (/): 4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.6. Division (ActionScript: The Definitive Guide)
(definition list) tag: 10.1.4. Lists (Web Design in a Nutshell)
10.6.3. Definition Lists (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
DLS (downloadable sounds): 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
10.3. Creating your own MIDI files (Designing Web Audio)
10.3.4.2. Adding notes without using a keyboard (Designing Web Audio)
element, programming softkeys: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
32.4. WML Elements and Attributes (Web Design in a Nutshell)
Do Not Dispose method: 23.5.3. Disposal Methods (Web Design in a Nutshell)
do-while loop: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
8.3. The do-while Loop (ActionScript: The Definitive Guide)
DocBook: 30.5.2. Other XML Applications (Web Design in a Nutshell)
Doctor HTML: 8.5. Tips on Good HTML Style (Web Design in a Nutshell)
command: 3.6. HTML Document Elements (HTML & XHTML: The Definitive Guide)
DOCTYPE declarations: 9.2.1. The Document Type Declaration (Web Design in a Nutshell)
SMIL and: 27.4.2. Document Structure (Web Design in a Nutshell)
XML and: 30.3. XML Document Syntax (Web Design in a Nutshell)
DOCTYPE tag: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
docTypeDecl property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
document automation: 6.8. Supporting Document Automation (HTML & XHTML: The Definitive Guide)
document-level styles: 8.1.2. Document-Level Style Sheets (HTML & XHTML: The Definitive Guide)
12.4.1.1. External, document-level, and inline JSS (HTML & XHTML: The Definitive Guide)
advantages and disadvantages of using: 8.6.2.2. The pros and cons of document-level styles (HTML & XHTML: The Definitive Guide)
document levels: 2.5.6.2. Accessing variables on different document levels (ActionScript: The Definitive Guide)
attaching external variables to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
deleting movies from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_leveln global property: 13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
13.5.4.2. Referencing other documents in the Player using _leveln (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
loading SWF files
via loadMovie( ): 13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
13.5.4.2. Referencing other documents in the Player using _leveln (ActionScript: The Definitive Guide)
via loadMovieNum( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
printing frames
as bitmaps: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using vectors: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
removing using unloadMovie( ): with Instances and Levels (ActionScript: The Definitive Guide) 13.6.1. Using unloadMovie( )
DOCUMENT_NAME variable: 18.7. Include Variables (Web Design in a Nutshell)
Document Object Model (see DOM)
document pathnames: 6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
document-related events: 12.3.3.4. Document events (HTML & XHTML: The Definitive Guide)
document style sheets: 1.4.2. The STYLE Element (Cascading Style Sheets: The Definitive Guide)
document type declarations: 9.2.1. The Document Type Declaration (Web Design in a Nutshell)
document type definition (DTD): 2.9. Classification of Elements (Cascading Style Sheets: The Definitive Guide)
DOCUMENT_URI environment variable: 18.7. Include Variables (Web Design in a Nutshell)
documentation
for form elements: 9.11.1. Browser Constraints (HTML & XHTML: The Definitive Guide)
tags for: 6.8.1. The <meta> Header Element (HTML & XHTML: The Definitive Guide)
document.body DOM object: 29.3. The Document Object Model (Web Design in a Nutshell)
document.forms[ ] DOM object: 29.3. The Document Object Model (Web Design in a Nutshell)
DOCUMENT_FRAGMENT_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
document.getElementById( ) function: 29.5.2. Drop-Down Menus (Web Design in a Nutshell)
document.images[ ] DOM object: 29.3. The Document Object Model (Web Design in a Nutshell)
document.links[ ] DOM object: 29.3. The Document Object Model (Web Design in a Nutshell)
DOCUMENT_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
documents
embedding: 5.6.1. Embedded Versus Referenced Content (HTML & XHTML: The Definitive Guide)
5.6.4. Embedding Other Document Types (HTML & XHTML: The Definitive Guide)
exchanging with XML applications: 15.8.2. Document Exchange (HTML & XHTML: The Definitive Guide)
HTML (see HTML documents)
as layers: 14.3.1.7. The src attribute (HTML & XHTML: The Definitive Guide)
XHTML (see XHTML documents)
documents, web (see web pages)
DOCUMENT_TYPE_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
does-not-equal (!=) operator (Flash 5): operators (ActionScript: The Definitive Guide) 4.6.2.1. Using the equality (==) and inequality (!=)
5.4.4. The Inequality Operator (ActionScript: The Definitive Guide)
does-not-equal (ne) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
Dolby compression: 6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
Dolby Digital AC-3: 8.8. MP3 resources (Designing Web Audio)
DolbyNet Codec: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
DOM (Document Object Model): 29.3. The Document Object Model (Web Design in a Nutshell)
domains: 1.2. Talking the Internet Talk (HTML & XHTML: The Definitive Guide)
2.7.1. URLs (HTML & XHTML: The Definitive Guide)
dot (.) operator: 5.11.6. The dot Operator (ActionScript: The Definitive Guide)
accessing movie clip properties: 13.1. The "Objectness" of Movie Clips (ActionScript: The Definitive Guide)
accessing object properties: 12.3.1. Referring to Properties (ActionScript: The Definitive Guide)
traversing clip instance hierarchy: 13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
dot syntax
absolute paths of clips: function (ActionScript: The Definitive Guide) 13.5.6.6. The targetPath( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
accessing variables: 2.5.6. Accessing Variables on Different Timelines (ActionScript: The Definitive Guide)
controlling movie clips: C.2. Controlling Movie Clips (ActionScript: The Definitive Guide)
scope chain and: 9.7.1. The Scope Chain (ActionScript: The Definitive Guide)
dots-per-inch (dpi) environment: 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
dotted borders: 8.4.6.5. The border-style property (HTML & XHTML: The Definitive Guide)
double keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
double posting: 4.6.2. The Index (Information Architecture for the World Wide Web)
double-precision floating-point numbers: 4.3.2.1. Floating-point precision (ActionScript: The Definitive Guide)
double quotation marks ( ): 1.4.6. Inline Styles (Cascading Style Sheets: The Definitive Guide)
curly, in generated content: 10.4. Generated Content (Cascading Style Sheets: The Definitive Guide)
in font-family declarations: 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
double quotation marks ("), XHTML attribute values: 16.3.5. Quoted Attribute Values (HTML & XHTML: The Definitive Guide)
double quotes ("") in strings: 4.5.2. String Literals (ActionScript: The Definitive Guide)
DOWN property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
downloading delay (see performance)
downloading images (see images)
dpi (dots-per-inch) environment: 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
dpi (dots per inch), measuring resolution: 3.4.2. Image Resolution (Web Design in a Nutshell)
drag-and-drop interfaces, creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
dragging movie clips: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ending the drag operation: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
dragOut button event: 10.8.6. dragOut (ActionScript: The Definitive Guide)
dragOver button event: 10.8.7. dragOver (ActionScript: The Definitive Guide)
Dreamweaver: 5.2.5. Beatnik's Rich Music Format (RMF) (Designing Web Audio)
7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
11.1. New possibilities for interactive sound (Designing Web Audio)
11.4.4. Making a custom instrument from your imported samples (Designing Web Audio)
1.3.5. Take Advantage of Tools (Web Design in a Nutshell)
4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
8.6.2.2. Some available web authoring tools (Web Design in a Nutshell)
drop cap: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
with or without :first-letter pseudo-element: 11.2.9. Drop Caps With and Without :first-letter (Cascading Style Sheets: The Definitive Guide)
drop-down menus: 29.5.2. Drop-Down Menus (Web Design in a Nutshell)
drop shadow: 10.3.2. text-shadow (Cascading Style Sheets: The Definitive Guide)
_droptarget property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
drums: 10.3. Creating your own MIDI files (Designing Web Audio)
10.3.4.1. Creating your own MIDI file (Designing Web Audio)
dry signals, capturing: 3.2.1.1. Proper room acoustics: capturing a "dry" signal (Designing Web Audio)
dry sounds: 2.1.5. Reverberation and delay (Designing Web Audio)
DSP (Digital Signal Processor): 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
DSP/Effects plug-ins: 8.3.5. Plug-ins (Designing Web Audio)
<dt> tags: 7.5.2. The <dt> Tag (HTML & XHTML: The Definitive Guide)
DTD (document type definition): 2.9. Classification of Elements (Cascading Style Sheets: The Definitive Guide)
DTD for HTML: 3.6. HTML Document Elements (HTML & XHTML: The Definitive Guide)
DTD for XHTML
creating: 16.2.2. Understanding Namespaces (HTML & XHTML: The Definitive Guide)
declaring: 16.2.1. Declaring Document Types (HTML & XHTML: The Definitive Guide)
DTD for XML: 15.2. Documents and DTDs (HTML & XHTML: The Definitive Guide)
16.1.1. XHTML Document Type Definitions (HTML & XHTML: The Definitive Guide)
comments: 15.3. Understanding XML DTDs (HTML & XHTML: The Definitive Guide)
syntax for: 15.3.1. Comments (HTML & XHTML: The Definitive Guide)
conditional sections: 15.6. Conditional Sections (HTML & XHTML: The Definitive Guide)
creating (example): 15.7. Building an XML DTD (HTML & XHTML: The Definitive Guide)
elements: 15.3. Understanding XML DTDs (HTML & XHTML: The Definitive Guide)
declaration of: 15.3.4. Elements (HTML & XHTML: The Definitive Guide)
grammar of: 15.4. Element Grammar (HTML & XHTML: The Definitive Guide)
entities: 15.3. Understanding XML DTDs (HTML & XHTML: The Definitive Guide)
15.3.2. Entities (HTML & XHTML: The Definitive Guide)
declaration of: 15.3.3. Entity Declarations (HTML & XHTML: The Definitive Guide)
duplicateMovieClip( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
target parameter and: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding generated clips to stack: are added to the stack (ActionScript: The Definitive Guide) 13.4.2.2. How clips generated via duplicateMovieClip( )
copying clip event handlers: 10.13. Copying Clip Event Handlers (ActionScript: The Definitive Guide)
creating instances: 13.3.2.2. Creating instances with duplicateMovieClip( ) (ActionScript: The Definitive Guide)
load movie clip event and: 10.10.2. load (ActionScript: The Definitive Guide)
seed clips and: 13.2.7. Seed Clips (ActionScript: The Definitive Guide)
dur (duration) attribute: 27.4.5.2. Time control attributes (Web Design in a Nutshell)
DVD: 8.4.3.1. Selecting tracks (Designing Web Audio)
dynamic content (see SSI)
navigation bars and: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
preparing for: 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
search engines for: 6.1.2. When To Make Your Site Searchable (Information Architecture for the World Wide Web)
dynamic datatyping for variables: 2.4.1. Automatic Typing (ActionScript: The Definitive Guide)
dynamic documents: 13. Dynamic Documents (HTML & XHTML: The Definitive Guide)
client-pull: 13.2. Client-Pull Documents (HTML & XHTML: The Definitive Guide)
server-push: 13.3. Server -Push Documents (HTML & XHTML: The Definitive Guide)
Dynamic Fonts (TrueDoc): 3.2.4.1. TrueDoc Technology ("Dynamic Fonts") (Web Design in a Nutshell)
dynamic functions: 9.5. Function Literals (ActionScript: The Definitive Guide)
clip event handlers and: 10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
Dynamic HTML (see DHTML)
dynamic microphones: 3.1.1.2. Dynamic microphones (Designing Web Audio)
pro and budget options: A.2.1.2. Budget option (Designing Web Audio)
dynamic range: 2.1.1. Loudness (Designing Web Audio)
4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
definition of: 12. Glossary (Designing Web Audio)
dynamically-named variables: 2.1.2.1. Creating dynamically named variables (ActionScript: The Definitive Guide)
dynsrc attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
25.5.4. The dynsrc Attribute (Web Design in a Nutshell)
5.2.7.1. The dynsrc attribute (HTML & XHTML: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: E

E-commerce: 1.2. What you can do with sound on the Web (Designing Web Audio)
E property (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
echo command (SSI): 18.6. SSI Commands (Web Design in a Nutshell)
echo repeats in delay: 4.2.2. Delay (Designing Web Audio)
ECMA-262 standard: 0. Foreword (ActionScript: The Definitive Guide)
case-sensitivity requirements: 14.6. Case Sensitivity (ActionScript: The Definitive Guide)
differences among ActionScript, JavaScript, and: D. Differences from ECMA-262 and JavaScript (ActionScript: The Definitive Guide)
object-oriented programming resources: 12.5.5. Object-Oriented Programming Summary (ActionScript: The Definitive Guide)
potential reserved words: 14.4. Reserved Words (ActionScript: The Definitive Guide)
resources: A.2. ECMA-262 Resources (ActionScript: The Definitive Guide)
void operator and: 5.10. The void Operator (ActionScript: The Definitive Guide)
ECMAScript (JavaScript): 28.1. JavaScript History (Web Design in a Nutshell)
editing: 4.1. Basic sound editing (Designing Web Audio)
artifacts, removing: 4.1.3. Removing embedded artifacts (Designing Web Audio)
amplitude reduction: 4.1.3.2. Amplitude reduction (Designing Web Audio)
deleting spikes: 4.1.3.1. Deleting a spike (Designing Web Audio)
equalization: 4.1.3.3. Equalization (Designing Web Audio)
choosing takes and removing artifacts: 4.1.1. Choosing takes and removing artifacts (Designing Web Audio)
digital audio workstation software: A.2.4. Digital audio workstation/recording editing software (Designing Web Audio)
silences, avoiding: 4.1.2. Avoiding gaps between edited sections (Designing Web Audio)
editorial
ad hoc navigation: 4.4.4. Ad Hoc Navigation (Information Architecture for the World Wide Web)
responsibilities of: 2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
editors
creating seamless sound loops with: 1.7.3.4. Sound loop tutorial: creating seamless loops with a sound editor (Designing Web Audio)
MIDI: 10.3.1. MIDI editors (Designing Web Audio)
multitrack digital, creating button sounds: 1.8. Interactive sound effects and buttons (Designing Web Audio)
editors (HTML): 8.6.1. HTML Editors (Web Design in a Nutshell)
educational tools: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
effects for audio files: 24.3.2. Basic Sound Editing and Effects (Web Design in a Nutshell)
effects processors: A.2.10. Effects processors (Designing Web Audio)
element boxes: 7.1. Basic Element Boxes (Cascading Style Sheets: The Definitive Guide)
8.1. Basic Boxes (Cascading Style Sheets: The Definitive Guide)
element clipping: 9.1.4.3. Element clipping (Cascading Style Sheets: The Definitive Guide)
element nodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.nodeValue property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
element selectors: 2.1.1. Rule Structure (Cascading Style Sheets: The Definitive Guide)
ELEMENT_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
elements
classification of: 2.9. Classification of Elements (Cascading Style Sheets: The Definitive Guide)
floated (see floated elements)
overlapping, altering: 9.5. Stacking Positioned Elements (Cascading Style Sheets: The Definitive Guide)
styling common: 11.2.4. Styling Common Elements (Cascading Style Sheets: The Definitive Guide)
visibility of: 9.1.5. Element Visibility (Cascading Style Sheets: The Definitive Guide)
elements, nesting (see nesting)
elevation property: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
elif statement (XSSI): 18.5.1. Flow Control Elements (Web Design in a Nutshell)
else if statement: 7.3. The else if Statement (ActionScript: The Definitive Guide)
else statement: 7.2. The else Statement (ActionScript: The Definitive Guide)
else statement (XSSI): 18.5.1. Flow Control Elements (Web Design in a Nutshell)
em box: 5.3. Font Size (Cascading Style Sheets: The Definitive Guide)
em-height (em): 3.2.2.1. em and ex units (Cascading Style Sheets: The Definitive Guide)
em length value: 5.3.3. Percentages and Sizes (Cascading Style Sheets: The Definitive Guide)
em square: 5.3. Font Size (Cascading Style Sheets: The Definitive Guide)
<em> tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
4.4.6. The <em> Tag (HTML & XHTML: The Definitive Guide)
10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
WML: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
email
message links (mailto): 11.7.1. Mail Link (mailto:) (Web Design in a Nutshell)
sending form contents via: 15.7.2. Using Available Scripts (Web Design in a Nutshell)
email, mailto URL for: 6.2.8. The mailto URL (HTML & XHTML: The Definitive Guide)
9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
defining mail header fields: 6.2.8.1. Defining mail header fields (HTML & XHTML: The Definitive Guide)
form data via: 9.4. Using Email to Collect Form Data (HTML & XHTML: The Definitive Guide)
Embed Fonts option for text fields: 18.3.7. Embed Fonts (ActionScript: The Definitive Guide)
18.5.11. Using HTML as Output (ActionScript: The Definitive Guide)
EMBED tag: 1.3. Two easy ways to add sound (Designing Web Audio)
9.3.6. Quick and easy audio streaming with Shockwave (Designing Web Audio)
<embed> tags 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
for audio: 5.4.2. Alternative Audio Support (HTML & XHTML: The Definitive Guide)
embedded fonts: 3.2.4. Embedded Fonts (Web Design in a Nutshell)
embedded fonts in HTML text fields: 18.5.11. Using HTML as Output (ActionScript: The Definitive Guide)
embedded guides: 17.4.4. Embedded Guides (HTML & XHTML: The Definitive Guide)
embedded hypertext links: 4.4.4. Ad Hoc Navigation (Information Architecture for the World Wide Web)
embedded links (see hyperlinks)
embedded objects: 5.6.1. Embedded Versus Referenced Content (HTML & XHTML: The Definitive Guide)
5.6.4. Embedding Other Document Types (HTML & XHTML: The Definitive Guide)
<object> tags: 12.2. Embedded Content (HTML & XHTML: The Definitive Guide)
tags: 12.2.2. The <param> Tag (HTML & XHTML: The Definitive Guide)
(HTML & XHTML: The Definitive Guide) 12.2.3. The <applet> Tag (Deprecated)
12.2.4. The <embed> Tag (HTML & XHTML: The Definitive Guide)
12.2.5. The <noembed> Tag (HTML & XHTML: The Definitive Guide)
embedded objects in pages
ActiveX controls: 5.4.1. Viewing PDF Files (Web Design in a Nutshell)
tags: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.5.1. The <object> Tag (Web Design in a Nutshell)
12.5.2. The <embed> Tag (Web Design in a Nutshell)
Flash movies: 26.4.2.2. The <object> tag (Web Design in a Nutshell)
object parameters: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.6.5.2. Adding applets with <applet> (Web Design in a Nutshell)
video: 25.5.3. Embedded QuickTime Movies (Web Design in a Nutshell)
Embedded OpenType (.eot) file format: 3.2.4.2. OpenType (for Internet Explorer) (Web Design in a Nutshell)
embedded style sheets: 1.4.2. The STYLE Element (Cascading Style Sheets: The Definitive Guide)
5.3.2.2. Using two embedded style sheets (Web Design in a Nutshell)
17.2.2.2. Embedded style sheets (Web Design in a Nutshell)
embedded tags: 2.3. Embedded Tags (HTML & XHTML: The Definitive Guide)
2.3. Embedded Tags (HTML & XHTML: The Definitive Guide)
(see also HTML tags)
Emblaze file format: 12. Glossary (Designing Web Audio)
embossed media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
emphasis, tags for: 4.4.5. The <dfn> Tag (HTML & XHTML: The Definitive Guide)
4.4.6. The <em> Tag (HTML & XHTML: The Definitive Guide)
4.4.9. The <strong> Tag (HTML & XHTML: The Definitive Guide)
4.5.1. The <b> Tag (HTML & XHTML: The Definitive Guide)
4.5.3. The <blink> Tag (HTML & XHTML: The Definitive Guide)
4.5.4. The <i> Tag (HTML & XHTML: The Definitive Guide)
empty-clip timeline loops, creating: 8.7.1. Creating an Empty-Clip Timeline Loop (ActionScript: The Definitive Guide)
empty elements in XHTML: 31.4.4. Empty Elements (Web Design in a Nutshell)
empty elements in XHTML documents: 16.3.3. Handling Empty Elements (HTML & XHTML: The Definitive Guide)
empty statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
6.3.11. The Empty Statement (ActionScript: The Definitive Guide)
empty strings: 4.5.2.1. The empty string (ActionScript: The Definitive Guide)
empty.rpm file: 6.4.2.2. Note of caution (Designing Web Audio)
ems for style sheet measurements: 2.2.1.3. Creating flexible pages (Web Design in a Nutshell)
emulators for WAP: 32.2.5. WAP Emulators (Web Design in a Nutshell)
Emusic: 8.5.1. Creating your own MP3 site (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
online record company: 8.7.2. Legal MP3 files: headline artists sign up for MP3 (Designing Web Audio)
encoded
audio data: 24.1. Basic Digital Audio Concepts (Web Design in a Nutshell)
character sets: 7.1.1. 8-Bit Encoded Character Sets (Web Design in a Nutshell)
URLs: 15.3.3. Encoding (Web Design in a Nutshell)
encoded strings, creating: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
encoding: 1.7.1.1. Capturing narration (Designing Web Audio)
8.1.2.1. The type attribute (HTML & XHTML: The Definitive Guide)
(see also content types)
compression: 1.7.1.1. Capturing narration (Designing Web Audio)
digital audio standards: 2.2. Digital audio demystified (Designing Web Audio)
file-selection controls and: 9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
Liquifier tool: 8.8. MP3 resources (Designing Web Audio)
RealSystem G2 innovations in: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
encryption: 8.8. MP3 resources (Designing Web Audio)
enctype attribute: 9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
enctype attribute ( ): 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.3.3. Encoding (Web Design in a Nutshell)
15.4.1.9. File selection (type=file) (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
END property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
endif statement (XSSI): 18.5.1. Flow Control Elements (Web Design in a Nutshell)
ending tags: 2.3.1. Start and End Tags (HTML & XHTML: The Definitive Guide)
3.3.3. Starting and Ending Tags (HTML & XHTML: The Definitive Guide)
16.3.3. Handling Empty Elements (HTML & XHTML: The Definitive Guide)
omitting in HTML: 3.3.5. Tags Without Ends (HTML & XHTML: The Definitive Guide)
XHTML vs. HTML documents: 16.3.2. End Tags (HTML & XHTML: The Definitive Guide)
Enigma III Shockwave mixer: 9.1. Flash and Shockwave basics (Designing Web Audio)
9.3. Introduction to Shockwave (Designing Web Audio)
Enter key
capturing: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
disabling with Single Line option: 18.3.1. Line Display (ActionScript: The Definitive Guide)
ENTER property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
enterFrame movie clip event: 10.10.1. enterFrame (ActionScript: The Definitive Guide)
enterFrame movie clip event handler: 10.10.1. enterFrame (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
building a portable preloader: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
capturing shortcut-key-style combinations: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
checking for keypresses: 10.11.5. keyUp (ActionScript: The Definitive Guide)
creating loops with: 8.7.2. Flash 5 Clip Event Loops (ActionScript: The Definitive Guide)
13.2.4. Process Clips (ActionScript: The Definitive Guide)
order of execution: 10.12. Order of Execution (ActionScript: The Definitive Guide)
simulating dynamic event handling: 10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
entities: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
3.5.2. Character Entities (HTML & XHTML: The Definitive Guide)
4.10. Special Character Encoding (HTML & XHTML: The Definitive Guide)
JavaScript: 12.3.5. JavaScript Entities (HTML & XHTML: The Definitive Guide)
URL encodings: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
entity and element declarations (XML) (see DTD for XML)
ENTITY_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ENTITY_REFERENCE_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
enum keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
envelope: 12. Glossary (Designing Web Audio)
environment variables: 18.4. Using Environment Variables (Web Design in a Nutshell)
18.7. Include Variables (Web Design in a Nutshell)
.eot (Embedded Open Type) file format: 3.2.4.2. OpenType (for Internet Explorer) (Web Design in a Nutshell)
eq (equality) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
= (equal sign) for tag attributes: 3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
equal sign (=) for tag attributes: 3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
equality (==) operator (Flash 5): operators (ActionScript: The Definitive Guide) 4.6.2.1. Using the equality (==) and inequality (!=)
5.4. The Equality and Inequality Operators (ActionScript: The Definitive Guide)
equality (eq) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
equality of primitive datatypes: 5.4.1. Primitive Datatype Equality (ActionScript: The Definitive Guide)
equalization (EQ): 2.1.2. Pitch (Designing Web Audio)
4.3.3. Equalization: customizing your sound (Designing Web Audio)
audio enhancements: 4.3.4. Using EQ to enhance audio (Designing Web Audio)
mixers: 3.1.3. Mixers (Designing Web Audio)
MP3: 8.3.3. Using the equalizer (Designing Web Audio)
removing artifacts: 4.1.3.3. Equalization (Designing Web Audio)
equalizers: 8.3.3. Using the equalizer (Designing Web Audio)
home versus professional: 4.3.3. Equalization: customizing your sound (Designing Web Audio)
interfaces: 4.3.3. Equalization: customizing your sound (Designing Web Audio)
equals sign (=) assignment operator: 5.2. The Assignment Operator (ActionScript: The Definitive Guide)
equals sign (=), using attributes: 8.2.3. Attributes (Web Design in a Nutshell)
equipment, professional versus consumer grade: A.2.1.1. Pro option (Designing Web Audio)
Eriksson, Frederic: 11.6.1.1. Available tools (Web Design in a Nutshell)
errmsg attribute (config command): 18.6. SSI Commands (Web Design in a Nutshell)
error checking: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
error messages: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
errors, debugging: 19. Debugging (ActionScript: The Definitive Guide)
escape( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Escape key, capturing: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
ESCAPE property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
escape sequences
in ActionScript: 4.5.2.2. Escape sequences (ActionScript: The Definitive Guide)
hexadecimal: 4.5.2.3. Unicode-style escape sequences (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
in string literals: 4.5.2.2. Escape sequences (ActionScript: The Definitive Guide)
Unicode: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
4.5.2.3. Unicode-style escape sequences (ActionScript: The Definitive Guide)
B. Latin 1 Character Repertoire and Keycodes (ActionScript: The Definitive Guide)
escaped strings, decoding: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
eval( ) global function: 4.6.10. Executing Code in a String with eval (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Selection.getFocus( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
event attributes: 4.1.1.7. Event attributes (HTML & XHTML: The Definitive Guide)
4.1.2.5. Event attributes (HTML & XHTML: The Definitive Guide)
4.7.5.5. Event attributes (HTML & XHTML: The Definitive Guide)
4.7.6.3. Event attributes (HTML & XHTML: The Definitive Guide)
4.8.1.4. Event attributes (HTML & XHTML: The Definitive Guide)
4.8.2.4. Event attributes (HTML & XHTML: The Definitive Guide)
4.9.1.3. Event attributes (HTML & XHTML: The Definitive Guide)
5.2.6.16. The name, onAbort, onError, onLoad and other event attributes (HTML & XHTML: The Definitive Guide)
7.1.1.6. The event attributes (HTML & XHTML: The Definitive Guide)
9.2.8. The Event Attributes (HTML & XHTML: The Definitive Guide)
9.9.2. The event Attributes (HTML & XHTML: The Definitive Guide)
(client-side image maps): 6.5.4.6. The event attributes (HTML & XHTML: The Definitive Guide)
content-based tags: 4.4.13. Event Attributes (HTML & XHTML: The Definitive Guide)
frames and: 11.3.1.3. Frames and JavaScript (HTML & XHTML: The Definitive Guide)
tags: 4.2.1.4. Event attributes (HTML & XHTML: The Definitive Guide)
6.3.1.4. The event attributes (HTML & XHTML: The Definitive Guide)
objects and: 12.2.1.14. Object event handling (HTML & XHTML: The Definitive Guide)
physical style tags: 4.5.14. Event Attributes (HTML & XHTML: The Definitive Guide)
(push buttons): 9.5.4.4. Push buttons (HTML & XHTML: The Definitive Guide)
table tags: 10.2.2.4. The event attributes (HTML & XHTML: The Definitive Guide)
event-based execution model: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
10.2. Event-Based AsynchronousCode Execution (ActionScript: The Definitive Guide)
event handlers: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
10.4. Event Handlers (ActionScript: The Definitive Guide)
applications of: 10.17. Event Handlers Applied (ActionScript: The Definitive Guide)
attaching to
built-in object classes: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
buttons/movie clips: 10.6.1. Attaching Event Handlers to Buttons and Movie Clips (ActionScript: The Definitive Guide)
centralizing code: 10.15. Code Reusability (ActionScript: The Definitive Guide)
creating: 10.6. Creating Event Handlers (ActionScript: The Definitive Guide)
debugging: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
defining: 10.5. Event Handler Syntax (ActionScript: The Definitive Guide)
examples of: 10.17. Event Handlers Applied (ActionScript: The Definitive Guide)
life span of: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
missing: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
movie clips: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onClose (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onConnect (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onData( )
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onLoad( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onXML (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
scope: 10.7. Event Handler Scope (ActionScript: The Definitive Guide)
scripting buttons: 1.3.6. Scripting the Answer Buttons (ActionScript: The Definitive Guide)
vs. functions: 10.4. Event Handlers (ActionScript: The Definitive Guide)
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
event handlers (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
event protocol (getURL( )): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
event sounds, MIDI: 10.2.2. Add a bit of spice to your site (Designing Web Audio)
events: 10. Events and Event Handlers (ActionScript: The Definitive Guide)
button (see button events)
_changed event (text fields): 18.4.4. The _changed Event (ActionScript: The Definitive Guide)
movie clip (see movie clip events)
types of: 10.3. Types of Events (ActionScript: The Definitive Guide)
ex-height (ex): 3.2.2.1. em and ex units (Cascading Style Sheets: The Definitive Guide)
exact organization: 3.2.1.1. Exact organization schemes (Information Architecture for the World Wide Web)
Exact Palette: 22.2. Converting to the Web Palette (Web Design in a Nutshell)
exec command (SSI): 18.6. SSI Commands (Web Design in a Nutshell)
exec command (standalone Player): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
executable content: 12. Executable Content (HTML & XHTML: The Definitive Guide)
applets: 12.1. Applets and Objects (HTML & XHTML: The Definitive Guide)
JavaScript style sheets: 12.4. JavaScript Style Sheets (HTML & XHTML: The Definitive Guide)
execution model, event-based: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
10.2. Event-Based AsynchronousCode Execution (ActionScript: The Definitive Guide)
execution order
of clip event handlers: 10.12. Order of Execution (ActionScript: The Definitive Guide)
of code on layers: 13.4.4. Stacks and Order of Execution (ActionScript: The Definitive Guide)
existence searching: 6.2.1.2. Existence searching (Information Architecture for the World Wide Web)
exp( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Expert Mode (Actions panel): 16.1.1.2. Expert Mode (ActionScript: The Definitive Guide)
adding code to Actions panel: 1.1.2. Say Hi to Flash (ActionScript: The Definitive Guide)
multiline comments and: 14.3. Comments (ActionScript: The Definitive Guide)
expires value (http-equiv attribute): 9.4.1.2. Other uses (Web Design in a Nutshell)
explicit datatype conversion: 3.4.2. Explicit Type Conversion (ActionScript: The Definitive Guide)
explicit label associations (forms): 9.10.1.1. Implicit and explicit associations (HTML & XHTML: The Definitive Guide)
explicit vs. implicit variable declaration: 2.1.1. Automatic Variable Creation (ActionScript: The Definitive Guide)
exploratory searching: 6.2.1.3. Exploratory searching (Information Architecture for the World Wide Web)
exponents in floating-point literals: 4.3.2. Floating-Point Literals (ActionScript: The Definitive Guide)
export keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
exporting sounds: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
expression statements: 6.3.2. Expression Statements (ActionScript: The Definitive Guide)
expressions: 1.2.2. Expressions (ActionScript: The Definitive Guide)
6.2. Statement Syntax (ActionScript: The Definitive Guide)
in assignment operations: 5.2. The Assignment Operator (ActionScript: The Definitive Guide)
complex: 3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
automatic typing: 3.3.2. Automatic Complex Expression Typing (ActionScript: The Definitive Guide)
creating data using: 3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
literal: 1.2.2. Expressions (ActionScript: The Definitive Guide)
3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
operators and: 5.1.1. Operators and Expressions (ActionScript: The Definitive Guide)
regular (not supported): 4.6.5.5. No regular expressions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Extend Media TAG: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
Extended Font Model: 4.6.1. The Extended Font Size Model (HTML & XHTML: The Definitive Guide)
Extended Server Side Includes (XXSI): 18.5. XSSI (Web Design in a Nutshell)
extends keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
Extensible Markup Language (see XML)
30. Introduction to XML (Web Design in a Nutshell)
1.4. XHTML: What It Is (HTML & XHTML: The Definitive Guide)
Extensible Style Language (XSL): 30.6. Where to Learn More (Web Design in a Nutshell)
extensions for MIME tapes: Types (Web Design in a Nutshell) 4.5. File (MIME)
extensions, HTML: 1.3.1. HTML Standards and Extensions (HTML & XHTML: The Definitive Guide)
1.6. Nonstandard Extensions (HTML & XHTML: The Definitive Guide)
external ActionScript files, importing text of: 16.7.2. #include (Compile-Time Import) (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
external movies, importing: 13.3.4. Importing External Movies (ActionScript: The Definitive Guide)
external style sheets: 1.4.1. The LINK Tag (Cascading Style Sheets: The Definitive Guide)
17.2.2.3. External style sheets (Web Design in a Nutshell)
8.1.3. External Style Sheets (HTML & XHTML: The Definitive Guide)
12.4.1.1. External, document-level, and inline JSS (HTML & XHTML: The Definitive Guide)
advantages and disadvantages of using: 8.6.2.1. The pros and cons of external styles (HTML & XHTML: The Definitive Guide)
creating: 11.1.1. Case 1: Consistent Look and Feel (Cascading Style Sheets: The Definitive Guide)
loading
with @import directive: 1.4.3. The @import Directive (Cascading Style Sheets: The Definitive Guide)
with LINK element: 1.4.1. The LINK Tag (Cascading Style Sheets: The Definitive Guide)
extra space around elements, adding: 7.2. Margins or Padding? (Cascading Style Sheets: The Definitive Guide)
7.2. Margins or Padding? (Cascading Style Sheets: The Definitive Guide)
(see also margins)
extranets: 1.1. The Internet, Intranets,and Extranets (HTML & XHTML: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: F

face attribute: B. List of Attributes (Web Design in a Nutshell)
4.6.2. The <basefont> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
4.6.3.3. The face attribute (HTML & XHTML: The Definitive Guide)
font tag: 10.5. The <font> Tag (Web Design in a Nutshell)
FACE attribute of HTML tag: 18.5.4. <FONT> (Font Control) (ActionScript: The Definitive Guide)
face-to-face meetings: 7.1.1. Face-to-Face Meetings (Information Architecture for the World Wide Web)
factorials, calculating with/without recursion: 9.9. Recursive Functions (ActionScript: The Definitive Guide)
fade-in and fade-out (envelope): 12. Glossary (Designing Web Audio)
fade-in effect: 1.6.3. Beyond Extensions: Exploiting Bugs (HTML & XHTML: The Definitive Guide)
faders: 4.3.3. Equalization: customizing your sound (Designing Web Audio)
family, font: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
8.4.3.1. The font-family property (HTML & XHTML: The Definitive Guide)
favorite_font_size( ) function: 12.4.1.2. JSS values (HTML & XHTML: The Definitive Guide)
feedback, audience: 6.3.8. Always Provide the User with Feedback (Information Architecture for the World Wide Web)
9.6. Learning from Users (Information Architecture for the World Wide Web)
responding to: 9.6.3. Questions and Suggestions (Information Architecture for the World Wide Web)
Fetch utility: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
fictional tags (see pseudo-element selectors)
field recording: 3.2.2. Field recording (Designing Web Audio)
ambient environmental sound: 3.2.2.3. Capturing ambient sounds (Designing Web Audio)
live concerts and events: 3.2.2. Field recording (Designing Web Audio)
on-location interviews: 3.2.2.2. On-location interviews and panel discussions (Designing Web Audio)
fielded searching: 6.3.1. Support Different Modes of Searching (Information Architecture for the World Wide Web)
FIFO (first-in-first-out) stacks: method (ActionScript: The Definitive Guide) 11.7.3.1. The push( )
file attribute
flastmod command: 18.6. SSI Commands (Web Design in a Nutshell)
fsize command: 18.6. SSI Commands (Web Design in a Nutshell)
include command: 18.6. SSI Commands (Web Design in a Nutshell)
file protocol (getURL( )): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
file-selection controls (forms): 9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
file server: 6.2.5.1. The file server (HTML & XHTML: The Definitive Guide)
file size, graphics: 3.4.3. Be Aware of File Size (Web Design in a Nutshell)
animated GIFs: 23.6. Optimizing Animated GIFs (Web Design in a Nutshell)
Flash file format: 26.1.1. Advantages (Web Design in a Nutshell)
GIFs: 19.8. Minimizing GIF File Sizes (Web Design in a Nutshell)
JPEGs: 20.6. Minimizing JPEG File Size (Web Design in a Nutshell)
PNGs: 21.8. PNG Optimization Strategies (Web Design in a Nutshell)
Shockwave movies: 26.7.2. Disadvantages (Web Design in a Nutshell)
thumbnails: 12.3.6.1. Link to large images (Web Design in a Nutshell)
file size with CSS: 1.2.5. Compact File Size (Cascading Style Sheets: The Definitive Guide)
decreased: 11.1.2. Case 2: Library Catalog System Interface (Cascading Style Sheets: The Definitive Guide)
File Transfer Protocol (see FTP)
1.7.1.2. Browser software (HTML & XHTML: The Definitive Guide)
files
absolute/relative pathnames: 4.2. Unix Directory Structures (Web Design in a Nutshell)
file-selection form fields: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.9. File selection (type=file) (Web Design in a Nutshell)
file URLs: 6.2.5. The file URL (HTML & XHTML: The Definitive Guide)
filename suffixes: 4.3. File Naming Conventions (Web Design in a Nutshell)
Types (Web Design in a Nutshell) 4.5. File (MIME)
Flash: 26. Flash and Shockwave (Web Design in a Nutshell)
HTML (see HTML documents)
links: 11.7.3. Other Links (Web Design in a Nutshell)
listing in directory lists: 7.7.1. The <dir> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
MIME (Multipurpose Internet Mail Extension) types: Types (Web Design in a Nutshell) 4.5. File (MIME)
17.8.1. Style Sheet MIME Types (Web Design in a Nutshell)
naming conventions: 4.3. File Naming Conventions (Web Design in a Nutshell)
permissions for: 4.4.2. Setting Permissions (Web Design in a Nutshell)
Shockwave: 26.7. Shockwave for Director (Web Design in a Nutshell)
uploading via FTP: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
video file formats: 25.3. Video File Formats (Web Design in a Nutshell)
virtual includes (example): 18.3.1. Example: Virtual Includes (Web Design in a Nutshell)
fill-in forms (see Flash forms)
filters, low pass versus high-pass: 4.3.4.2. Using low-pass and high-pass filters (Designing Web Audio)
final keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
finally keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
financial transactions in XML: 30.5.2. Other XML Applications (Web Design in a Nutshell)
finding (see searching)
firewalls, broadcasting through: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
Fireworks (Macromedia): 19.5. Tools Overview (Web Design in a Nutshell)
23.4.1. Applications That Include GIF Animation Tools (Web Design in a Nutshell)
Gamma Preview: 3.3.1.3. Gamma (Web Design in a Nutshell)
hybrid colors, creating: 22.4.2.2. Fireworks (Web Design in a Nutshell)
JPEG images, creating: 20.5. Creating JPEGs (Web Design in a Nutshell)
palettes: 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
22.2. Converting to the Web Palette (Web Design in a Nutshell)
PNG graphics and: 21.7.1. Fireworks (2 and higher) (Web Design in a Nutshell)
web colors and: 22.2.2.1. Macromedia Fireworks (Web Design in a Nutshell)
:first-child pseudo-element: 10.2.3.4. :first-child (Cascading Style Sheets: The Definitive Guide)
first-in-first-out (FIFO) stacks: method (ActionScript: The Definitive Guide) 11.7.3.1. The push( )
:first-letter pseudo-element: 2.4.2. Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
first line of paragraph, indenting: 4.1.1.1. Indenting text (Cascading Style Sheets: The Definitive Guide)
:first-line pseudo-element: 2.4.2. Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
first-line/letter pseudo-elements: 17.3.4.1. Pseudo-elements (Web Design in a Nutshell)
]:first pseudo-class: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes (Cascading Style Sheets: The Definitive Guide)
firstChild property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
fixed page design: 2.2.2. Fixed Design (Web Design in a Nutshell)
fixed positioning: 9.4. Fixed Positioning (Cascading Style Sheets: The Definitive Guide)
fixed value (background image position): 5.3.1.3. The bgproperties attribute (HTML & XHTML: The Definitive Guide)
fixed-width
columns: 13.7.5.2. Fixed-width columns (Web Design in a Nutshell)
fonts: 3.2.1.2. Fixed-width font (Web Design in a Nutshell)
FLA files (Code Depot): 0.2. The Code Depot (ActionScript: The Definitive Guide)
.fla source file (Flash document): 26.3.1. File Formats (Web Design in a Nutshell)
flags (bits): 15.2. Bitwise Programming (ActionScript: The Definitive Guide)
Flash: 1.2. What you can do with sound on the Web (Designing Web Audio)
5.2. Streaming media formats (Designing Web Audio)
5.2.4. Flash and Director Shockwave (Designing Web Audio)
9. Interactive Sound Design with Flash and Shockwave (Designing Web Audio)
11.4.4. Making a custom instrument from your imported samples (Designing Web Audio)
adding event sounds example: 9.2.2.1. Adding an event sound (Designing Web Audio)
advantages: 9.2. Introduction to Flash (Designing Web Audio)
animation files, exporting: 6.4.4. Creating RealFlash content (Designing Web Audio)
authoring environment: 9.1. Flash and Shockwave basics (Designing Web Audio)
capabilities overview: B.6. Flash (Designing Web Audio)
closing open connections to server applications: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
compression: 9.2.2.2. Publishing and file size optimization (Designing Web Audio)
connections between servers and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating dynamic text fields with Text tool: 18.1. Dynamic Text Fields (ActionScript: The Definitive Guide)
drawbacks: 9.1.1. Drawbacks to Flash and Shockwave (Designing Web Audio)
event-driven sound: 9.2.1. Flash audio: event-driven sound versus streaming sound (Designing Web Audio)
instances (see movie clips, instances)
interactive mouse rollover sounds: 1.4. Adding sound effects (Designing Web Audio)
movie size: 9.2. Introduction to Flash (Designing Web Audio)
MP3: 9.2. Introduction to Flash (Designing Web Audio)
9.2. Introduction to Flash (Designing Web Audio)
opening connections to server applications: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
optimization: 9.2.2.2. Publishing and file size optimization (Designing Web Audio)
programming, introduction to: 1. A Gentle Introduction for Non-Programmers (ActionScript: The Definitive Guide)
QuickTime: 5.2.3. QuickTime (Designing Web Audio)
stream narration: 1.7.1.2. Embedding narration in a web page (Designing Web Audio)
1.7.1.2. Embedding narration in a web page (Designing Web Audio)
transmitting XML-formatted data to server applications: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
web sites: 0.3. Showcase (ActionScript: The Definitive Guide)
Flash 5 Player (see Player)
Flash 4 vs. Flash 5
ActionScript: 0. Foreword (ActionScript: The Definitive Guide)
assigning values to dynamically named variables: 6.3.4. The set Statement (Set Variable) (ActionScript: The Definitive Guide)
backward-compatibility issues: C. Backward Compatibility (ActionScript: The Definitive Guide)
call( ) statement: Statement (ActionScript: The Definitive Guide) 6.3.7. The call( )
datatype conversions: 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
equality/inequality operators: operators (ActionScript: The Definitive Guide) 4.6.2.1. Using the equality (==) and inequality (!=)
keyboard interaction: 10.8.8. keyPress (ActionScript: The Definitive Guide)
local variables in subroutines: 2.5.8.1. Local variables in subroutines (ActionScript: The Definitive Guide)
Normal Mode not backward compatible: 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
reserved words: 14.4. Reserved Words (ActionScript: The Definitive Guide)
string concatenation operators: 4.6.1. Joining Strings Together (ActionScript: The Definitive Guide)
string extraction performance issues: 4.6.6.5. String extraction performance issues (ActionScript: The Definitive Guide)
string operation equivalencies: 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
5.6. The String Operators (ActionScript: The Definitive Guide)
undefined datatype: 4.8. Undefined (ActionScript: The Definitive Guide)
variable addressing syntax: 2.5.6.3. Flash 4 versus Flash 5 variable access syntax (ActionScript: The Definitive Guide)
Flash Debugger tool: 19.1.5. The Debugger (ActionScript: The Definitive Guide)
Flash experiments (Williams and Kennedy): A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
Flash forms: 17. Flash Forms (ActionScript: The Definitive Guide)
adding
Reset button to: 17.2.4. Receiving Results from the Server (ActionScript: The Definitive Guide)
Submit button to: 17.2.1. Building the Frontend (ActionScript: The Definitive Guide)
user-input text field to: 17.2.1. Building the Frontend (ActionScript: The Definitive Guide)
client-side user input: 17.1.1. Flash Client-Side User Input (ActionScript: The Definitive Guide)
creating fill-in forms: 17.2. Creating a Flash Fill-in Form (ActionScript: The Definitive Guide)
data
processing and producing results: 17.1.3. The Data-Handling Application (ActionScript: The Definitive Guide)
receiving results from server: 17.1.4. Flash Receives and Interprets Results (ActionScript: The Definitive Guide)
17.2.4. Receiving Results from the Server (ActionScript: The Definitive Guide)
sending to server: 17.1.2. Transmitting Data for Server-Side Processing (ActionScript: The Definitive Guide)
17.2.2. Sending Data to the Server (ActionScript: The Definitive Guide)
validating: 17.1.1. Flash Client-Side User Input (ActionScript: The Definitive Guide)
data cycle of: 17.1. The Flash Form Data Cycle (ActionScript: The Definitive Guide)
isolating client/server problems: 17.1.2. Transmitting Data for Server-Side Processing (ActionScript: The Definitive Guide)
user-input text fields and: 18.2.4. User-Input Text Fields and Forms (ActionScript: The Definitive Guide)
Flash Kit (Internet.com) resources: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
Flash (Macromedia): and Shockwave (.dcr) (Web Design in a Nutshell) 24.5.8. Flash (.swf)
26. Flash and Shockwave (Web Design in a Nutshell)
HTML, adding files to: 26.4.2. Adding Flash to an HTML Document (Web Design in a Nutshell)
interface basics: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
movies, creating: 26.3. Creating Flash Movies (Web Design in a Nutshell)
optimizing: 26.3.3. Optimizing Flash Movies (Web Design in a Nutshell)
printing: 5.5. Flash Printing (Web Design in a Nutshell)
publish settings: 26.4.1. Using Flash Publish Settings (Web Design in a Nutshell)
QuickTime and: 26.5.1. Flash and QuickTime (Web Design in a Nutshell)
RealPlayer and: 26.5.2. Flash and RealPlayer (Web Design in a Nutshell)
tools for: 26.2. Flash Power Tools (Web Design in a Nutshell)
Flash movies
adding code to: 1.1.1. Creating Code (ActionScript: The Definitive Guide)
building: 1.2.1. Flash Programs (ActionScript: The Definitive Guide)
creating an interface: 1.3.3. Creating the Interface and Questions (ActionScript: The Definitive Guide)
event-based programs: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
10.2. Event-Based AsynchronousCode Execution (ActionScript: The Definitive Guide)
layer structure and: 1.3.2. Building the Layer Structure (ActionScript: The Definitive Guide)
13.4.1. The Internal Layer Stack (ActionScript: The Definitive Guide)
logic in: 1.2.3.1. Making choices using conditionals (ActionScript: The Definitive Guide)
Flashcoders mailing list: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
flashing text: 4.5.3. The <blink> Tag (HTML & XHTML: The Definitive Guide)
8.4.5.4. The text-decoration property (HTML & XHTML: The Definitive Guide)
flastmod command (SSI): 18.6. SSI Commands (Web Design in a Nutshell)
flat color: 19.8.2.2. Design with flat color (Web Design in a Nutshell)
flat graphical images: 22.3.1. Flat Graphical Images (Web Design in a Nutshell)
flexibility: 4.3. Improving Flexibility (Information Architecture for the World Wide Web)
flexible web page design: 2.2. Fixed Versus Flexible Web Page Design (Web Design in a Nutshell)
flip charts for brainstorming: 8.1. Brainstorming with White Boards and Flip Charts (Information Architecture for the World Wide Web)
float keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
float property: 7.6. Floating and Clearing (Cascading Style Sheets: The Definitive Guide)
8.4.6.8. The float property (HTML & XHTML: The Definitive Guide)
float property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
17.8.3. Creating a Drop Cap (Web Design in a Nutshell)
floated elements: 7.6. Floating and Clearing (Cascading Style Sheets: The Definitive Guide)
8.3. Floated Elements (Cascading Style Sheets: The Definitive Guide)
applied behavior: 8.3.2. Applied Behavior (Cascading Style Sheets: The Definitive Guide)
background and: 7.6.1.1. Backgrounds and floats (Cascading Style Sheets: The Definitive Guide)
8.3.2. Applied Behavior (Cascading Style Sheets: The Definitive Guide)
clearing: 7.6.2. Clear (Cascading Style Sheets: The Definitive Guide)
collapsing margins and: 7.6.1. Floated Elements (Cascading Style Sheets: The Definitive Guide)
columns and: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
images: 7.6. Floating and Clearing (Cascading Style Sheets: The Definitive Guide)
Internet Explorer 4.x and: 11.2.8. Floating Text Elements in Internet Explorer (Cascading Style Sheets: The Definitive Guide)
min-max properties and: 9.1.3.2. Limiting width and height (Cascading Style Sheets: The Definitive Guide)
negative margins and: 7.6.1.2. Negative margins and floating (Cascading Style Sheets: The Definitive Guide)
8.3.2.1. Negative margins (Cascading Style Sheets: The Definitive Guide)
overlapping, preventing: 8.3.1. Floating: The Details (Cascading Style Sheets: The Definitive Guide)
placement, rules governing: 8.3.1. Floating: The Details (Cascading Style Sheets: The Definitive Guide)
taller than parent element: 8.3.2. Applied Behavior (Cascading Style Sheets: The Definitive Guide)
wider than parent element: 8.3.2.1. Negative margins (Cascading Style Sheets: The Definitive Guide)
floating elements, rules for margin collapsing: 8.4.6.1. The CSS2 formatting model (HTML & XHTML: The Definitive Guide)
floating (inline) frames: Frames (Web Design in a Nutshell) 14.6. Inline (Floating)
Navigator imitation of: 14.7.5. Faking an <iframe> (Web Design in a Nutshell)
floating-point literals: 4.3.2. Floating-Point Literals (ActionScript: The Definitive Guide)
floating-point numbers: 4.2. Integers and Floating-Point Numbers (ActionScript: The Definitive Guide)
parseFloat( ) and: functions (ActionScript: The Definitive Guide) 3.4.2.6. Converting to a number using the parseInt( ) and parseFloat( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
floating-point precision: 4.3.2.1. Floating-point precision (ActionScript: The Definitive Guide)
flood-filling images: 5.2.6.11. Resizing and flood-filling images (HTML & XHTML: The Definitive Guide)
floor( ) (Math object): 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
flow control commands (XSSI): 18.5.1. Flow Control Elements (Web Design in a Nutshell)
flowing around images: 4.7.1.1. The clear attribute (HTML & XHTML: The Definitive Guide)
flowing text (see wrapping text)
focus, audience: 1.6. Solid sound design (Designing Web Audio)
focus groups: 9.6.1. Focus Groups (Information Architecture for the World Wide Web)
focus pseudo-class: 8.3.4.2. Interaction pseudo-classes (HTML & XHTML: The Definitive Guide)
:focus pseudo-element: 10.2.3.2. :focus (Cascading Style Sheets: The Definitive Guide)
_focusrect global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
font (CSS2 value): 17.7.6. New Values for Existing Properties (Web Design in a Nutshell)
font declaration, forward-slash in: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
font faces: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
font families: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
declarations, quotation marks in: 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
generic: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
combining with actual: 5.1.2. Specifying Actual Font Names (Cascading Style Sheets: The Definitive Guide)
importance of providing: 5.1.2. Specifying Actual Font Names (Cascading Style Sheets: The Definitive Guide)
specifying: 5.1.2. Specifying Actual Font Names (Cascading Style Sheets: The Definitive Guide)
font-family property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
font matching: 5.6. Font Matching (Cascading Style Sheets: The Definitive Guide)
font names (see font families)
font property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
font-size-adjust property: 10.3.1. New Font Properties (Cascading Style Sheets: The Definitive Guide)
font-size property: 5.3. Font Size (Cascading Style Sheets: The Definitive Guide)
8.4.3.2. The font-size property (HTML & XHTML: The Definitive Guide)
font sizes: 5.3. Font Size (Cascading Style Sheets: The Definitive Guide)
absolute: 5.3.1. Absolute Sizes (Cascading Style Sheets: The Definitive Guide)
inheritance and: 5.3.4. Font Size and Inheritance (Cascading Style Sheets: The Definitive Guide)
percentage values: 5.3.3. Percentages and Sizes (Cascading Style Sheets: The Definitive Guide)
relative: 5.3.2. Relative Sizes (Cascading Style Sheets: The Definitive Guide)
setting using length units: 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
font-stretch property: 10.3.1. New Font Properties (Cascading Style Sheets: The Definitive Guide)
font-style property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
<font> tags: 8.4.3. Font Properties (HTML & XHTML: The Definitive Guide)
font-variant property: 5.4.2. Font Variations (Cascading Style Sheets: The Definitive Guide)
8.4.3.6. The font-variant property (HTML & XHTML: The Definitive Guide)
font-weight property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
fonts: 5. Fonts (Cascading Style Sheets: The Definitive Guide)
alternate, providing: 5.1.2. Specifying Actual Font Names (Cascading Style Sheets: The Definitive Guide)
5.1.4. Good Practices (Cascading Style Sheets: The Definitive Guide)
tags: 4.6.2. The <basefont> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
color (see colors)
families (see font families)
fantasy: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
font size (see text size)
handling in CSS specifications: 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
heading tags to change: 4.2.4. Allowed Heading Content (HTML & XHTML: The Definitive Guide)
HTML tags for: 4.6. HTML's Expanded Font Handling (HTML & XHTML: The Definitive Guide)
JavaScript Style Sheet (JSS), size of: 12.4.1.2. JSS values (HTML & XHTML: The Definitive Guide)
kursiv: 5. Fonts (Cascading Style Sheets: The Definitive Guide)
matching: 5.6. Font Matching (Cascading Style Sheets: The Definitive Guide)
naming issues: 5. Fonts (Cascading Style Sheets: The Definitive Guide)
sizes (see font sizes)
style properties for: 8.4.3. Font Properties (HTML & XHTML: The Definitive Guide)
styles: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
variants: 5.4.2. Font Variations (Cascading Style Sheets: The Definitive Guide)
weights: 5.2. Font Weights (Cascading Style Sheets: The Definitive Guide)
how they work: 5.2.1. How Weights Work (Cascading Style Sheets: The Definitive Guide)
sample, list of: 5.2.1. How Weights Work (Cascading Style Sheets: The Definitive Guide)
fonts, embedded: 18.3.7. Embed Fonts (ActionScript: The Definitive Guide)
18.5.11. Using HTML as Output (ActionScript: The Definitive Guide)
fonts (typography): 2.2.2.2. Disadvantages (Web Design in a Nutshell)
3.1.1. Designing for the Unknown (Web Design in a Nutshell)
CSS2 descriptors for: 17.7.3. Font Descriptors (Web Design in a Nutshell)
cursive joining behavior: 7.2.3. Cursive Joining Behavior (Web Design in a Nutshell)
embedding: 3.2.4. Embedded Fonts (Web Design in a Nutshell)
in graphics: 3.2.2. Text in Graphics (Web Design in a Nutshell)
internationalization: 7.1. Character Sets (Web Design in a Nutshell)
style sheet properties: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
tables and: 13.6.1. <font> and Tables (Web Design in a Nutshell)
text size (see type size)
types, specifying: 3.2.3. Why Specifying Type Is Problematic (Web Design in a Nutshell)
foot in tables: 13.1. Summary of Table Tags (Web Design in a Nutshell)
footer of a table: 10.7. Tables (Cascading Style Sheets: The Definitive Guide)
footers
rules with: 5.1.3. Using Rules in Headers and Footers (HTML & XHTML: The Definitive Guide)
table: 10.3.3. The <tfoot> Tag (HTML & XHTML: The Definitive Guide)
for attribute ( ): 15.1. Summary of Form Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
9.10.1.1. Implicit and explicit associations (HTML & XHTML: The Definitive Guide)
for-in loop: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
8.5. The for-in Loop (ActionScript: The Definitive Guide)
accessing movie clips: 13.5.6.3. Using for-in to access movie clips (ActionScript: The Definitive Guide)
accessing named array elements: 11.6. Named Array Elements (ActionScript: The Definitive Guide)
built-in objects and: 8.5. The for-in Loop (ActionScript: The Definitive Guide)
manipulating object properties: 12.3.2. Using a for-in Loop to Access an Object's Properties (ActionScript: The Definitive Guide)
undefined text fields and: 18.7. Empty Text Fields and the for-in Statement (ActionScript: The Definitive Guide)
for loop: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
8.4. The for Loop (ActionScript: The Definitive Guide)
comma operator used in: 5.9. The Comma Operator (ActionScript: The Definitive Guide)
foreground colors: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
8.4.4.7. The color property (HTML & XHTML: The Definitive Guide)
importance of declaring background color with: 6.1.4. Good Practices (Cascading Style Sheets: The Definitive Guide)
foreground element color: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
foreign languages
default text alignment in Arabic/Hebrew: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
hyphenation in: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
:lang pseudo-class: 10.2.3.3. :lang (Cascading Style Sheets: The Definitive Guide)
form elements
background images, placing in: 6.2.1. Background Images (Cascading Style Sheets: The Definitive Guide)
color, setting: 6.1.1.4. Affecting form elements (Cascading Style Sheets: The Definitive Guide)
format: 9.11.5. Good Form, Old Chap (HTML & XHTML: The Definitive Guide)
(see also page layout)
alignment (see alignment)
encoding (see content types)
graphics formats: 5.2.1. Understanding Image Formats (HTML & XHTML: The Definitive Guide)
5.2.5. JPEG or GIF? (HTML & XHTML: The Definitive Guide)
HTML documents (see page layout styles)
indentation (see indentation whitespace)
list items: 7.3.1. Changing the Style and Sequence of Individual List Items (HTML & XHTML: The Definitive Guide)
multimedia file formats: 5.4.1.1. The src attribute (HTML & XHTML: The Definitive Guide)
paragraph rendering: 4.1.2.1. Paragraph rendering (HTML & XHTML: The Definitive Guide)
preformatted text (see preformatted text)
styles (see styles)
formats, streaming: 5.2. Streaming media formats (Designing Web Audio)
advantages and disadvantages: 5.3. Selecting the right format (Designing Web Audio)
audio fidelity: 5.3.5. Audio fidelity and compression (Designing Web Audio)
costs: 5.3.3. Cost for streaming audio (Designing Web Audio)
Director Shockwave: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
documentation and support: 5.3.4. Learning curve and documentation support (Designing Web Audio)
Flash: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
Liquid Audio: 5.2.7. Liquid Audio (Designing Web Audio)
low-bandwidth environments: 5.3.6. Low bandwidth performance overall (Designing Web Audio)
MIDI: 5.2.8. MIDI (Designing Web Audio)
MP3: 5.2.6. MP3 (Designing Web Audio)
QuickTime: 5.2.3. QuickTime (Designing Web Audio)
RealMedia: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
RealSystem G2, support for: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
Rich Music Format: (Designing Web Audio) 5.2.5. Beatnik's Rich Music Format (RMF)
Windows Media: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
formatter value ( ): 9.4.2.2. Other uses (Web Design in a Nutshell)
FormMail script: 15.7.2. Using Available Scripts (Web Design in a Nutshell)
forms: 17. Flash Forms (ActionScript: The Definitive Guide)
15. Forms (Web Design in a Nutshell)
15.7.2. Using Available Scripts (Web Design in a Nutshell)
2.9.3. Forms (HTML & XHTML: The Definitive Guide)
9. Forms (HTML & XHTML: The Definitive Guide)
accessibility issues: 6.1.3. The Techniques (Web Design in a Nutshell)
appearance of: 15.6. Affecting the Appearance of Forms (Web Design in a Nutshell)
tags: 9.6. The <button> Tag (HTML & XHTML: The Definitive Guide)
elements of: 15.4. Form Elements (Web Design in a Nutshell)
aligning: 15.6.2. Aligning Form Elements (Web Design in a Nutshell)
sizing: 15.6. Affecting the Appearance of Forms (Web Design in a Nutshell)
example of: 9.3. A Simple Form Example (HTML & XHTML: The Definitive Guide)
improving layout of: 17.4.3. Better Forms Layout (HTML & XHTML: The Definitive Guide)
input controls: 9.5. The <input> Tag (HTML & XHTML: The Definitive Guide)
action buttons: 9.5.4. Action Buttons (HTML & XHTML: The Definitive Guide)
checkboxes: 9.5.2. Checkboxes (HTML & XHTML: The Definitive Guide)
common attributes for: 9.9. General Form Control Attributes (HTML & XHTML: The Definitive Guide)
hidden fields: 9.5.5. Hidden Fields (HTML & XHTML: The Definitive Guide)
labeling and grouping: 9.10. Labeling and Grouping Form Elements (HTML & XHTML: The Definitive Guide)
multiline text entry areas: 9.7. Multiline Text Areas (HTML & XHTML: The Definitive Guide)
multiple-choice elements: 9.8. Multiple Choice Elements (HTML & XHTML: The Definitive Guide)
radio buttons: 9.5.3. Radio Buttons (HTML & XHTML: The Definitive Guide)
text fields: 9.5.1. Text Fields in Forms (HTML & XHTML: The Definitive Guide)
layout of: 9.11.5. Good Form, Old Chap (HTML & XHTML: The Definitive Guide)
mailto URL with: 9.4. Using Email to Collect Form Data (HTML & XHTML: The Definitive Guide)
with nested tables: 17.4.3.2. Building forms with nested tables (HTML & XHTML: The Definitive Guide)
programming: 9.12. Forms Programming (HTML & XHTML: The Definitive Guide)
parameters in URLs: 9.2.4.2. Passing parameters explicitly (HTML & XHTML: The Definitive Guide)
sending contents by email: 15.7.2. Using Available Scripts (Web Design in a Nutshell)
tables and: 13.5.3. Form Elements in Tables (Web Design in a Nutshell)
writing effectively: 9.11. Creating Effective Forms (HTML & XHTML: The Definitive Guide)
forward slash (/)
font property and: 5.5.1. Adding the Line Height (Cascading Style Sheets: The Definitive Guide)
separating keywords: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
Fox News: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
FQDNs: 1.2. Talking the Internet Talk (HTML & XHTML: The Definitive Guide)
fragment identifiers: 6.2.2.4. The http document fragment (HTML & XHTML: The Definitive Guide)
6.3.3. Linking Within a Document (HTML & XHTML: The Definitive Guide)
tags as: 6.3.1.3. The name and id attributes (HTML & XHTML: The Definitive Guide)
fragmentation, hard drives: 3.1.2. Microphone pre-amps (Designing Web Audio)
fragments, linking to: 11.3. Linking Within a Document (Web Design in a Nutshell)
Frame Actions (Actions panel title): 16.1. The Actions Panel (ActionScript: The Definitive Guide)
frame attribute ( ): 13.1. Summary of Table Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
10.2.1.4. The frame and rules attributes (HTML & XHTML: The Definitive Guide)
frame-by-frame animation: 5.2.1.2. Interlacing, transparency, and animation (HTML & XHTML: The Definitive Guide)
frame delay (animation): 23.5.1. Frame Delay (Web Design in a Nutshell)
frame differencing: 23.6.2. Optimizing Methods (Web Design in a Nutshell)
frame rate effect on timeline and clip event loops: 8.7.3. Frame Rate's Effect on Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
frame rate (video): 25.1. Basic Digital Video Concepts (Web Design in a Nutshell)
frame size (video): 25.1. Basic Digital Video Concepts (Web Design in a Nutshell)
<frame> tags: 2.11. Frames (HTML & XHTML: The Definitive Guide)
frameborder attribute: B. List of Attributes (Web Design in a Nutshell)
11.3.1.2. Controlling frame borders and spacing (HTML & XHTML: The Definitive Guide)
11.4.1.6. The frameborder and bordercolor attributes (HTML & XHTML: The Definitive Guide)
frames: 4.5.2. Frames (Information Architecture for the World Wide Web)
2.2.1.3. Creating flexible pages (Web Design in a Nutshell)
14. Frames (Web Design in a Nutshell)
2.11. Frames (HTML & XHTML: The Definitive Guide)
11. Frames (HTML & XHTML: The Definitive Guide)
adding blank keyframes: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
adding scripts to: 16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
advancing playhead one frame: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
alignment: 11.6.1.1. The align attribute (HTML & XHTML: The Definitive Guide)
attaching code to: 1.1.2. Say Hi to Flash (ActionScript: The Definitive Guide)
16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
borders: 11.3.1.2. Controlling frame borders and spacing (HTML & XHTML: The Definitive Guide)
borders and spacing: 14.4.1. Frame Borders and Spacing (Web Design in a Nutshell)
contents of: 11.4. Frame Contents (HTML & XHTML: The Definitive Guide)
creating main timeline variables: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
2.5. Variable Scope (ActionScript: The Definitive Guide)
current location of playhead: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
design tips and tricks: 14.7. Frame Design Tips and Tricks (Web Design in a Nutshell)
displaying randomly: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
event-based programming and: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
Frame Actions panel: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
frame labels
adding: 1.3.5. Adding Frame Labels (ActionScript: The Definitive Guide)
layer structure and: 1.3.2. Building the Layer Structure (ActionScript: The Definitive Guide)
vs. frame numbers: 1.3.5. Adding Frame Labels (ActionScript: The Definitive Guide)
frameset structure: 14.3. Basic Frameset Structure (Web Design in a Nutshell)
<frameset> tags: 2.11. Frames (HTML & XHTML: The Definitive Guide)
3.6.1. The <html> Tag (HTML & XHTML: The Definitive Guide)
3.8.2. Frames (HTML & XHTML: The Definitive Guide)
11.3.1. The <frameset> Tag (HTML & XHTML: The Definitive Guide)
hidden, for preloading images: 14.7.7. Preloading Images with Hidden Frames (Web Design in a Nutshell)
as hyperlink targets: 6.3.1.8. The target attribute (HTML & XHTML: The Definitive Guide)
6.7.1.2. The target attribute (HTML & XHTML: The Definitive Guide)
9.2.5. The target Attribute (HTML & XHTML: The Definitive Guide)
11.7. Named Frame or Window Targets (HTML & XHTML: The Definitive Guide)
image maps and: 6.5.4.8. The target attribute (HTML & XHTML: The Definitive Guide)
inline (floating): Frames (Web Design in a Nutshell) 14.6. Inline (Floating)
Navigator imitation of: 14.7.5. Faking an <iframe> (Web Design in a Nutshell)
inline frames: 11.6. Inline Frames (HTML & XHTML: The Definitive Guide)
JavaScript, managing with: 28.3.3. Managing Frames (Web Design in a Nutshell)
keyframes as storage devices: 16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
layout: 11.3. Frame Layout (HTML & XHTML: The Definitive Guide)
margins: 13.7.5.1. First, a word about browser margins (Web Design in a Nutshell)
14.4.4. Frame Margins (Web Design in a Nutshell)
margins and borders: 11.4.1.5. The marginheight and marginwidth attributes (HTML & XHTML: The Definitive Guide)
nesting: 14.3.3. Nesting Frames (Web Design in a Nutshell)
tags: 11.5. The <noframes> Tag (HTML & XHTML: The Definitive Guide)
number in timeline: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
preventing from loading pages into: 14.7.6. Frame-Proof Your Site (Web Design in a Nutshell)
printing
as bitmaps: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using vectors: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
printing document level frames
as bitmaps: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using vectors: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
remotely executing scripts: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rows and columns: 14.3.2. Establishing Rows and Columns (Web Design in a Nutshell)
scrolling: 14.4.2. Scrolling (Web Design in a Nutshell)
11.4.1.4. The scrolling attribute (HTML & XHTML: The Definitive Guide)
sending playhead back one frame: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
size and disabling resize: 14.4.3. Disabling Resize (Web Design in a Nutshell)
targeting: 14.5. Targeting Frames (Web Design in a Nutshell)
multiple from one link: 14.7.4. Loading Two Frames from One Link (Web Design in a Nutshell)
in WebTV: 14.7.8. Frames in WebTV (Web Design in a Nutshell)
frames in Flash: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
framesets: 9.2. Setting Up an HTML Document (Web Design in a Nutshell)
11.2. Frame Tags (HTML & XHTML: The Definitive Guide)
_framesloaded property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding scripts to frames: 16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
use instead of ifFrameLoaded statement: 6.3.10. The ifFrameLoaded Statement (ActionScript: The Definitive Guide)
framespacing attribute ( ): 14.1. Summary of Frame Tags (Web Design in a Nutshell)
11.3.1.2. Controlling frame borders and spacing (HTML & XHTML: The Definitive Guide)
Fraunhofer codec: 8.6.1.2. Installing an appropriate MP3 codec (Designing Web Audio)
free.be.com: 8.6.2.1. An easier way? (Designing Web Audio)
FreeBSD: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
Freehand (Macromedia): 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
freeware, web resources for: A.4. Web resources (Designing Web Audio)
frequency
high-end: 1.9.1. Selecting sounds (Designing Web Audio)
pitch: 2.1.2. Pitch (Designing Web Audio)
spectrum: 2.1.2. Pitch (Designing Web Audio)
frequency response, microphones: 3.1.1.6. Frequency response (Designing Web Audio)
frequency values: 3.5. CSS2 Units (Cascading Style Sheets: The Definitive Guide)
fromCharCode( ) (String class): 4.5.2.3. Unicode-style escape sequences (ActionScript: The Definitive Guide)
function (ActionScript: The Definitive Guide) 4.6.9.1. The fromCharCode( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
FrontPage (Microsoft): 8.6.2.2. Some available web authoring tools (Web Design in a Nutshell)
fscommand( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
fsize command (SSI): 18.6. SSI Commands (Web Design in a Nutshell)
FTP (File Transfer Protocol)
ftp URLs: 6.2.4. The ftp URL (HTML & XHTML: The Definitive Guide)
links: 11.7.2. FTP Link (ftp://) (Web Design in a Nutshell)
obtaining browsers via: 1.7.1.2. Browser software (HTML & XHTML: The Definitive Guide)
uploading documents: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
FTP (file transfer protocol) servers: 8.5.1. Creating your own MP3 site (Designing Web Audio)
ftp protocol (getURL( )): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
fullscreen command (standalone Player): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
fullscreen, running
in standalone Projector: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
in web browsers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
fully qualified domain names: 1.2. Talking the Internet Talk (HTML & XHTML: The Definitive Guide)
function body: 9.1. Creating Functions (ActionScript: The Definitive Guide)
function call operator: 5.11.8. The Function Call Operator (ActionScript: The Definitive Guide)
9.2. Running Functions (ActionScript: The Definitive Guide)
12.4. Methods (ActionScript: The Definitive Guide)
function call statement: 6.3.6. Function Call Statements (ActionScript: The Definitive Guide)
function calls: 4.6.3. Using Built-in String Functions (ActionScript: The Definitive Guide)
6.3.2. Expression Statements (ActionScript: The Definitive Guide)
Function( ) constructor, not supported: 9.5. Function Literals (ActionScript: The Definitive Guide)
function literals: 9.5. Function Literals (ActionScript: The Definitive Guide)
adding methods to classes: 12.5.2.3. Assigning methods to objects of a class (ActionScript: The Definitive Guide)
implementing methods with: 12.4. Methods (ActionScript: The Definitive Guide)
function scope: 9.7. Function Scope (ActionScript: The Definitive Guide)
ActionScript vs. JavaScript: 15.3. Advanced Function Scope Issues (ActionScript: The Definitive Guide)
advanced issues: 15.3. Advanced Function Scope Issues (ActionScript: The Definitive Guide)
object methods, fixed scope of: 15.3. Advanced Function Scope Issues (ActionScript: The Definitive Guide)
function statement: 1.2.4. Modular Code (Functions) (ActionScript: The Definitive Guide)
6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
6.3.5. The function Statement (ActionScript: The Definitive Guide)
functions: 1.2.4. Modular Code (Functions) (ActionScript: The Definitive Guide)
9. Functions (ActionScript: The Definitive Guide)
using as arguments: 9.11.1. Passing Functions to Functions (ActionScript: The Definitive Guide)
arguments object: 9.8.2. The arguments Object (ActionScript: The Definitive Guide)
availability of: 9.6.1. Function Availability (ActionScript: The Definitive Guide)
built-in (see built-in functions)
calling: 5.11.8. The Function Call Operator (ActionScript: The Definitive Guide)
9.1. Creating Functions (ActionScript: The Definitive Guide)
12.4. Methods (ActionScript: The Definitive Guide)
centralizing code: 9.12. Centralizing Code (ActionScript: The Definitive Guide)
creating: 9.1. Creating Functions (ActionScript: The Definitive Guide)
with parameters: 9.3.1. Creating Functions with Parameters (ActionScript: The Definitive Guide)
declaring: 9.1. Creating Functions (ActionScript: The Definitive Guide)
dynamic: 9.5. Function Literals (ActionScript: The Definitive Guide)
clip event handlers and: 10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
ensuring permanence of: 9.6.2. Function Life Span (ActionScript: The Definitive Guide)
initialization: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
internal (see internal functions)
invoking: 9.1. Creating Functions (ActionScript: The Definitive Guide)
9.6.1. Function Availability (ActionScript: The Definitive Guide)
as methods: 12.4. Methods (ActionScript: The Definitive Guide)
with parameters: 9.3.2. Invoking Functions with Parameters (ActionScript: The Definitive Guide)
life span of: 9.6.2. Function Life Span (ActionScript: The Definitive Guide)
local scope of: 9.7. Function Scope (ActionScript: The Definitive Guide)
local variables and: 2.5.8. Local Variables (ActionScript: The Definitive Guide)
as objects: 9.11. Functions as Objects (ActionScript: The Definitive Guide)
organizing code into: 9.13.1. Organizing the Quiz Code into Functions (ActionScript: The Definitive Guide)
parameters (see parameters)
passing
functions to: 9.11. Functions as Objects (ActionScript: The Definitive Guide)
information to: 9.3. Passing Information to Functions (ActionScript: The Definitive Guide)
more than one argument to: 9.3.2. Invoking Functions with Parameters (ActionScript: The Definitive Guide)
primitive vs. composite data: 9.8.3. Primitive Versus Composite Parameter Values (ActionScript: The Definitive Guide)
15.1. Copying, Comparing, and Passing Data (ActionScript: The Definitive Guide)
properties, attaching to: 9.11.1. Passing Functions to Functions (ActionScript: The Definitive Guide)
recursive: 9.9. Recursive Functions (ActionScript: The Definitive Guide)
returning values from: 9.4.2. Returning Values from Functions (ActionScript: The Definitive Guide)
running: 9.2. Running Functions (ActionScript: The Definitive Guide)
terminating: 9.4.1. Terminating a Function (ActionScript: The Definitive Guide)
vs. Actions: 9.10. Internal Functions (ActionScript: The Definitive Guide)
functions (JavaScript): 28.2.1. Functions (Web Design in a Nutshell)
Furbo Filters' Web Scrubber: 22.2.2.3. Web Scrubber plug-in filter (Furbo Filters) (Web Design in a Nutshell)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: G

gain command: 4.3.2. Compression: reducing sound peaks and spikes (Designing Web Audio)
game-programming resources: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
gamma: 3.3.1.3. Gamma (Web Design in a Nutshell)
Gamma Control Panel (Photoshop): 3.3.1.3. Gamma (Web Design in a Nutshell)
gamma value: 2.4. Monitor Color Issues (Web Design in a Nutshell)
21.6.2. Gamma Correction (Web Design in a Nutshell)
gamma value set: 3.1.1. Named Colors (Cascading Style Sheets: The Definitive Guide)
gateway page: 4.6.4. The Guided Tour (Information Architecture for the World Wide Web)
gateways (WAP): 32.1.2. How WAP Works (Web Design in a Nutshell)
ge (greater-than-or-equal-to) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
Gecko rendering engine: 1.3.2. Implementations (Cascading Style Sheets: The Definitive Guide)
general entities, XML: 15.3.2. Entities (HTML & XHTML: The Definitive Guide)
generated content: 10.4. Generated Content (Cascading Style Sheets: The Definitive Guide)
Generation 2 Codec: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
Generator 2 (Macromedia): 26.2.2. Macromedia Generator 2 (Web Design in a Nutshell)
Generator resources: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
generator value ( ): 9.4.2.2. Other uses (Web Design in a Nutshell)
generic font families: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
combining with actual: 5.1.2. Specifying Actual Font Names (Cascading Style Sheets: The Definitive Guide)
importance of providing: 5.1.2. Specifying Actual Font Names (Cascading Style Sheets: The Definitive Guide)
generic style classes: 8.3.2. Generic Classes (HTML & XHTML: The Definitive Guide)
generic window type, RealText: 7.4.2. Window types (Designing Web Audio)
Genuine Music Mark (GMM): 8.8. MP3 resources (Designing Web Audio)
geographical organization: 3.2.1.1.3. Geographical (Information Architecture for the World Wide Web)
get method: 15.3.2. The method Attribute (Web Design in a Nutshell)
getAscii( ) (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getBeginIndex( ) (Selection object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getBounds( ) (MovieClip class): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getBytesLoaded( ) (MovieClip class): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getBytesTotal( ) (MovieClip class): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getCaretIndex( ) (Selection object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getCode( ) (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getDate( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getDay( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getElementById( ) method (DHTML): 29.3. The Document Object Model (Web Design in a Nutshell)
getElementsByName( ) elements (DHTML): 29.3. The Document Object Model (Web Design in a Nutshell)
getElementsByTagName( ) elements (DHTML): 29.3. The Document Object Model (Web Design in a Nutshell)
getEndIndex( ) (Selection object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getFocus( ) (Selection object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getFullYear( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getHours( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getMilliseconds( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getMinutes( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getMonth( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getPan( ) (Sound class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getProperty( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getRGB( ) (Color class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getSeconds( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getTime( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getTimer( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getTimeZoneOffset( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getTransform( )
Color class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getURL( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transmitting form-based data to web servers: 17.1.2. Transmitting Data for Server-Side Processing (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCDate( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCDay( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCFullYear( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCHours( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCMilliseconds( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCMinutes( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCMonth( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCSeconds( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getVersion( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getVolume( ) (Sound class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getYear( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
GIF Animator (Ulead): 23.4.2. GIF Animation Utilities (Web Design in a Nutshell)
GIF (Graphic Interchange Format) files: 3.4.1.1. The ubiquitous GIF (Web Design in a Nutshell)
12.2.2. Acceptable Graphics Formats (Web Design in a Nutshell)
19. GIF Format (Web Design in a Nutshell)
animation (see animation)
compression: 19.3. GIF Compression (Web Design in a Nutshell)
GIF87a vs. GIF89a: 19.1. GIF87a Versus GIF89a (Web Design in a Nutshell)
lossy: 19.8.2.5. Lossy GIFs (Web Design in a Nutshell)
minimizing file sizes: 19.8. Minimizing GIF File Sizes (Web Design in a Nutshell)
PNG format vs.: 21.2.2. Potential GIF Substitute (Web Design in a Nutshell)
RGB mode, creating with: 3.4.4.1. Work in RGB mode (Web Design in a Nutshell)
as text: 3.2.2. Text in Graphics (Web Design in a Nutshell)
tools for: 19.5. Tools Overview (Web Design in a Nutshell)
19.8.1. Tools for Optimizing GIFs (Web Design in a Nutshell)
GIF (Graphics Interchange Format): 5.2.1.1. GIF (HTML & XHTML: The Definitive Guide)
5.2.5. JPEG or GIF? (HTML & XHTML: The Definitive Guide)
GIF animation: 5.2.1.2. Interlacing, transparency, and animation (HTML & XHTML: The Definitive Guide)
GIF89a: 17.5.1. Colors, Maps, and Indexes (HTML & XHTML: The Definitive Guide)
GifBuilder program: 23.4.2. GIF Animation Utilities (Web Design in a Nutshell)
23.4.2. GIF Animation Utilities (Web Design in a Nutshell)
GifConverter program: 19.5. Tools Overview (Web Design in a Nutshell)
GIFmation (BoxTop Software): 23.4.2. GIF Animation Utilities (Web Design in a Nutshell)
23.5. Creating Animated GIFs (Web Design in a Nutshell)
GifSmartsaver (Ulead): 19.5. Tools Overview (Web Design in a Nutshell)
GIMP (GNU Image Manipulation Program), creating PNG graphics: 21.7.3. The GIMP (Web Design in a Nutshell)
global functions: 1.2.4.1. Built-in functions (ActionScript: The Definitive Guide)
20.1. Global Functions (ActionScript: The Definitive Guide)
availability of: 9.10.1. Internal Function Availability (ActionScript: The Definitive Guide)
target parameter requirement: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
vs. methods overlap issues: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
global navigation systems: 4.4.2. Global Navigation Systems (Information Architecture for the World Wide Web)
global properties: 20.2. Global Properties (ActionScript: The Definitive Guide)
global variables
not supported: 2.5.4. Variable Accessibility (Scope) (ActionScript: The Definitive Guide)
simulating: 2.5.5.1. Scenario 4 (ActionScript: The Definitive Guide)
12.5.4.4. The end of the inheritance chain (ActionScript: The Definitive Guide)
globalToLocal( ) (MovieClip class): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
glossary document relationship: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
glyphs, internationalization and: 7.1. Character Sets (Web Design in a Nutshell)
GMT (Greenwich Mean Time)
Date( ) global function and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getTimezoneOffset( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
toString( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vs. UTC: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
GNU Image Manipulation Program (see GIMP)
GoLive (Adobe): 1.3.5. Take Advantage of Tools (Web Design in a Nutshell)
8.6.2.2. Some available web authoring tools (Web Design in a Nutshell)
Cyberstudio: 2.2.2.3. Creating fixed pages (Web Design in a Nutshell)
(Web Design in a Nutshell) 4.4. Uploading Documents (FTP)
Gopher links: 11.7.3. Other Links (Web Design in a Nutshell)
gopher URLs: 6.2.10. The gopher URL (HTML & XHTML: The Definitive Guide)
goto keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
gotoAndPlay( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
not working in clip events: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
gotoAndStop( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding frame labels: 1.3.5. Adding Frame Labels (ActionScript: The Definitive Guide)
not working in clip events: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
scripting buttons: 1.3.6. Scripting the Answer Buttons (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
grammar, elements: 15.4. Element Grammar (HTML & XHTML: The Definitive Guide)
nonterminals and terminals: 15.4.2. Multiple Grammar Rules (HTML & XHTML: The Definitive Guide)
XML: 15.4.3. XML Element Grammar (HTML & XHTML: The Definitive Guide)
mixed element content: 15.4.4. Mixed Element Content (HTML & XHTML: The Definitive Guide)
granularity
heading labels: 5.3.4. Labels as Headings (Information Architecture for the World Wide Web)
indexing: 4.6.2. The Index (Information Architecture for the World Wide Web)
information: 3.1.2. Heterogeneity (Information Architecture for the World Wide Web)
labeling system: 5.5.2. Labeling System Scope and Size (Information Architecture for the World Wide Web)
graphic design and layout: 8. Conceptual Design (Information Architecture for the World Wide Web)
(see also conceptual design; designers)
aesthetics: 1.2.2.1. Aesthetics (Information Architecture for the World Wide Web)
display of search results: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
frames: 4.5.2. Frames (Information Architecture for the World Wide Web)
importance of: 2.2.3.1. Graphic design (Information Architecture for the World Wide Web)
navigation bars: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
page model: 4.5.2.2. The page model (Information Architecture for the World Wide Web)
sketches: 8.6. Design Sketches (Information Architecture for the World Wide Web)
style guides for: 9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
graphic equalizers: 4.3.3. Equalization: customizing your sound (Designing Web Audio)
8.3.3. Using the equalizer (Designing Web Audio)
Graphic Interchange Format (see GIF files)
graphic navigation bars: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
graphics
19.8.2.4. Limit dithering (Web Design in a Nutshell)
2.8. Images Are Special (HTML & XHTML: The Definitive Guide)
3-D: 5.2.3. QuickTime (Designing Web Audio)
aliasing and anti-aliasing: 19.7.1. Preventing "Halos" (Web Design in a Nutshell)
alternative text: 6.1.3. The Techniques (Web Design in a Nutshell)
12.3.2. Alternative Text (Web Design in a Nutshell)
animation (see animation)
background: 17.5.3. Background Properties (Web Design in a Nutshell)
tiling: 9.3.2. Tiling Background Graphics (Web Design in a Nutshell)
buttons on forms: 15.4.1.8. Image button (type=image) (Web Design in a Nutshell)
dithering (see dithering)
dividing into multiple files: 13.8.2.1. Dividing the image (in Photoshop 4.0) (Web Design in a Nutshell)
file formats: 3.4.1. Graphics File Formats (Web Design in a Nutshell)
flat images: 22.3.1. Flat Graphical Images (Web Design in a Nutshell)
GIF format: 12.2.2. Acceptable Graphics Formats (Web Design in a Nutshell)
19. GIF Format (Web Design in a Nutshell)
21.2.2. Potential GIF Substitute (Web Design in a Nutshell)
grayscale (see grayscale)
HTML 4.0 attributes for: 6.2.1. HTML 4.01 Features (Web Design in a Nutshell)
hyperlinking: 6.1.3. The Techniques (Web Design in a Nutshell)
11.2. Simple Hypertext Links (Web Design in a Nutshell)
12.3.1. Linked Graphics (Web Design in a Nutshell)
image size: 3.4.2.1. Image size (Web Design in a Nutshell)
12.3.3. Specifying Width and Height (Web Design in a Nutshell)
13.8. Multipart Images in Tables (Web Design in a Nutshell)
(see also optimizing images)
single-pixel images: 13.5.5.2. The single-pixel trick (Web Design in a Nutshell)
thumbnail images: 12.3.6.1. Link to large images (Web Design in a Nutshell)
imagemaps (see imagemaps)
11.6.4.1. Providing complete alternative text (Web Design in a Nutshell)
tag: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.3. The <img> Tag and Its Attributes (Web Design in a Nutshell)
25.5.4. The dynsrc Attribute (Web Design in a Nutshell)
inline frames vs.: Frames (Web Design in a Nutshell) 14.6. Inline (Floating)
interlacing: 19.6. Interlacing (Web Design in a Nutshell)
(Web Design in a Nutshell) 21.6.1. Interlacing (Progressive Display)
23.5.5. Other Options (Web Design in a Nutshell)
JavaScript rollovers: 11.6.4.2. Rollover buttons (Web Design in a Nutshell)
JPEG (Joint Photographic Experts Group) format: 12.2.2. Acceptable Graphics Formats (Web Design in a Nutshell)
20. JPEG Format (Web Design in a Nutshell)
21.2.1. Not a JPEG Substitute (Web Design in a Nutshell)
list-item markers (bullets): 17.5.4. Classification Properties (Web Design in a Nutshell)
lossy/lossless compression: 19.3. GIF Compression (Web Design in a Nutshell)
20.2. JPEG Compression (Web Design in a Nutshell)
21.5. PNG Compression (Web Design in a Nutshell)
25.2.1. Lossless Versus Lossy Compression (Web Design in a Nutshell)
marquees: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
monitor characteristics and: 2.1. Dealing with Unknown Monitor Resolutions (Web Design in a Nutshell)
multipart images in tables: 13.2. Introduction to Tables (Web Design in a Nutshell)
13.8. Multipart Images in Tables (Web Design in a Nutshell)
optimizing (see optimizing images)
photographic images: 22.3.3. Combination Images (Flat and Photographic Areas) (Web Design in a Nutshell)
PNG format: 12.2.2. Acceptable Graphics Formats (Web Design in a Nutshell)
19.3. GIF Compression (Web Design in a Nutshell)
21. PNG Format (Web Design in a Nutshell)
preloading: 12.3.3.2. Using width and height to preload images (Web Design in a Nutshell)
14.7.7. Preloading Images with Hidden Frames (Web Design in a Nutshell)
quality of: 3.4.4. Web Graphics Production Tips (Web Design in a Nutshell)
resizing: 3.4.4.2. Resizing tips (Web Design in a Nutshell)
resolution and: 3.4.2. Image Resolution (Web Design in a Nutshell)
text in: 3.2.2. Text in Graphics (Web Design in a Nutshell)
21.6.4. Embedded Text (Web Design in a Nutshell)
tools for: 23.4. Tools (Web Design in a Nutshell)
transparency (see transparency)
using: 12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
vector: 19.5. Tools Overview (Web Design in a Nutshell)
26. Flash and Shockwave (Web Design in a Nutshell)
(Web Design in a Nutshell) 30.5.1.2. Scalable Vector Graphics (SVG)
vector-based: 9.2. Introduction to Flash (Designing Web Audio)
video (see video)
Web Palette (see Web Palette)
WML: 32.3.4. Images (Web Design in a Nutshell)
Graphics Interchange Format (see GIF)
grayscale
designing for: 2.4. Monitor Color Issues (Web Design in a Nutshell)
GIF animation and: 23.5.4. Color Palette (Web Design in a Nutshell)
PNG format for: 21.4.2. Grayscale (Web Design in a Nutshell)
greater-than (gt) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
greater-than-or-equal-to (ge) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
greater-than-or-equal-to (>=) operator (Flash 5): 4.6.2.2. Character order and alphabetic comparisons (ActionScript: The Definitive Guide)
5.5.4. The Greater-Than-or-Equal-to Operator (ActionScript: The Definitive Guide)
greater-than symbol (>) with child selectors: 10.2.1.2. Child selector (Cascading Style Sheets: The Definitive Guide)
grooved borders: 8.4.6.5. The border-style property (HTML & XHTML: The Definitive Guide)
Groovoids, Beatnik: 11.2. Beatnik authoring system (Designing Web Audio)
Grossman, Gary: 0. Foreword (ActionScript: The Definitive Guide)
15.4. The movieclip Datatype (ActionScript: The Definitive Guide)
grouping
declarations: 2.2.2. Grouping Declarations (Cascading Style Sheets: The Definitive Guide)
selectors: 2.2. Grouping (Cascading Style Sheets: The Definitive Guide)
grouping form elements: 9.10.2. Forming a Group (HTML & XHTML: The Definitive Guide)
grouping grammar rules, elements: 15.4.1. Sequence, Choice, Grouping, and Repetition (HTML & XHTML: The Definitive Guide)
grouping operator: 5.8. The Grouping Operator (ActionScript: The Definitive Guide)
grouping table rows/columns: 13.3.3. Row and Column Groups (Web Design in a Nutshell)
growth of content (see dynamic content)
GS format extensions: 5.2.3. QuickTime (Designing Web Audio)
\\> (greater than) character entity for XML: 30.3.1. Well-Formed XML (Web Design in a Nutshell)
gt (greater-than) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
>= greater-than-or-equal-to operator (Flash 5): 4.6.2.2. Character order and alphabetic comparisons (ActionScript: The Definitive Guide)
5.5.4. The Greater-Than-or-Equal-to Operator (ActionScript: The Definitive Guide)
> greater-than symbol: 10.2.1.2. Child selector (Cascading Style Sheets: The Definitive Guide)
>>= bitwise signed right shift assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
>> bitwise signed right shift operator: 15.2.5.1. Signed right shift (ActionScript: The Definitive Guide)
>>>= bitwise unsigned right shift assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
>>> bitwise unsigned right shift operator: 15.2.5.2. Unsigned right shift (ActionScript: The Definitive Guide)
guided tours: 4.6.4. The Guided Tour (Information Architecture for the World Wide Web)
10.2.5. Guides (Information Architecture for the World Wide Web)
guided tours, creating for Web sites: 6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
guides, embedded: 17.4.4. Embedded Guides (HTML & XHTML: The Definitive Guide)
gutter attribute ( ): 14.2.1.2. The gutter attribute (HTML & XHTML: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: H

<h> tags: 10.1.1. Paragraphs and Headings (Block-Level Elements) (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
align attribute and: 10.7.3.1. The align attribute (Web Design in a Nutshell)
paragraphs and line breaks, using: 10.2.1. Paragraphs and Line Breaks (Web Design in a Nutshell)
half-leading: 8.4.2.1. Generating a line box (Cascading Style Sheets: The Definitive Guide)
half-step: 4.2.4. Bender (Designing Web Audio)
halo effect: 19.7.1. Preventing "Halos" (Web Design in a Nutshell)
Handheld Device Markup Language (HDML): 32.2.5. WAP Emulators (Web Design in a Nutshell)
handheld devices: 2.5.2. Hand-held Devices (Web Design in a Nutshell)
32.2.3. Handheld Devices (Web Design in a Nutshell)
handheld media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
handheld value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
hanging floats: 7.6.1.2. Negative margins and floating (Cascading Style Sheets: The Definitive Guide)
hanging indents: 4.1.1.1. Indenting text (Cascading Style Sheets: The Definitive Guide)
8.4.5.5. The text-indent property (HTML & XHTML: The Definitive Guide)
HanGo: 8.4.3.1. Selecting tracks (Designing Web Audio)
hard disk repair and optimization utilities: A.3.4. Disk repair and optimization utilities (Designing Web Audio)
hard drives, optimizing: 3.1.2. Microphone pre-amps (Designing Web Audio)
hard returns
adding to text (see line breaks)
treatment in text fields: 18.3.1. Line Display (ActionScript: The Definitive Guide)
hard value for wrap attribute: 15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
harmonic distortion: 6.3. Professional webcasting (Designing Web Audio)
hasChildNodes( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hash mark (see octothorpe)
hash mark (#)
ID selectors: 17.3.3.2. id selector (Web Design in a Nutshell)
in pathnames: 11.3.2. Linking to a fragment (Web Design in a Nutshell)
hashes, emulating: 11.6. Named Array Elements (ActionScript: The Definitive Guide)
HDML (Handheld Device Markup Language): 32.2.5. WAP Emulators (Web Design in a Nutshell)
head document relationship: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
head of HTML documents: 2.4. HTML Skeleton (HTML & XHTML: The Definitive Guide)
3.2. Structure of an HTML Document (HTML & XHTML: The Definitive Guide)
3.6.1. The <html> Tag (HTML & XHTML: The Definitive Guide)
3.7.1. The <head> Tag (HTML & XHTML: The Definitive Guide)
head (tables): 13.1. Summary of Table Tags (Web Design in a Nutshell)
<head> tags: 3.6.1. The <html> Tag (HTML & XHTML: The Definitive Guide)
3.7.1. The <head> Tag (HTML & XHTML: The Definitive Guide)
header (<h1> through <h6>) tags: 10.1.1. Paragraphs and Headings (Block-Level Elements) (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
align attribute and: 10.7.3.1. The align attribute (Web Design in a Nutshell)
paragraphs and line breaks, using: 10.2.1. Paragraphs and Line Breaks (Web Design in a Nutshell)
header of a table: 10.7. Tables (Cascading Style Sheets: The Definitive Guide)
headers
in document: 9.2.2. The Document Header (Web Design in a Nutshell)
in tables: 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.3.1. Rows and Cells (Web Design in a Nutshell)
13.4.3. Aligning Text in Cells (Web Design in a Nutshell)
rules with: 5.1.3. Using Rules in Headers and Footers (HTML & XHTML: The Definitive Guide)
table: 2.10. Tables (HTML & XHTML: The Definitive Guide)
10.3.2. The <thead> Tag (HTML & XHTML: The Definitive Guide)
vertical spacers with: 14.1.1.2. Creating vertical space (HTML & XHTML: The Definitive Guide)
headers attribute: B. List of Attributes (Web Design in a Nutshell)
headers, loop: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
headings: 2.6.2.2. Headings (HTML & XHTML: The Definitive Guide)
4.2. Headings (HTML & XHTML: The Definitive Guide)
images in: 4.2.6. Adding Images to Headings (HTML & XHTML: The Definitive Guide)
side heads (tables): 17.4.2. Side Heads (HTML & XHTML: The Definitive Guide)
straddle heads (tables): 17.4.1.2. Straddle heads (HTML & XHTML: The Definitive Guide)
text size and: 4.2.3. Using Headings for Smaller Text (HTML & XHTML: The Definitive Guide)
headings, labels as: 5.3.4. Labels as Headings (Information Architecture for the World Wide Web)
headings (text): 10.2.2. Headings (Web Design in a Nutshell)
headphones: 3.1.7. Headphones (Designing Web Audio)
Appendix A.3.1. Headphones (Designing Web Audio)
headroom: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
Headspace label, RMF music: 11.3.3. Lesson 3: Adding simple background music (Designing Web Audio)
Hebrew, default text alignment: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
height
block-level elements: 8.2.1.1. Height (Cascading Style Sheets: The Definitive Guide)
limiting via min-max properties: 9.1.3.2. Limiting width and height (Cascading Style Sheets: The Definitive Guide)
lines (see line height)
positioning and: 9.1.3. Width and Height (Cascading Style Sheets: The Definitive Guide)
height attribute: B. List of Attributes (Web Design in a Nutshell)
height of clips/movies
as percentage: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
in pixels: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
height property: 7.1. Basic Element Boxes (Cascading Style Sheets: The Definitive Guide)
9.1.3.1. Setting width and height (Cascading Style Sheets: The Definitive Guide)
8.4.6.9. The height property (HTML & XHTML: The Definitive Guide)
height property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
_height property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
help value for WML type attribute: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
helper applications: 1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
2.7.4. Anchors Beyond (HTML & XHTML: The Definitive Guide)
hertz: 2.1.2. Pitch (Designing Web Audio)
heterogeneity: 3.1.2. Heterogeneity (Information Architecture for the World Wide Web)
hexadecimal (base-16)
color values: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
escape sequences: 4.5.2.3. Unicode-style escape sequences (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
integers: 4.3.1. Integer Literals (ActionScript: The Definitive Guide)
parseInt( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hexadecimal color representations: 3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
16.1. Specifying Color by RGB Values (Web Design in a Nutshell)
hexadecimal colors: 3.1.2.3. Hexadecimal colors (Cascading Style Sheets: The Definitive Guide)
list of: 3.1.2.3. Hexadecimal colors (Cascading Style Sheets: The Definitive Guide)
hexadecimal RGB triples (see colors)
HFHS (Henry Ford Health System): 10.2. A Case Study: Henry Ford Health System (Information Architecture for the World Wide Web)
hidden attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.5.2. The <embed> Tag (Web Design in a Nutshell)
12.2.4.2. The hidden attribute (HTML & XHTML: The Definitive Guide)
hidden form fields: 9.5.5. Hidden Fields (HTML & XHTML: The Definitive Guide)
hidden layers, checking for: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
hidden text entry fields: 9.5.1.2. Masked text controls (HTML & XHTML: The Definitive Guide)
hide( ) (Mouse object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hide value (layer visibility): 14.3.1.5. The visibility attribute (HTML & XHTML: The Definitive Guide)
hideLayer( ) function: 29.5.2. Drop-Down Menus (Web Design in a Nutshell)
hiding
frames for preloading images: 14.7.7. Preloading Images with Hidden Frames (Web Design in a Nutshell)
text entry fields: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.3. Hidden entry (type=hidden)
hiding styles with @import: 11.2.2. Hiding Styles with @import (Cascading Style Sheets: The Definitive Guide)
hiding/showing movie clips: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hierarchical navigation system: 4.4.1. Hierarchical Navigation Systems (Information Architecture for the World Wide Web)
hierarchies, information: 3.2.2.1. The hierarchy: A top-down approach (Information Architecture for the World Wide Web)
depth of: 3.2.2.2. Designing hierarchies (Information Architecture for the World Wide Web)
navigation and: 4.3. Improving Flexibility (Information Architecture for the World Wide Web)
table of contents: 4.6.1. The Table of Contents (Information Architecture for the World Wide Web)
hierarchy of elements: 2.5. Structure (Cascading Style Sheets: The Definitive Guide)
high-end frequencies: 6.3. Professional webcasting (Designing Web Audio)
high-frequency sound: 1.9.1. Selecting sounds (Designing Web Audio)
high-level blueprints: 8.4. High-Level Architecture Blueprints (Information Architecture for the World Wide Web)
9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
high-pass filters: 4.3.4.2. Using low-pass and high-pass filters (Designing Web Audio)
_highquality global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hit area of buttons: 10.8. Button Events (ActionScript: The Definitive Guide)
mouseDown not tied to: 10.11.1. mouseDown (ActionScript: The Definitive Guide)
hitTest( ) (MovieClip class): 10.11. The User-Input Movie Clip Events (ActionScript: The Definitive Guide)
13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Holiday PageTunes: 10.2.2. Add a bit of spice to your site (Designing Web Audio)
Hollywood Edge: A.3.3. Sound libraries (Designing Web Audio)
home pages: 1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
2.7.3. Hyperlink Names and Navigation (HTML & XHTML: The Definitive Guide)
6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
HOME property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
home sound system: 4.3.3. Equalization: customizing your sound (Designing Web Audio)
HomeSite HTML editor: 8.6.1. HTML Editors (Web Design in a Nutshell)
horizontal: 14.1.1.1. Creating horizontal space (HTML & XHTML: The Definitive Guide)
(see also width attribute)
alignment (see alignment)
margins (see margins)
rules: 2.6.2.3. Horizontal rules (HTML & XHTML: The Definitive Guide)
5.1. Horizontal Rules (HTML & XHTML: The Definitive Guide)
alignment: 5.1.1.4. The align attribute (HTML & XHTML: The Definitive Guide)
colors: 5.1.1.5. The color attribute (HTML & XHTML: The Definitive Guide)
combining attributes: 5.1.1.6. Combining rule attributes (HTML & XHTML: The Definitive Guide)
flat, 2D: 5.1.1.2. The noshade attribute (HTML & XHTML: The Definitive Guide)
in headers and footers: 5.1.3. Using Rules in Headers and Footers (HTML & XHTML: The Definitive Guide)
as section dividiers: 5.1.2. Using Rules to Divide Your Document (HTML & XHTML: The Definitive Guide)
size attribute: 5.1.1.1. The size attribute (HTML & XHTML: The Definitive Guide)
universal attributes for: 5.1.1.7. The class, dir, event, id, lang, style, and title attributes (HTML & XHTML: The Definitive Guide)
width: 5.1.1.3. The width attribute (HTML & XHTML: The Definitive Guide)
whitespace: 14.1.1.1. Creating horizontal space (HTML & XHTML: The Definitive Guide)
horizontal alignment (see alignment)
12.3.4. Vertical Alignment (Web Design in a Nutshell)
horizontal formatting: 8.2.2. Horizontal Formatting (Cascading Style Sheets: The Definitive Guide)
horizontal location
of clips/movies: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
of mouse pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
horizontal margins, noncollapsing: 8.2.2. Horizontal Formatting (Cascading Style Sheets: The Definitive Guide)
horizontal properties, block-level elements: 8.2.2.1. Horizontal properties (Cascading Style Sheets: The Definitive Guide)
horizontal rules: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.4. Horizontal Rules (Web Design in a Nutshell)
in select menus: 15.6.3. Working with Menus (Web Design in a Nutshell)
horizontal spacing (see hspace attribute margins positioning)
hosts in URLs: 11.2.1. Absolute URLs (Web Design in a Nutshell)
hot keys for hyperlinks: 6.3.1.12. The accesskey and tabindex attributes (HTML & XHTML: The Definitive Guide)
hours of the day
assigning: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
house-mixing console: 6.6.1. Capturing high-quality live sound (Designing Web Audio)
:hover pseudo-class: 10.2.3.1. :hover (Cascading Style Sheets: The Definitive Guide)
<hr> tag: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
HREF attribute: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
HREF tag
MIDI file, adding to: 10.2. Adding MIDI to your web pages (Designing Web Audio)
MP3 files: 8.5. Creating a buzz: posting MP3 files to the Internet (Designing Web Audio)
hreflang attribute: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
hreflang attribute ( ): 6.3.1.10. The charset, hreflang, and type attributes (HTML & XHTML: The Definitive Guide)
HSB (hue saturation brightness) color: 3.3.1.1. RGB color (Web Design in a Nutshell)
hspace attribute: B. List of Attributes (Web Design in a Nutshell)
5.2.6.13. The hspace and vspace attributes (HTML & XHTML: The Definitive Guide)
5.5.1.5. The hspace and vspace attributes (HTML & XHTML: The Definitive Guide)
12.2.4.1. The align, border, height, width, hspace, and vspace attributes (HTML & XHTML: The Definitive Guide)
HTML: 1.1. The Web's Fall from Grace (Cascading Style Sheets: The Definitive Guide)
1.3. HTML: What It Is (HTML & XHTML: The Definitive Guide)
4.0 specification, phasing out tags: 1.2.6. Preparing for the Future (Cascading Style Sheets: The Definitive Guide)
combined with CSS: 1.4. Bringing CSS and HTML Together (Cascading Style Sheets: The Definitive Guide)
11.1.2. Case 2: Library Catalog System Interface (Cascading Style Sheets: The Definitive Guide)
creation of: 1.1.2. HTML and the World Wide Web (HTML & XHTML: The Definitive Guide)
documents in (see HTML documents)
DTD (Document Type Definition): 3.6. HTML Document Elements (HTML & XHTML: The Definitive Guide)
editing application with SMIL tag pack: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
extensions to: 1.3.1. HTML Standards and Extensions (HTML & XHTML: The Definitive Guide)
1.6. Nonstandard Extensions (HTML & XHTML: The Definitive Guide)
limitations of: 16.1. Why XHTML? (HTML & XHTML: The Definitive Guide)
object model: 12.1.1. The Object Model (HTML & XHTML: The Definitive Guide)
selectors in: 2.1.2. Simple Selectors (Cascading Style Sheets: The Definitive Guide)
standardizing with XML (see XHTML)
structure: 2.5. Structure (Cascading Style Sheets: The Definitive Guide)
STYLE element: 1.4.2. The STYLE Element (Cascading Style Sheets: The Definitive Guide)
styles (see styles)
styling compared to CSS: 1.2.1. Rich Styling (Cascading Style Sheets: The Definitive Guide)
tags (see HTML tags)
text editors for: 1.7.1.1. Word processor or WYSIWYG editor? (HTML & XHTML: The Definitive Guide)
2.1. Writing Tools (HTML & XHTML: The Definitive Guide)
tips and tricks: 17. Tips, Tricks, and Hacks (HTML & XHTML: The Definitive Guide)
tips for using: 11.2. Tips & Tricks (Cascading Style Sheets: The Definitive Guide)
version 4.0: 0.4. Is HTML Going Away? (HTML & XHTML: The Definitive Guide)
1.3.1. HTML Standards and Extensions (HTML & XHTML: The Definitive Guide)
whitespace in: 4.1.1.3. Handling whitespace (Cascading Style Sheets: The Definitive Guide)
XHTML vs.: 16.3. HTML Versus XHTML (HTML & XHTML: The Definitive Guide)
HTML attributes (see HTML tags)
ALINK: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
of BODY element: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
6.1.1.1. BODY attributes (Cascading Style Sheets: The Definitive Guide)
CLASS: 2.3.1. Class Selectors (Cascading Style Sheets: The Definitive Guide)
HREF: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
HSPACE: 8.1. Basic Boxes (Cascading Style Sheets: The Definitive Guide)
LINK: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
of LINK element: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
quotation marks with: 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
single attribute values, matching: 10.2.2.3. Matching single attribute values (Cascading Style Sheets: The Definitive Guide)
STYLE: 1.4.6. Inline Styles (Cascading Style Sheets: The Definitive Guide)
2.7.1. Inheritance and Specificity (Cascading Style Sheets: The Definitive Guide)
2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
TYPE: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
VLINK: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
HTML Color Picker (MacOS8): 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
HTML comments: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
HTML, creating forms in: 17.2.1. Building the Frontend (ActionScript: The Definitive Guide)
HTML documents: 1.2.1. Clients, Servers, and Browsers (HTML & XHTML: The Definitive Guide)
(see also web browsers)
boilerplates: 17.1.2. Boilerplate Documents (HTML & XHTML: The Definitive Guide)
colors in (see colors)
columns (see columns)
content, types of: 2.5. The Flesh on an HTML or XHTML Document (HTML & XHTML: The Definitive Guide)
content vs. appearance: 1.5. HTML and XHTML: What They Aren't (HTML & XHTML: The Definitive Guide)
converting to XHMTL: 16.4.2. Automatic Conversion (HTML & XHTML: The Definitive Guide)
designing for your audience: 17.1.1. Design for Your Audience (HTML & XHTML: The Definitive Guide)
document automation: 6.8. Supporting Document Automation (HTML & XHTML: The Definitive Guide)
document-level styles: 8.1.2. Document-Level Style Sheets (HTML & XHTML: The Definitive Guide)
8.6.2.2. The pros and cons of document-level styles (HTML & XHTML: The Definitive Guide)
document-related events: 12.3.3.4. Document events (HTML & XHTML: The Definitive Guide)
dynamic: 13. Dynamic Documents (HTML & XHTML: The Definitive Guide)
editorial markup tags: 3.9. Editorial Markup (HTML & XHTML: The Definitive Guide)
executable content: 12. Executable Content (HTML & XHTML: The Definitive Guide)
forms (see forms)
frames (see frames)
headings in (see headings)
home pages: 1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
2.7.3. Hyperlink Names and Navigation (HTML & XHTML: The Definitive Guide)
6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
images in (see images)
layout (see page layout)
linking to (see hyperlinks)
margins for body content: 5.3.1.6. The leftmargin attribute (HTML & XHTML: The Definitive Guide)
myfirst.html (example): 2.2. A First HTML Document (HTML & XHTML: The Definitive Guide)
pathnames: 6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
refreshing automatically: 13.2.1. Uniquely Refreshing (HTML & XHTML: The Definitive Guide)
relationships between: 6.7. Relationships (HTML & XHTML: The Definitive Guide)
searchable: 2.9.2. Searchable Documents (HTML & XHTML: The Definitive Guide)
6.6. Creating Searchable Documents (HTML & XHTML: The Definitive Guide)
sectioning: 4.1. Divisions and Paragraphs (HTML & XHTML: The Definitive Guide)
5.1.2. Using Rules to Divide Your Document (HTML & XHTML: The Definitive Guide)
structure of: 2.4. HTML Skeleton (HTML & XHTML: The Definitive Guide)
3. Anatomy of an HTML Document (HTML & XHTML: The Definitive Guide)
3.7. The Document Header (HTML & XHTML: The Definitive Guide)
style sheets (see styles)
styles (see styles)
tables (see tables)
tables of contents: 6.3.3. Linking Within a Document (HTML & XHTML: The Definitive Guide)
titles of: 2.4. HTML Skeleton (HTML & XHTML: The Definitive Guide)
3.7.2. The <title> Tag (HTML & XHTML: The Definitive Guide)
4.2.2. Appropriate Use of Headings (HTML & XHTML: The Definitive Guide)
whitespace in (see whitespace)
HTML documents, in ASF data streams: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
HTML documents, style sheets linked to: 1.4.1. The LINK Tag (Cascading Style Sheets: The Definitive Guide)
HTML (Hypertext Markup Language): 8. HTML Overview (Web Design in a Nutshell)
accessibility features: 6.2.1. HTML 4.01 Features (Web Design in a Nutshell)
cascading style sheets and: 5.3.1. Creating the Style Sheets (Web Design in a Nutshell)
color on the Web and: 3.3. Color on the Web (Web Design in a Nutshell)
deprecated tags: C. Deprecated Tags (Web Design in a Nutshell)
document structure of: 8.4. Document Structure (Web Design in a Nutshell)
setting up: 9.2. Setting Up an HTML Document (Web Design in a Nutshell)
editors: 8.6.1. HTML Editors (Web Design in a Nutshell)
ending tags: 17.1.3. Strategies for Using Style Sheets Today (Web Design in a Nutshell)
Flash, adding to documents: 26.4.2. Adding Flash to an HTML Document (Web Design in a Nutshell)
forms (see forms)
15. Forms (Web Design in a Nutshell)
future of: 8.1.5. The Future of HTML (Web Design in a Nutshell)
indents in text, creating with: 10.7.5. Creating Indents with HTML (Web Design in a Nutshell)
information browsers ignore: 8.3. Information Browsers Ignore (Web Design in a Nutshell)
language tags: 7.2. HTML 4.01 Language Features (Web Design in a Nutshell)
misusing structural tags: 6.1.3. The Techniques (Web Design in a Nutshell)
PDF files, linking to: 5.4.3. HTML for Adding PDF Files to Web Pages (Web Design in a Nutshell)
proprietary tags: D. Proprietary Tags (Web Design in a Nutshell)
SSI (see SSI)
standards for: 8.1. The HTML Standard (Web Design in a Nutshell)
style, guidelines for: 8.5. Tips on Good HTML Style (Web Design in a Nutshell)
tables (see tables)
tags (see tags)
text layout techniques with: 10.7. Text Layout Techniques with HTML (Web Design in a Nutshell)
tools: 8.6. HTML Tools (Web Design in a Nutshell)
WYSIWYG tools and: 8.6.2. WYSIWYG Authoring Tools (Web Design in a Nutshell)
HTML support: 18.5. HTML Support (ActionScript: The Definitive Guide)
anchor tags in text fields: 18.5.7. < A> (Anchor or Hypertext Link) (ActionScript: The Definitive Guide)
calling ActionScript functions from: 18.5.14. Calling ActionScript Functions from HTML Links (ActionScript: The Definitive Guide)
executing JavaScript from: 18.5.13. Executing JavaScript from HTML Links (ActionScript: The Definitive Guide)
not added to tab order: 18.5.8. Anchor Tag Tab Order (ActionScript: The Definitive Guide)
bold text in text fields: 18.5.1. <B> (Bold) (ActionScript: The Definitive Guide)
displaying HTML-formatted text on screen: 18.5.11. Using HTML as Output (ActionScript: The Definitive Guide)
embedded fonts in text fields: 18.5.11. Using HTML as Output (ActionScript: The Definitive Guide)
entering text into HTML-enabled text fields: 18.5.12. Using HTML as Input (ActionScript: The Definitive Guide)
font control in text fields: 18.5.4. <FONT> (Font Control) (ActionScript: The Definitive Guide)
hypertext links in text fields: 18.5.7. < A> (Anchor or Hypertext Link) (ActionScript: The Definitive Guide)
calling ActionScript functions from: 18.5.14. Calling ActionScript Functions from HTML Links (ActionScript: The Definitive Guide)
executing JavaScript from: 18.5.13. Executing JavaScript from HTML Links (ActionScript: The Definitive Guide)
not added to tab order: 18.5.8. Anchor Tag Tab Order (ActionScript: The Definitive Guide)
italic text in text fields: 18.5.2. <I> (Italics) (ActionScript: The Definitive Guide)
line breaks in text fields: 18.5.6. <BR> (Line Break) (ActionScript: The Definitive Guide)
paragraph breaks in text fields: 18.5.5. <P> (Paragraph Break) (ActionScript: The Definitive Guide)
quoting attribute values: 18.5.9. Quoting Attribute Values (ActionScript: The Definitive Guide)
underlined text in text fields: 18.5.3. <U> (Underline) (ActionScript: The Definitive Guide)
HTML tags: 2.3. Embedded Tags (HTML & XHTML: The Definitive Guide)
3.3. Tags and Attributes (HTML & XHTML: The Definitive Guide)
3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
attributes for: 3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
value-less, XHTML values for: 16.3.6. Explicit Attribute Values (HTML & XHTML: The Definitive Guide)
content-based style: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
3.5. Document Content (HTML & XHTML: The Definitive Guide)
4.3.1. Content-Based Styles (HTML & XHTML: The Definitive Guide)
4.4. Content-Based Style Tags (HTML & XHTML: The Definitive Guide)
for editorial markup: 3.9. Editorial Markup (HTML & XHTML: The Definitive Guide)
empty, in XHTML format: 16.3.3. Handling Empty Elements (HTML & XHTML: The Definitive Guide)
font handling: 4.6. HTML's Expanded Font Handling (HTML & XHTML: The Definitive Guide)
nesting: 3.3.4. Proper and Improper Nesting (HTML & XHTML: The Definitive Guide)
omitting: 3.3.6. Omitting Tags (HTML & XHTML: The Definitive Guide)
physical style: 4.3.2. Physical Styles (HTML & XHTML: The Definitive Guide)
4.5. Physical Style Tags (HTML & XHTML: The Definitive Guide)
starting and ending tags: 2.3.1. Start and End Tags (HTML & XHTML: The Definitive Guide)
3.3.3. Starting and Ending Tags (HTML & XHTML: The Definitive Guide)
16.3.3. Handling Empty Elements (HTML & XHTML: The Definitive Guide)
styles for (see styles)
tag-less styles ( ): 8.5. Tag-less Styles: The <span> Tag (HTML & XHTML: The Definitive Guide)
.htmlf filename suffix: 18.3.1. Example: Virtual Includes (Web Design in a Nutshell)
HTTP_ACCEPT variable: 18.7.1. Other Available Variables (Web Design in a Nutshell)
HTTP Cloaking, RealServer: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
http-equiv attribute ( ): 6.8.1.3. The http-equiv attribute (HTML & XHTML: The Definitive Guide)
13.2.1. Uniquely Refreshing (HTML & XHTML: The Definitive Guide)
http-equiv attribute: 7.1.3. Specifying Character Encoding (Web Design in a Nutshell)
9.4. Using <meta> Tags (Web Design in a Nutshell)
9.4.1. The http - equiv Attribute (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
tag: 9.1. Summary of Structural Tags (Web Design in a Nutshell)
HTTP (Hypertext Transfer Protocol): 5.1. Streaming protocols (Designing Web Audio)
1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
Redirect header: 13.2.4. Combining Refresh with Other HTTP Header Fields (HTML & XHTML: The Definitive Guide)
Refresh header: 13.2.1. Uniquely Refreshing (HTML & XHTML: The Definitive Guide)
http protocol (getURL( )): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
HTTP_REFERER variable: 18.7.1. Other Available Variables (Web Design in a Nutshell)
HTTP response headers: 4.1.2.3. HTTP response header (Web Design in a Nutshell)
http servers: 6.2.2.1. The http server (HTML & XHTML: The Definitive Guide)
HTTP streaming
firewalls: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
procedure: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
pseudo-streaming: 1.7.1.2. Embedding narration in a web page (Designing Web Audio)
6.2.1. Pros and cons (Designing Web Audio)
requirements: 6.2.2. Requirements for HTTP streaming (Designing Web Audio)
http URLs: 6.2.2. The http URL (HTML & XHTML: The Definitive Guide)
HTTP_USER_AGENT variable: 18.7.1. Other Available Variables (Web Design in a Nutshell)
Huffman encoding: 8.2.1. MP3 technical details (Designing Web Audio)
Huffman table: 20.6.2. "Optimized" JPEGs (Web Design in a Nutshell)
HVS ColorGIF (Digital Frontiers): 19.5. Tools Overview (Web Design in a Nutshell)
HVS JPEG 2.1 plug-in: 20.5. Creating JPEGs (Web Design in a Nutshell)
hybrid colors: 22.4. Color Blenders (Web Design in a Nutshell)
hybrid organization schemes: 3.2.1.3. Hybrid schemes (Information Architecture for the World Wide Web)
hyperlinking
RealPix: 7.3.2. Hyperlinking (Designing Web Audio)
RealText: 7.4.3. Hyperlinking (Designing Web Audio)
hyperlinks: 1.1.2. HTML and the World Wide Web (HTML & XHTML: The Definitive Guide)
2.7. Hyperlinks (HTML & XHTML: The Definitive Guide)
2.7.2. Anchors (HTML & XHTML: The Definitive Guide)
6.1. Hypertext Basics (HTML & XHTML: The Definitive Guide)
background images, placing in: 6.2.1. Background Images (Cascading Style Sheets: The Definitive Guide)
clickable image maps: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5. Mouse-Sensitive Images (HTML & XHTML: The Definitive Guide)
tag: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.4. The <area> Tag (HTML & XHTML: The Definitive Guide)
tags: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.3. The <map> Tag (HTML & XHTML: The Definitive Guide)
web browsers and: 6.5.6. Handling Other Browsers (HTML & XHTML: The Definitive Guide)
color, setting: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
colors for: 5.3.1.5. The link, vlink, and alink attributes (HTML & XHTML: The Definitive Guide)
effective use of: 6.4. Creating Effective Links (HTML & XHTML: The Definitive Guide)
embedded guides: 17.4.4. Embedded Guides (HTML & XHTML: The Definitive Guide)
to external content: 5.6.3. Appropriate Linking Styles (HTML & XHTML: The Definitive Guide)
images and: 6.4.4. Using Images and Links (HTML & XHTML: The Definitive Guide)
linking within documents: 6.3.3. Linking Within a Document (HTML & XHTML: The Definitive Guide)
navigating with Tab and hot keys: 6.3.1.12. The accesskey and tabindex attributes (HTML & XHTML: The Definitive Guide)
relationships between: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
removing underlining from: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
states of: 8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
targets for: 6.3.1.8. The target attribute (HTML & XHTML: The Definitive Guide)
6.7.1.2. The target attribute (HTML & XHTML: The Definitive Guide)
9.2.5. The target Attribute (HTML & XHTML: The Definitive Guide)
11.7. Named Frame or Window Targets (HTML & XHTML: The Definitive Guide)
image maps and: 6.5.4.8. The target attribute (HTML & XHTML: The Definitive Guide)
hypertext: 3.2.2.3. Hypertext (Information Architecture for the World Wide Web)
embedded links: 4.4.4. Ad Hoc Navigation (Information Architecture for the World Wide Web)
link labels: 5.3.3. Link Labels (Information Architecture for the World Wide Web)
navigation and: 4.3. Improving Flexibility (Information Architecture for the World Wide Web)
navigation bars: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
hypertext link: 11.2. Simple Hypertext Links (Web Design in a Nutshell)
specifying color for: 11.4.1. Setting Colors in <body> (Web Design in a Nutshell)
hypertext links (HTML support in text fields): 18.5.7. < A> (Anchor or Hypertext Link) (ActionScript: The Definitive Guide)
calling ActionScript functions from: 18.5.14. Calling ActionScript Functions from HTML Links (ActionScript: The Definitive Guide)
executing JavaScript from: 18.5.13. Executing JavaScript from HTML Links (ActionScript: The Definitive Guide)
not added to tab order: 18.5.8. Anchor Tag Tab Order (ActionScript: The Definitive Guide)
Hypertext Markup Language (see HTML)
1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
Hypertext Transfer Protocol (see HTTP)
hyphen (-), using attributes with: 8.2.3. Attributes (Web Design in a Nutshell)
hyphenated values, matching: 10.2.2.5. Matching hyphenated values (Cascading Style Sheets: The Definitive Guide)
hyphenation: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: I

<i> (italic) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.2. Physical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
2.6.1.2. Physical styles (HTML & XHTML: The Definitive Guide)
WML: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
icons
for labeling systems: 5.3.5. Iconic Labeling Systems (Information Architecture for the World Wide Web)
5.6.2. When You Just Have To Use Icons (Information Architecture for the World Wide Web)
in navigation bars: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
using simply for fun: 5.6.2. When You Just Have To Use Icons (Information Architecture for the World Wide Web)
id attribute:
Appendix A. HTML Elements (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
ID attributes: 2.3.2. ID Selectors (Cascading Style Sheets: The Definitive Guide)
ID selectors: 2.3. Class and ID Selectors (Cascading Style Sheets: The Definitive Guide)
2.3.2. ID Selectors (Cascading Style Sheets: The Definitive Guide)
vs. class selectors: 2.3.3. Class? ID? What's the Difference? (Cascading Style Sheets: The Definitive Guide)
simulating: 10.2.2.4. Simulating class and ID (Cascading Style Sheets: The Definitive Guide)
universal selector and: 10.2.1.1. Universal selector (Cascading Style Sheets: The Definitive Guide)
ID3 tags: 8.4.2.4. Working with ID3 tags (Designing Web Audio)
identifiers
in assignment operations: 5.2. The Assignment Operator (ActionScript: The Definitive Guide)
case-sensitivity issues for: 14.6. Case Sensitivity (ActionScript: The Definitive Guide)
converting strings to: 4.6.10. Executing Code in a String with eval (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating instance names: 13.3.3. Instance Names (ActionScript: The Definitive Guide)
rules for composing: 14.5. Identifiers (ActionScript: The Definitive Guide)
identifiers (IDs)
articles in newsgroups: 6.2.7.2. The nntp newsgroup and article (HTML & XHTML: The Definitive Guide)
messages on news servers: 6.2.6.2. Accessing single messages (HTML & XHTML: The Definitive Guide)
IE5: 1.5. Audio challenges and limitations (Designing Web Audio)
IEC (International Electro-Technical Commission): 8.2. What is MP3? (Designing Web Audio)
IETF (Internet Engineering Task Force): 1.6. The Importance of Standards (Web Design in a Nutshell)
1.2.4.2. The Internet Engineering Task Force (HTML & XHTML: The Definitive Guide)
if-else if-else statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
simulating switch statements: 7.4. Simulating the switch Statement (ActionScript: The Definitive Guide)
if-else statement: 7.2.1. The Conditional Operator (ActionScript: The Definitive Guide)
If Frame Is Loaded Action: 6.3.10. The ifFrameLoaded Statement (ActionScript: The Definitive Guide)
if keyword in calculation scripts: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
if statement: 7.1. The if Statement (ActionScript: The Definitive Guide)
substatements in: 7.1. The if Statement (ActionScript: The Definitive Guide)
if statement (XSSI): 18.5.1. Flow Control Elements (Web Design in a Nutshell)
ifFrameLoaded statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
6.3.10. The ifFrameLoaded Statement (ActionScript: The Definitive Guide)
ignored HTML tags: 3.3.7. Ignored or Redundant Tags (HTML & XHTML: The Definitive Guide)
ignoreWhite property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ignoring declarations: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
IIS (Internet Information Server): 6.3.3.2. RealServer system requirements (Designing Web Audio)
8.5.1. Creating your own MP3 site (Designing Web Audio)
4.1.1. Popular Server Software (Web Design in a Nutshell)
8.6.2.2. Some available web authoring tools (Web Design in a Nutshell)
Illustrator (Adobe): 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
image buttons on forms: 15.4.1.8. Image button (type=image) (Web Design in a Nutshell)
image maps: 4.1. Browser Navigation Features (Information Architecture for the World Wide Web)
image resolution: 3.4.2. Image Resolution (Web Design in a Nutshell)
image rollovers: 28.3.4. Image Rollovers (Web Design in a Nutshell)
image transition, RealPix: 7.3.1. RealPix syntax (Designing Web Audio)
imagemaps: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
11.6. Imagemaps (Web Design in a Nutshell)
12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
multipart images in tables: 13.8. Multipart Images in Tables (Web Design in a Nutshell)
server-side: 11.6.3. Server-Side Imagemaps (Web Design in a Nutshell)
text alternatives for: 6.1.3. The Techniques (Web Design in a Nutshell)
11.6.4.1. Providing complete alternative text (Web Design in a Nutshell)
ImageReady (Adobe): 13.8.1.2. Adobe ImageReady (Web Design in a Nutshell)
19.5. Tools Overview (Web Design in a Nutshell)
23.4.1. Applications That Include GIF Animation Tools (Web Design in a Nutshell)
Gamma Simulator: 3.3.1.3. Gamma (Web Design in a Nutshell)
JPEG images, creating: 20.5. Creating JPEGs (Web Design in a Nutshell)
palettes: 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
22.2. Converting to the Web Palette (Web Design in a Nutshell)
web colors and: 22.2.2.2. Adobe ImageReady (Photoshop 5.5 and higher) (Web Design in a Nutshell)
images: 2.1. Dealing with Unknown Monitor Resolutions (Web Design in a Nutshell)
2.8. Images Are Special (HTML & XHTML: The Definitive Guide)
2.8. Images Are Special (HTML & XHTML: The Definitive Guide)
5.2. Inserting Images in Your Documents (HTML & XHTML: The Definitive Guide)
5.6.2. Referencing Audio, Video, and Images (HTML & XHTML: The Definitive Guide)
alignment: 5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
5.2.6.6. Centering an image (HTML & XHTML: The Definitive Guide)
aspect ratio, maintaining while altering size: 7.3.1. RealPix syntax (Designing Web Audio)
attachment and: 6.2.5. Getting Attached (Cascading Style Sheets: The Definitive Guide)
as background: 6.2. Complex Backgrounds (Cascading Style Sheets: The Definitive Guide)
specifying color: 6.2.1.1. Good background practices (Cascading Style Sheets: The Definitive Guide)
border around, setting color: 6.1.1.2. Affecting borders (Cascading Style Sheets: The Definitive Guide)
borders: 5.2.6.8. The border attribute (HTML & XHTML: The Definitive Guide)
6.3.1.2. The href attribute (HTML & XHTML: The Definitive Guide)
as bullets in lists: 7.7.2. List Item Images (Cascading Style Sheets: The Definitive Guide)
centering: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
with text: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
clickable image maps: 4.1. Browser Navigation Features (Information Architecture for the World Wide Web)
2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5. Mouse-Sensitive Images (HTML & XHTML: The Definitive Guide)
tag: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.4. The <area> Tag (HTML & XHTML: The Definitive Guide)
tags: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.3. The <map> Tag (HTML & XHTML: The Definitive Guide)
web browsers and: 6.5.6. Handling Other Browsers (HTML & XHTML: The Definitive Guide)
combining attributes for: 5.2.6.17. Combining <img> attributes (HTML & XHTML: The Definitive Guide)
custom image buttons (forms): 9.5.4.3. Custom image buttons (HTML & XHTML: The Definitive Guide)
download performance: 5.2.2. When to Use Images (HTML & XHTML: The Definitive Guide)
fixing against scrolling: 5.3.1.3. The bgproperties attribute (HTML & XHTML: The Definitive Guide)
8.4.4.1. The background-attachment property (HTML & XHTML: The Definitive Guide)
floating: 4.1.1.1. Indenting text (Cascading Style Sheets: The Definitive Guide)
7.6. Floating and Clearing (Cascading Style Sheets: The Definitive Guide)
11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
flowing text around: 4.7.1.1. The clear attribute (HTML & XHTML: The Definitive Guide)
graphics formats: 5.2.1. Understanding Image Formats (HTML & XHTML: The Definitive Guide)
5.2.5. JPEG or GIF? (HTML & XHTML: The Definitive Guide)
in headings: 4.2.6. Adding Images to Headings (HTML & XHTML: The Definitive Guide)
hyperlinks and: 6.4.4. Using Images and Links (HTML & XHTML: The Definitive Guide)
indenting with text: 4.1.1.1. Indenting text (Cascading Style Sheets: The Definitive Guide)
line height and: 8.4.4. Inline Replaced Elements (Cascading Style Sheets: The Definitive Guide)
as list item signifiers: 8.4.7.1. The list-style-image property (HTML & XHTML: The Definitive Guide)
manipulating size and position, RealPix: 7.3.1. RealPix syntax (Designing Web Audio)
margins around: 5.2.6.13. The hspace and vspace attributes (HTML & XHTML: The Definitive Guide)
middle alignment: 4.1.3.5. In the middle (Cascading Style Sheets: The Definitive Guide)
origin image: 6.2.3.3. Length values (Cascading Style Sheets: The Definitive Guide)
repeating: 6.2.2. Repeats with Direction (Cascading Style Sheets: The Definitive Guide)
(Cascading Style Sheets: The Definitive Guide) 6.2.4. Repeats with Direction (Revisited)
rules (see rules under horizontal)
sidebar: 6.2.2. Repeats with Direction (Cascading Style Sheets: The Definitive Guide)
size: 5.2.6.10. The height and width attributes (HTML & XHTML: The Definitive Guide)
in table of contents: 4.6.1. The Table of Contents (Information Architecture for the World Wide Web)
text flow around: 4.7.1.1. The clear attribute (HTML & XHTML: The Definitive Guide)
text in place of: 5.2.6.3. The alt and longdesc attributes (HTML & XHTML: The Definitive Guide)
tiling: 6.2.4. Repeats with Direction (Revisited) (Cascading Style Sheets: The Definitive Guide)
transparent (see transparency)
true color images: 17.5.1. Colors, Maps, and Indexes (HTML & XHTML: The Definitive Guide)
vertical alignment and: 4.1.3.1. Baseline alignment (Cascading Style Sheets: The Definitive Guide)
when to use: 5.2.2. When to Use Images (HTML & XHTML: The Definitive Guide)
wrapping text around: 5.2.6.5. Wrapping text around images (HTML & XHTML: The Definitive Guide)
<img> (image) tag: 8.2.2 Empty tags (Web Design in a Nutshell)
12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.3. The <img> Tag and Its Attributes (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
inline video with: 25.5.4. The dynsrc Attribute (Web Design in a Nutshell)
WML: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
imgOn( ) JavaScript function: 28.3.4.1. Simple rollovers (Web Design in a Nutshell)
iMode (wireless communication system): 32.1.1. The Wireless Environment (Web Design in a Nutshell)
impedance: 3.1.1.6. Frequency response (Designing Web Audio)
implementations of CSS: 1.3.2. Implementations (Cascading Style Sheets: The Definitive Guide)
implements keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
implicit datatype conversion: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
implicit label associations (forms): 9.10.1.1. Implicit and explicit associations (HTML & XHTML: The Definitive Guide)
implicit vs. explicit variable declaration: 2.1.1. Automatic Variable Creation (ActionScript: The Definitive Guide)
@import command: 8.1.3.2. Imported external style sheets (HTML & XHTML: The Definitive Guide)
@import directive: 1.4.3. The @import Directive (Cascading Style Sheets: The Definitive Guide)
hiding styles: 11.2.2. Hiding Styles with @import (Cascading Style Sheets: The Definitive Guide)
Import From File operation: 16.7.1. Import From File (Author-Time Import) (ActionScript: The Definitive Guide)
@import function: 17.2.2.3. External style sheets (Web Design in a Nutshell)
import keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
@import rule: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
5.3.2.3. @import rule (Web Design in a Nutshell)
!important property: 2.7.2. Importance (Cascading Style Sheets: The Definitive Guide)
important rules: 2.7.2. Importance (Cascading Style Sheets: The Definitive Guide)
imported external style sheets: 8.1.3.2. Imported external style sheets (HTML & XHTML: The Definitive Guide)
8.6.2.1. The pros and cons of external styles (HTML & XHTML: The Definitive Guide)
linked vs.: 8.1.5. Linked Versus Imported Style Sheets (HTML & XHTML: The Definitive Guide)
imported style sheets: 1.2.3. Using Your Styles on Multiple Pages (Cascading Style Sheets: The Definitive Guide)
overriding styles in: 7.6.1.3. No floating at all (Cascading Style Sheets: The Definitive Guide)
importing code
using #include directive: 16.7.2. #include (Compile-Time Import) (ActionScript: The Definitive Guide)
using shared libraries: 16.7.3. Shared Library (Runtime Import) (ActionScript: The Definitive Guide)
importing style sheets: 17.2.2.3. External style sheets (Web Design in a Nutshell)
i18n (see internationalization)
inches (in): 3.2.1. Absolute Length Units (Cascading Style Sheets: The Definitive Guide)
inches, irrelevance of in web design: 3.4.2.2. Good-bye inches, hello pixels (Web Design in a Nutshell)
inclined text: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
include command (SSI): 18.3.1. Example: Virtual Includes (Web Design in a Nutshell)
18.6. SSI Commands (Web Design in a Nutshell)
#include directive: 16.7.2. #include (Compile-Time Import) (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
semicolons not allowed: 14.2. Statement Terminators (Semicolons) (ActionScript: The Definitive Guide)
includes: 11.2.4. Styling Common Elements (Cascading Style Sheets: The Definitive Guide)
inclusions: 12.1.1. The Object Model (HTML & XHTML: The Definitive Guide)
increment (++) operator: 5.3.2. Increment (ActionScript: The Definitive Guide)
in do-while loops: 8.3. The do-while Loop (ActionScript: The Definitive Guide)
indentation: 3.1. Appearances Can Deceive (HTML & XHTML: The Definitive Guide)
abusing for: 7.5.2.1. Formatting text with <dt> (HTML & XHTML: The Definitive Guide)
block quotes: 4.8. Block Quotes (HTML & XHTML: The Definitive Guide)
for lists: 17.5.4. Classification Properties (Web Design in a Nutshell)
for paragraphs: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
nested unorderded lists, using for: 7.1.1. The <ul> Tag (HTML & XHTML: The Definitive Guide)
paragraphs, with: 14.1.1.1. Creating horizontal space (HTML & XHTML: The Definitive Guide)
text-indent property for: 8.4.5.5. The text-indent property (HTML & XHTML: The Definitive Guide)
indenting text: 4.1.1.1. Indenting text (Cascading Style Sheets: The Definitive Guide)
11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
indents (text): 10.7.5. Creating Indents with HTML (Web Design in a Nutshell)
Indeo codec (Intel): 25.2.3. Video Codecs (Web Design in a Nutshell)
index cards, using: 7.5. Grouping Content (Information Architecture for the World Wide Web)
index document relationship: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
index files (servers): 4.1.2.2. Index files (Web Design in a Nutshell)
4.2. Unix Directory Structures (Web Design in a Nutshell)
index variables in loops: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.4.1. Multiple Iterators in for Loops (ActionScript: The Definitive Guide)
indexed color: 19.2. 8-Bit Indexed Color (Web Design in a Nutshell)
21.4.1. 8-Bit Palette Images (Web Design in a Nutshell)
transparency and: 19.7. Transparency (Web Design in a Nutshell)
indexes: 4.6.2. The Index (Information Architecture for the World Wide Web)
audience-specific: 6.5.2.2. Who's going to care? Indexing for specific audiences (Information Architecture for the World Wide Web)
comprehensive: 6.5.1. Indexing the Entire Site (Information Architecture for the World Wide Web)
labels as terms in: 5.3.2. Labels as Indexing Terms (Information Architecture for the World Wide Web)
permuted: 4.6.2. The Index (Information Architecture for the World Wide Web)
selective: 6.5.2. Search Zones: Selectively Indexing the Right Content (Information Architecture for the World Wide Web)
similar content types: 6.5.2.1. Apples and apples: indexing similar content types (Information Architecture for the World Wide Web)
subject-oriented: 6.5.2.3. Drilling down: Indexing by subject (Information Architecture for the World Wide Web)
indexes, character (see character indexes)
indexing, RealMedia clips: 6.4.3. Indexing RealMedia clips: creating a table of contents (Designing Web Audio)
indexOf( ) (String class): function (ActionScript: The Definitive Guide) 4.6.5.3. The indexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
substring( ) and: 4.6.7. Combining String Examination with Substring Extraction (ActionScript: The Definitive Guide)
inequality ( ) operator (Flash 4): 5.4.4. The Inequality Operator (ActionScript: The Definitive Guide)
inequality (ne) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
inequality operator (Flash 4): 5.4.4. The Inequality Operator (ActionScript: The Definitive Guide)
infinite loops: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.2. Loop Terminology (ActionScript: The Definitive Guide)
avoiding: 8.6.3. Maximum Number of Iterations (ActionScript: The Definitive Guide)
infinite recursion, preventing: 9.9. Recursive Functions (ActionScript: The Definitive Guide)
infinite value (marquee looping): 5.5.1.2. The behavior, direction, and loop attributes (HTML & XHTML: The Definitive Guide)
Infinity global property: 4.3.3.3. Infinity and negative infinity: Infinity and -Infinity (ActionScript: The Definitive Guide)
(see also NEGATIVE_INFINITY property)
isFinite( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Infinity Looping Tools: 1.7.3. Designing music loops (Designing Web Audio)
information architects: 2.2. Who Should Be the Information Architect? (Information Architecture for the World Wide Web)
information architecture
blueprints for: 8.4. High-Level Architecture Blueprints (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
case study: 10. Information Architecture in Action (Information Architecture for the World Wide Web)
critiquing: 7.1.3. Information Architecture Critiques (Information Architecture for the World Wide Web)
evaluating during site production: 9.4. Point-of-Production Architecture (Information Architecture for the World Wide Web)
meeting agenda sample: 7.1.1. Face-to-Face Meetings (Information Architecture for the World Wide Web)
page mockups: 8.5. Architectural Page Mockups (Information Architecture for the World Wide Web)
style guides for: 9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
web site prototypes: 8.7. Web-Based Prototypes (Information Architecture for the World Wide Web)
information (content): 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
ambiguity: 3.1.1. Ambiguity (Information Architecture for the World Wide Web)
3.2.1.2. Ambiguous organization schemes (Information Architecture for the World Wide Web)
audience's needs for: 6.2.1. Users Have Different Kinds of Information Needs (Information Architecture for the World Wide Web)
changing/growing (see dynamic content)
content mapping: 9.2. Content Mapping (Information Architecture for the World Wide Web)
context for: 4.2. Building Context (Information Architecture for the World Wide Web)
controlled vocabulary: 3.2.2.5. Designing databases (Information Architecture for the World Wide Web)
5.4.1.3. Controlled vocabularies and thesauri (Information Architecture for the World Wide Web)
5.5.1. The Basics (Information Architecture for the World Wide Web)
grouping (chunking): 7.5. Grouping Content (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.2. Content Mapping (Information Architecture for the World Wide Web)
hierarchies of: 3.2.2.1. The hierarchy: A top-down approach (Information Architecture for the World Wide Web)
navigation and: 4.3. Improving Flexibility (Information Architecture for the World Wide Web)
table of contents: 4.6.1. The Table of Contents (Information Architecture for the World Wide Web)
indexing (see indexes)
inventory forms: 7.4.2. Wish Lists and Content Inventory Forms (Information Architecture for the World Wide Web)
multiple pathways to (example): 10.2.6. Multiple Pathways to Content (Information Architecture for the World Wide Web)
page model of: 4.5.2.2. The page model (Information Architecture for the World Wide Web)
politics and: 3.1.4. Internal Politics (Information Architecture for the World Wide Web)
7.1.1. Face-to-Face Meetings (Information Architecture for the World Wide Web)
ranking by relevance: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
requirements for: 7.4. Identifying Content and Function Requirements (Information Architecture for the World Wide Web)
search options for: 6.3.4. Search Options Should Be Clear (Information Architecture for the World Wide Web)
search results and: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
similar types of indexing: 6.5.2.1. Apples and apples: indexing similar content types (Information Architecture for the World Wide Web)
structure of: 3.2.2. Organization Structures (Information Architecture for the World Wide Web)
taking label text from: 5.4.1.4. Labels from content (Information Architecture for the World Wide Web)
textual link labels: 5.3.3. Link Labels (Information Architecture for the World Wide Web)
what to include in search results: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
information experts
asking for labeling advice: 5.4.1.5. Labels from users and experts (Information Architecture for the World Wide Web)
reference interviews: 6.4. In an Ideal World: The Reference Interview (Information Architecture for the World Wide Web)
skills of: 2.2.3.2. Information and library science (Information Architecture for the World Wide Web)
Informix: 5.2.7. Liquid Audio (Designing Web Audio)
inherit value: 10.1. Changes from CSS1 (Cascading Style Sheets: The Definitive Guide)
10.1.2. More Inheritance (Cascading Style Sheets: The Definitive Guide)
inherit value (layer visibility): 14.3.1.5. The visibility attribute (HTML & XHTML: The Definitive Guide)
inheritance: 2.6. Inheritance (Cascading Style Sheets: The Definitive Guide)
background-color property and: 6.1.2. Background Color (Cascading Style Sheets: The Definitive Guide)
color property and: 6.1.1.3. Inheriting color (Cascading Style Sheets: The Definitive Guide)
font size and: 5.3.4. Font Size and Inheritance (Cascading Style Sheets: The Definitive Guide)
specificity and: 2.7.1. Inheritance and Specificity (Cascading Style Sheets: The Definitive Guide)
inheritance, style sheet: 17.2.3. Inheritance (Web Design in a Nutshell)
inheritance, styles and: 8.3.6. Class Inheritance (HTML & XHTML: The Definitive Guide)
8.4.2. Property Inheritance (HTML & XHTML: The Definitive Guide)
inherited properties: 12.5.3. Object Property Inheritance (ActionScript: The Definitive Guide)
creating with prototype property: 12.5.3.1. Creating inherited properties with the prototype property (ActionScript: The Definitive Guide)
Object.constructor property and: 12.5.3.3. The constructor property (ActionScript: The Definitive Guide)
Object.__proto__ property and: 12.5.3.4. The _ _ proto_ _ property (ActionScript: The Definitive Guide)
overriding: 12.5.3.2. Overriding inherited properties (ActionScript: The Definitive Guide)
polymorphism and: 12.5.4.2. Polymorphism (ActionScript: The Definitive Guide)
superclasses and subclasses: 12.5.4. Superclasses and Subclasses (ActionScript: The Definitive Guide)
using Object class to generate global variables/methods: 12.5.4.4. The end of the inheritance chain (ActionScript: The Definitive Guide)
initial containing block: 9.1. General Concepts (Cascading Style Sheets: The Definitive Guide)
initialization, loop: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.2. Loop Terminology (ActionScript: The Definitive Guide)
initializing variables: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
Smart Clips as alternative to: 16.8. Packaging Components as Smart Clips (ActionScript: The Definitive Guide)
inline
frames: 11.6. Inline Frames (HTML & XHTML: The Definitive Guide)
images: 2.8.1. Inline Images (HTML & XHTML: The Definitive Guide)
items: 8.4.8.1. The display property (HTML & XHTML: The Definitive Guide)
layers: 14.3.2. The <ilayer> Tag (HTML & XHTML: The Definitive Guide)
references: 6.4.2. Inline References (HTML & XHTML: The Definitive Guide)
styles: 8.1.1. Inline Styles: The style Attribute (HTML & XHTML: The Definitive Guide)
12.4.1.1. External, document-level, and inline JSS (HTML & XHTML: The Definitive Guide)
advantages and disadvantages of using: 8.6.2.3. The pros and cons of inline styles (HTML & XHTML: The Definitive Guide)
inline box: 4.1.2. The Height of Lines (Cascading Style Sheets: The Definitive Guide)
8.4.2.1. Generating a line box (Cascading Style Sheets: The Definitive Guide)
11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
inline elements: 2.9. Classification of Elements (Cascading Style Sheets: The Definitive Guide)
8.4. Inline Elements (Cascading Style Sheets: The Definitive Guide)
background images, placing in: 6.2.1. Background Images (Cascading Style Sheets: The Definitive Guide)
borders and: 7.4.5. Borders and Inline Elements (Cascading Style Sheets: The Definitive Guide)
box properties, adding to: 8.4.2.2. Adding box properties (Cascading Style Sheets: The Definitive Guide)
formatting: 8.4.2. Inline Formatting (Cascading Style Sheets: The Definitive Guide)
line height, managing: 8.4.3. Managing the Line Height of Inline Elements (Cascading Style Sheets: The Definitive Guide)
line-height property and: 4.1.2. The Height of Lines (Cascading Style Sheets: The Definitive Guide)
line layout: 8.4.1. Line Layout (Cascading Style Sheets: The Definitive Guide)
margins and: 7.3.8. Margins: Known Issues (Cascading Style Sheets: The Definitive Guide)
caution with: 7.3.8. Margins: Known Issues (Cascading Style Sheets: The Definitive Guide)
padding and: 7.5.3. Padding and Inline Elements (Cascading Style Sheets: The Definitive Guide)
replaced: 8.4.4. Inline Replaced Elements (Cascading Style Sheets: The Definitive Guide)
box properties, adding to: 8.4.4.1. Adding box properties (Cascading Style Sheets: The Definitive Guide)
vertical-align property and: 4.1.3. Vertical Alignment (Cascading Style Sheets: The Definitive Guide)
inline (floating) frames: Frames (Web Design in a Nutshell) 14.6. Inline (Floating)
Navigator imitation of: 14.7.5. Faking an <iframe> (Web Design in a Nutshell)
inline formatting: 8.4.2. Inline Formatting (Cascading Style Sheets: The Definitive Guide)
inline quotation ( ) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
inline styles: 1.4.6. Inline Styles (Cascading Style Sheets: The Definitive Guide)
inline type styles: 10.3. Inline Type Styles (Web Design in a Nutshell)
17.2.2.1. Inline styles (Web Design in a Nutshell)
inline video: 25.5.4. The dynsrc Attribute (Web Design in a Nutshell)
input plug-ins, MP3: 8.3.5. Plug-ins (Designing Web Audio)
<input> tags: 9.5. The <input> Tag (HTML & XHTML: The Definitive Guide)
<ins> (inserted text) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
INSERT property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Insert Target Path tool: 13.5.5. Authoring Instance References with Insert Target Path (ActionScript: The Definitive Guide)
insertBefore( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
insertion point
retrieving index of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting in text: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
inset borders: 8.4.6.5. The border-style property (HTML & XHTML: The Definitive Guide)
insiders, thinking like: 2.2.2. Thinking Like an Insider (Information Architecture for the World Wide Web)
Insomnious: 9.2.2. Flash audio tutorial (Designing Web Audio)
instance methods, Java vs. ActionScript property equivalencies for: 12.5.4.5. Comparing Java terminology (ActionScript: The Definitive Guide)
instance variables, Java vs. ActionScript property equivalencies for: 12.5.4.5. Comparing Java terminology (ActionScript: The Definitive Guide)
instanceof keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
instances, movie clip (see movie clips, instances)
instances of object classes: 12. Objects and Classes (ActionScript: The Definitive Guide)
creating: 12.2. Instantiating Objects (ActionScript: The Definitive Guide)
12.5.2.1. Creating members of a class (ActionScript: The Definitive Guide)
dynamically assigning property values to: 12.5.2.2. Assigning custom properties to the objects of a class (ActionScript: The Definitive Guide)
int( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.floor( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
parseInt( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
int keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
integer literals: 4.3.1. Integer Literals (ActionScript: The Definitive Guide)
integers: 4.2. Integers and Floating-Point Numbers (ActionScript: The Definitive Guide)
extracting from strings: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
integrated navigation elements: 4.5. Integrated Navigation Elements (Information Architecture for the World Wide Web)
Intel Indeo codec: 25.2.3. Video Codecs (Web Design in a Nutshell)
interactive animation: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
interactive sound
design, case study: 1.9. Interactive sound design case study (Designing Web Audio)
film sound, compared to: 1.6. Solid sound design (Designing Web Audio)
interactivity
Flash content (Macromedia): 26. Flash and Shockwave (Web Design in a Nutshell)
Java applets for: 12.6. Java Applets (Web Design in a Nutshell)
JavaScript-enabled buttons: 11.6.4.2. Rollover buttons (Web Design in a Nutshell)
Shockwave movies: 26.7. Shockwave for Director (Web Design in a Nutshell)
interation pseudo-classes: 8.3.4.2. Interaction pseudo-classes (HTML & XHTML: The Definitive Guide)
interface keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
interframe, delay (animation): 23.5.1. Frame Delay (Web Design in a Nutshell)
interlacing: 19.6. Interlacing (Web Design in a Nutshell)
21.6.1. Interlacing (Progressive Display) (Web Design in a Nutshell)
5.2.1.2. Interlacing, transparency, and animation (HTML & XHTML: The Definitive Guide)
GIF animation: 23.5.5. Other Options (Web Design in a Nutshell)
internal functions: 9. Functions (ActionScript: The Definitive Guide)
9.10. Internal Functions (ActionScript: The Definitive Guide)
9.10.1. Internal Function Availability (ActionScript: The Definitive Guide)
(see also built-in functions)
availability of: 9.10.1. Internal Function Availability (ActionScript: The Definitive Guide)
internal layer stacks: 13.4.1. The Internal Layer Stack (ActionScript: The Definitive Guide)
internal pre-amps: 3.1.2. Microphone pre-amps (Designing Web Audio)
International Electro-Technical Commission (IEC): 8.2. What is MP3? (Designing Web Audio)
International Standards Organization (ISO): 8.2. What is MP3? (Designing Web Audio)
internationalization: 7. Internationalization (Web Design in a Nutshell)
character sets: 7.1. Character Sets (Web Design in a Nutshell)
dir and lang attributes: 3.7.1.1. The dir and lang attributes (HTML & XHTML: The Definitive Guide)
dir attribute, overriding with: 3.10. The <bdo> Tag (HTML & XHTML: The Definitive Guide)
HTML 4.0 language tags: 7.2. HTML 4.01 Language Features (Web Design in a Nutshell)
specifying character encoding: 7.1.3. Specifying Character Encoding (Web Design in a Nutshell)
Internet2: 1.2. What you can do with sound on the Web (Designing Web Audio)
Internet Engineering Task Force (IETF): 1.6. The Importance of Standards (Web Design in a Nutshell)
1.2.4.2. The Internet Engineering Task Force (HTML & XHTML: The Definitive Guide)
Internet Explorer: 1.1.1. The "Big Two" (Web Design in a Nutshell)
5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
Active technology and: 12.1.1.4. Writing applets (HTML & XHTML: The Definitive Guide)
BGSOUND tag: 1.3. Two easy ways to add sound (Designing Web Audio)
clipping support and: 9.1.4.2. Overflow clipping (Cascading Style Sheets: The Definitive Guide)
CSS implementations in: 1.3.2. Implementations (Cascading Style Sheets: The Definitive Guide)
margin problems and: 11.2.3. Fighting Margin Problems with @import (Cascading Style Sheets: The Definitive Guide)
margins and: 7.3.8. Margins: Known Issues (Cascading Style Sheets: The Definitive Guide)
obtaining: 1.7.1.2. Browser software (HTML & XHTML: The Definitive Guide)
support for @import: 1.4.3. The @import Directive (Cascading Style Sheets: The Definitive Guide)
Internet Explorer 5.x
:hover pseudo-element: 10.2.3.1. :hover (Cascading Style Sheets: The Definitive Guide)
inline elements, borders and: 7.4.5. Borders and Inline Elements (Cascading Style Sheets: The Definitive Guide)
Internet Information Server (IIS): 4.1.1. Popular Server Software (Web Design in a Nutshell)
8.6.2.2. Some available web authoring tools (Web Design in a Nutshell)
Internet Media Type format: 15.3.3. Encoding (Web Design in a Nutshell)
Internet News Services: 6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
Internet Service Provider (ISP): 6.2.3. HTTP streaming tutorial (Designing Web Audio)
interpreter, ActionScript (see ActionScript, interpreter)
interviews, audio: 1.2. What you can do with sound on the Web (Designing Web Audio)
interword spacing: 4.1.4.1. Word spacing (Cascading Style Sheets: The Definitive Guide)
intraframe (spatial) compression: 25.2.2. Spatial Versus Temporal Compression (Web Design in a Nutshell)
intranets: 3.2. Organizing Web Sites and Intranets (Information Architecture for the World Wide Web)
17.1.3. Strategies for Using Style Sheets Today (Web Design in a Nutshell)
1.1. The Internet, Intranets,and Extranets (HTML & XHTML: The Definitive Guide)
intranets, broadcasting to: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
inventory forms, content: 7.4.2. Wish Lists and Content Inventory Forms (Information Architecture for the World Wide Web)
inventory of web pages: 9.3. Web Page Inventory (Information Architecture for the World Wide Web)
investigative mode: 8.3. Scenarios (Information Architecture for the World Wide Web)
invocation, function: 9.1. Creating Functions (ActionScript: The Definitive Guide)
IP address: 8.6.1.3. Installing the SHOUTcast server software (Designing Web Audio)
IP (Internet Protocol): 1.2. Talking the Internet Talk (HTML & XHTML: The Definitive Guide)
addresses: 6.2.2.1. The http server (HTML & XHTML: The Definitive Guide)
IP multicasting: 6.1.2. RealServer (Designing Web Audio)
6.4.1. Broadcasting through firewalls (Designing Web Audio)
IRIX
RealNetworks: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
RealServer: 6.3.3.2. RealServer system requirements (Designing Web Audio)
remote encoding: 6.6.5.1. Remote encoding and management (Designing Web Audio)
irrational numbers: 4.3.3.4. Irrational numbers (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ISDN: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
isDown( ) (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
isFinite( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
<isindex> tag: 6.6.1. The <isindex> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
ismap attribute ( ): 11.6.3. Server-Side Imagemaps (Web Design in a Nutshell)
12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.1. Server-Side Image Maps (HTML & XHTML: The Definitive Guide)
ISO-8859-1 (Latin 1) character set: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
ISO-8859 character sets: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
ISO (International Standards Organization): 8.2. What is MP3? (Designing Web Audio)
ISP (Internet Service Provider): 6.2.3. HTTP streaming tutorial (Designing Web Audio)
isToggled( ) (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
italic: 4.5.4. The <i> Tag (HTML & XHTML: The Definitive Guide)
4.5.4. The <i> Tag (HTML & XHTML: The Definitive Guide)
8.4.3.5. The font-style property (HTML & XHTML: The Definitive Guide)
italic font style: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
italic tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
italic text: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
italic text (HTML support in text fields): 18.5.2. <I> (Italics) (ActionScript: The Definitive Guide)
iteration in loops: 1.2.3.2. Repeating tasks using loops (ActionScript: The Definitive Guide)
8.2. Loop Terminology (ActionScript: The Definitive Guide)
iterative searching/browsing: 6.2.3. Multiple Iterations Are Commonplace (Information Architecture for the World Wide Web)
iterators in loops: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.4.1. Multiple Iterators in for Loops (ActionScript: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: J

Japanese characters (Shift-JIS): 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
hexadecimal escape sequences and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
JASC Paint Shop Pro: 19.5. Tools Overview (Web Design in a Nutshell)
20.5. Creating JPEGs (Web Design in a Nutshell)
23.4.1. Applications That Include GIF Animation Tools (Web Design in a Nutshell)
Java applets: 4.1.3.4. Java Servlets and JSP (Web Design in a Nutshell)
12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.6. Java Applets (Web Design in a Nutshell)
parameters for: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.6.5.2. Adding applets with <applet> (Web Design in a Nutshell)
Java language: 12.1.1.4. Writing applets (HTML & XHTML: The Definitive Guide)
Java vs. ActionScript property equivalencies: 12.5.4.5. Comparing Java terminology (ActionScript: The Definitive Guide)
JavaScript: 5.2.5. Beatnik's Rich Music Format (RMF) (Designing Web Audio)
9.1. Flash and Shockwave basics (Designing Web Audio)
11.1. New possibilities for interactive sound (Designing Web Audio)
Beatnik Audio Engine, using with: 11.2.2. Beatnik Audio Engine (Designing Web Audio)
case-sensitivity issues and ActionScript: 14.6. Case Sensitivity (ActionScript: The Definitive Guide)
communicating with from ActionScript: 18.5.7. < A> (Anchor or Hypertext Link) (ActionScript: The Definitive Guide)
18.5.13. Executing JavaScript from HTML Links (ActionScript: The Definitive Guide)
fscommand( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getURL( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
differences among ActionScript, ECMA-262, and: D. Differences from ECMA-262 and JavaScript (ActionScript: The Definitive Guide)
how eval( ) works: 4.6.10. Executing Code in a String with eval (ActionScript: The Definitive Guide)
interactive mouse rollover sounds: 1.4. Adding sound effects (Designing Web Audio)
model for ActionScript: 0. Foreword (ActionScript: The Definitive Guide)
Netscape Navigator preferences: 11.2.1. Making Styles Work (Cascading Style Sheets: The Definitive Guide)
RealPlayer custom controls, creating: 6.4.2.1. Creating custom controls with JavaScript (Designing Web Audio)
RealVideo example: 6.4.3. Indexing RealMedia clips: creating a table of contents (Designing Web Audio)
reapplying styles: 11.2.10. Disappearing Styles (Cascading Style Sheets: The Definitive Guide)
static function scope: 15.3. Advanced Function Scope Issues (ActionScript: The Definitive Guide)
switch statement in: 7.4. Simulating the switch Statement (ActionScript: The Definitive Guide)
JavaScript language: 28. Introduction to JavaScript (Web Design in a Nutshell)
2.12. Style Sheets and JavaScript (HTML & XHTML: The Definitive Guide)
12.3. JavaScript (HTML & XHTML: The Definitive Guide)
ActionScript and: 26.2.1. ActionScript (Web Design in a Nutshell)
basics of: 28.2. JavaScript Basics (Web Design in a Nutshell)
browsers: 28.4. Handling Multiple Browsers (Web Design in a Nutshell)
compatibility of: 28.4.2. Browser Compatibility (Web Design in a Nutshell)
controlling status bar text: 11.4.5. Changing Status Bar Text with JavaScript (Web Design in a Nutshell)
event handlers: 5.2.6.16. The name, onAbort, onError, onLoad and other event attributes (HTML & XHTML: The Definitive Guide)
12.3.3. JavaScript Event Handlers (HTML & XHTML: The Definitive Guide)
12.3.3. JavaScript Event Handlers (HTML & XHTML: The Definitive Guide)
(see also event attributes)
frames and: 11.3.1.3. Frames and JavaScript (HTML & XHTML: The Definitive Guide)
frames, managing with: 28.3.3. Managing Frames (Web Design in a Nutshell)
images
changing two at once: 28.3.4.2. Changing two images at once (Web Design in a Nutshell)
rollovers, creating: 28.3.4. Image Rollovers (Web Design in a Nutshell)
attributes: 5.2.6.16. The name, onAbort, onError, onLoad and other event attributes (HTML & XHTML: The Definitive Guide)
interactive buttons: 11.6.4.2. Rollover buttons (Web Design in a Nutshell)
JavaScript pseudo-protocol: 6.2.3. The javascript URL (HTML & XHTML: The Definitive Guide)
JavaScript pseudo-URLs: 12.3.4. JavaScript URLs (HTML & XHTML: The Definitive Guide)
multiple frames with one link: 14.7.4.2. Loading two frames with JavaScript (Web Design in a Nutshell)
pop-up windows and: 2.2.2.4. Pop-up windows (Web Design in a Nutshell)
preventing loads into frames: 14.7.6. Frame-Proof Your Site (Web Design in a Nutshell)
rules in select menus: 15.6.3. Working with Menus (Web Design in a Nutshell)
tags: 12.3.1. The <script> Tag (HTML & XHTML: The Definitive Guide)
12.3.2. The <noscript> Tag (HTML & XHTML: The Definitive Guide)
status line messages and: 28.3.1. Status Line Messages (Web Design in a Nutshell)
style sheet properties: 12.4.2. JavaScript Style Sheet Properties (HTML & XHTML: The Definitive Guide)
style sheets (JSS): 2.12. Style Sheets and JavaScript (HTML & XHTML: The Definitive Guide)
12.4. JavaScript Style Sheets (HTML & XHTML: The Definitive Guide)
windows, opening new: 28.3.2. Opening a New Window (Web Design in a Nutshell)
javascript protocol (getURL( )): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
JavaScript Style Sheets (JSSS): 11.2.1. Making Styles Work (Cascading Style Sheets: The Definitive Guide)
JavaServer Pages (JSP): 4.1.3.4. Java Servlets and JSP (Web Design in a Nutshell)
join( ) (Array class): Method (ActionScript: The Definitive Guide) 11.9.4. The join( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Joint ISO/IEC Technical Committee ( JTC 1): 8.2. What is MP3? (Designing Web Audio)
Joint Photographic Experts Group (see JPEG format)
joint stereo: 8.2.1. MP3 technical details (Designing Web Audio)
8.4.2.2. Choosing your encoding options (Designing Web Audio)
journalistic background, importance of: 2.2.3.3. Journalism (Information Architecture for the World Wide Web)
JPEG (Joint Photographic Experts Group) format: 3.4.1.2. The handy JPEG (Web Design in a Nutshell)
5.1.1. Lossy compression (Designing Web Audio)
6.4.4. Creating RealFlash content (Designing Web Audio)
5.2.1.3. JPEG (HTML & XHTML: The Definitive Guide)
5.2.5. JPEG or GIF? (HTML & XHTML: The Definitive Guide)
12.2.2. Acceptable Graphics Formats (Web Design in a Nutshell)
20. JPEG Format (Web Design in a Nutshell)
compression: 20.2. JPEG Compression (Web Design in a Nutshell)
creating: 20.5. Creating JPEGs (Web Design in a Nutshell)
minimizing file sizes: 20.6. Minimizing JPEG File Size (Web Design in a Nutshell)
optimizing: 20.6.2. "Optimized" JPEGs (Web Design in a Nutshell)
PNG format vs.: 21.2.1. Not a JPEG Substitute (Web Design in a Nutshell)
Progressive JPEGs: 20.4. Progressive JPEGs (Web Design in a Nutshell)
RGB mode, creating with: 3.4.4.1. Work in RGB mode (Web Design in a Nutshell)
Jscript: 28.1. JavaScript History (Web Design in a Nutshell)
JSP (JavaServer Pages): 4.1.3.4. Java Servlets and JSP (Web Design in a Nutshell)
JSS (JavaScript style sheets): 2.12. Style Sheets and JavaScript (HTML & XHTML: The Definitive Guide)
12.4. JavaScript Style Sheets (HTML & XHTML: The Definitive Guide)
style sheet properties: 12.4.2. JavaScript Style Sheet Properties (HTML & XHTML: The Definitive Guide)
jukebox
code example: 10.2.1.1. Jukebox code: a step-by-step guide (Designing Web Audio)
MIDI: 10.2.1. Making a MIDI jukebox (Designing Web Audio)
justification (see alignment, text)
justify value (align attribute): 4.2.1.1. The align attribute (HTML & XHTML: The Definitive Guide)
justifying text: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: K

<kbd> tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
(keyboard text) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
key frames (video): 25.2.2. Spatial Versus Temporal Compression (Web Design in a Nutshell)
Key object: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
keycode properties: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
keycodes for special keys: B. Latin 1 Character Repertoire and Keycodes (ActionScript: The Definitive Guide)
keyDown clip event and: 10.11.4. keyDown (ActionScript: The Definitive Guide)
vs. keyPress button event: 10.8.8. keyPress (ActionScript: The Definitive Guide)
keyboard commands, detecting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
keyboard events: 12.3.3.3. The keyboard events (HTML & XHTML: The Definitive Guide)
button events and: 10.8. Button Events (ActionScript: The Definitive Guide)
movie clip events and: 10.9. Movie Clip Events Overview (ActionScript: The Definitive Guide)
10.11.4. keyDown (ActionScript: The Definitive Guide)
keyboard focus
identifying location of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting for specific text fields: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
keyboard input, tag for: 4.4.7. The <kbd> Tag (HTML & XHTML: The Definitive Guide)
keyboard polling: 10.11.5. keyUp (ActionScript: The Definitive Guide)
keycode values of keys: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
keyDown movie clip event: 10.11.4. keyDown (ActionScript: The Definitive Guide)
keyDown movie clip event handler: 10.11.4. keyDown (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
updateAfterEvent( ) and: 10.14. Refreshing the Screen with updateAfterEvent (ActionScript: The Definitive Guide)
Keyfax collection: 10.3.4.1. Creating your own MIDI file (Designing Web Audio)
keyframes, adding: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
Key.getAscii( ): 10.11.4. keyDown (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Key.getCode( ): 10.11.4. keyDown (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Key.isDown( ): 10.11.4. keyDown (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
capturing shortcut-key-style combinations: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
Key.isToggled( ): 10.11.4. keyDown (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
keyPress button event: 10.8.8. keyPress (ActionScript: The Definitive Guide)
vs. Key object: 10.8.8. keyPress (ActionScript: The Definitive Guide)
keyUp movie clip event: 10.11.5. keyUp (ActionScript: The Definitive Guide)
keyUp movie clip event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
updateAfterEvent( ) and: 10.14. Refreshing the Screen with updateAfterEvent (ActionScript: The Definitive Guide)
keyword property values: 8.4.1.1. Keyword property values (HTML & XHTML: The Definitive Guide)
keywords: 6.2. Statement Syntax (ActionScript: The Definitive Guide)
2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
for background positioning: 6.2.3.1. Keywords (Cascading Style Sheets: The Definitive Guide)
case-sensitivity issues for: 14.6. Case Sensitivity (ActionScript: The Definitive Guide)
19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
multiple: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
number: 5.2.1. How Weights Work (Cascading Style Sheets: The Definitive Guide)
reserved: 14.4. Reserved Words (ActionScript: The Definitive Guide)
transparent: 6.1.2. Background Color (Cascading Style Sheets: The Definitive Guide)
keywords for documents: 6.8.1.1. The name attribute (HTML & XHTML: The Definitive Guide)
keywords for searching: 5.3.2. Labels as Indexing Terms (Information Architecture for the World Wide Web)
keywords value ( ): 9.4.2.1. Meta tags for search engines (Web Design in a Nutshell)
King, Andrew: 23.6. Optimizing Animated GIFs (Web Design in a Nutshell)
King, B. B.: 4.2.3. Pitch shift (Designing Web Audio)
known-item searching: 3.2.1.1. Exact organization schemes (Information Architecture for the World Wide Web)
6.2.1.1. Known-item searching (Information Architecture for the World Wide Web)
kursiv text: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: L

L1 Maximizer
peak limiter plug-in: 4.3.2. Compression: reducing sound peaks and spikes (Designing Web Audio)
Lab colors: 3.3.1.1. RGB color (Web Design in a Nutshell)
label attribute: 15.1. Summary of Form Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
9.8.2.3. The label attribute (HTML & XHTML: The Definitive Guide)
9.8.3.1. The label attribute (HTML & XHTML: The Definitive Guide)
<label> tags: 9.10.1. The <label> Tag (HTML & XHTML: The Definitive Guide)
labeling form elements: 9.10.1. The <label> Tag (HTML & XHTML: The Definitive Guide)
labels: 5. Labeling Systems (Information Architecture for the World Wide Web)
designing effective systems for: 5.4. Creating Effective Labeling Systems (Information Architecture for the World Wide Web)
fine-tuning system of: 5.5. Fine-Tuning the Labeling System (Information Architecture for the World Wide Web)
as headings: 5.3.4. Labels as Headings (Information Architecture for the World Wide Web)
HFHS case study: 10.2.3. Labeling Systems for Sub-Site Record Pages (Information Architecture for the World Wide Web)
iconic systems of: 5.3.5. Iconic Labeling Systems (Information Architecture for the World Wide Web)
5.6.2. When You Just Have To Use Icons (Information Architecture for the World Wide Web)
importance of: 5.1.1. Squandering Attention Spans (Information Architecture for the World Wide Web)
as indexing terms: 5.3.2. Labels as Indexing Terms (Information Architecture for the World Wide Web)
for links: 5.3.3. Link Labels (Information Architecture for the World Wide Web)
within navigation systems: 5.3.1. Labels Within Navigation Systems (Information Architecture for the World Wide Web)
non-representational systems for: 5.6. Non-Representational Labeling Systems (Information Architecture for the World Wide Web)
planning for: 5.2. Labeling Systems, Not Labels (Information Architecture for the World Wide Web)
scope notes: 5.3.1. Labels Within Navigation Systems (Information Architecture for the World Wide Web)
scope of: 5.5.2. Labeling System Scope and Size (Information Architecture for the World Wide Web)
self-centered: 5.1.3. Self-Centered Labeling (Information Architecture for the World Wide Web)
sources for text of: 5.4.1. Sources for Labeling Systems (Information Architecture for the World Wide Web)
textual labels: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
labels, frame (see frames, frame labels)
LAN (local area network), broadcasting to: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
lang attribute: 7.2.1. The lang Attribute (Web Design in a Nutshell)
:lang pseudo-class: 10.2.3.3. :lang (Cascading Style Sheets: The Definitive Guide)
language attribute: B. List of Attributes (Web Design in a Nutshell)
language attribute ( ): 12.3.1.1. The language and type attributes (HTML & XHTML: The Definitive Guide)
language reference, ActionScript: 20. ActionScript Language Reference (ActionScript: The Definitive Guide)
language tags (HTML 4.0): 7.2. HTML 4.01 Language Features (Web Design in a Nutshell)
languages
computer, defining with metalanguages: 15.1. Languages and Metalanguages (HTML & XHTML: The Definitive Guide)
pseudo-classes for: 8.3.4.3. Nesting and language pseudo-classes (HTML & XHTML: The Definitive Guide)
last-in-first-out (LIFO) stacks: method (ActionScript: The Definitive Guide) 11.7.3.1. The push( )
LAST_MODIFIED environment variable: 18.7. Include Variables (Web Design in a Nutshell)
lastChild property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
lastIndexOf( ) (String class): Function (ActionScript: The Definitive Guide) 4.6.5.4. The lastIndexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Latin 1 characters: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
code points for: 4.5.2.3. Unicode-style escape sequences (ActionScript: The Definitive Guide)
B. Latin 1 Character Repertoire and Keycodes (ActionScript: The Definitive Guide)
retrieving: function (ActionScript: The Definitive Guide) 4.6.9.2. The charCodeAt( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sorting arrays: Method (ActionScript: The Definitive Guide) 11.9.2. The sort( )
creating strings from code points: function (ActionScript: The Definitive Guide) 4.6.9.1. The fromCharCode( )
generating strings from code points: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hexadecimal escape sequences and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
keycodes vs. code points: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
lavaliere clip-on microphones: 3.1.1.4. Lavaliere clip-on microphones (Designing Web Audio)
layer structure for Flash movies: 1.3.2. Building the Layer Structure (ActionScript: The Definitive Guide)
13.4.1. The Internal Layer Stack (ActionScript: The Definitive Guide)
layering content: 1.2. What you can do with sound on the Web (Designing Web Audio)
layers: 14.3. Layers (HTML & XHTML: The Definitive Guide)
alignment: 14.3.1.2. The left and top attributes (HTML & XHTML: The Definitive Guide)
14.3.2.1. The top and left attributes (HTML & XHTML: The Definitive Guide)
in DHTML: 29.4. Creating Layers (Web Design in a Nutshell)
for 4.0 browsers: 29.6.1. Layers in the 4.0 Browsers (Web Design in a Nutshell)
in Flash: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
tags: 14.3.1. The <layer> Tag (HTML & XHTML: The Definitive Guide)
14.3.2. The <ilayer> Tag (HTML & XHTML: The Definitive Guide)
visibility of: 14.3.1.5. The visibility attribute (HTML & XHTML: The Definitive Guide)
layers, checking for hidden: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
layout (see page layout)
1.5.1. Content Versus Appearance (HTML & XHTML: The Definitive Guide)
element (SMIL): 27.4.2. Document Structure (Web Design in a Nutshell)
27.4.2. Document Structure (Web Design in a Nutshell)
27.4.5.1. Time containers (Web Design in a Nutshell)
27.4.5.1. Time containers (Web Design in a Nutshell)
27.4.5.1. Time containers (Web Design in a Nutshell)
layout tag, SMIL: 7.2.1. SMIL syntax (Designing Web Audio)
layout techniques with HTML: 10.7. Text Layout Techniques with HTML (Web Design in a Nutshell)
le (less-than-or-equal-to) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
leading: 4.1.2. The Height of Lines (Cascading Style Sheets: The Definitive Guide)
half-leading: 8.4.2.1. Generating a line box (Cascading Style Sheets: The Definitive Guide)
Leave As Is disposal method: 23.5.3. Disposal Methods (Web Design in a Nutshell)
left alignment (see alignment)
left alignment (text): 10.7.4. Right and Left Alignment (Web Design in a Nutshell)
left-associative operators: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
left attribute: 14.3.1.2. The left and top attributes (HTML & XHTML: The Definitive Guide)
14.3.2.1. The top and left attributes (HTML & XHTML: The Definitive Guide)
left property: 9.1.2. Side Offsets (Cascading Style Sheets: The Definitive Guide)
left property (CSS): 17.6.1. The position Property (Web Design in a Nutshell)
LEFT property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
:left pseudo-class: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes (Cascading Style Sheets: The Definitive Guide)
10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
left shift assignment (<<=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
left shift (<<) operator: 15.2.5.3. Left shift (ActionScript: The Definitive Guide)
left-to-right directionality: 7.2.2. Directionality (Web Design in a Nutshell)
left value
align attribute: 12.3.5. Horizontal Alignment (Web Design in a Nutshell)
clear attribute: 12.3.5.2. Stopping text wrap (Web Design in a Nutshell)
leftmargin attribute ( ): 9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.3.3. Adjusting Browser Margins (Web Design in a Nutshell)
5.3.1.6. The leftmargin attribute (HTML & XHTML: The Definitive Guide)
legal issues, MP3: 8.7. Legalities of MP3 (Designing Web Audio)
Lempel-Zev-Welch (LZW)
compression: 19.3. GIF Compression (Web Design in a Nutshell)
interframe optimization: 23.6.2. Optimizing Methods (Web Design in a Nutshell)
length (see size)
5.1.1.3. The width attribute (HTML & XHTML: The Definitive Guide)
ambient loops compared to music loops: 1.7.3.5. Building seamless music loops (Designing Web Audio)
length( ) (Flash 4 function): 4.6.5.1. The length property (ActionScript: The Definitive Guide)
length property
arguments object: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Array class: 11.5. Determining the Size of an Array (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
deleting array elements: 11.8.2. Removing Elements with the length Property (ActionScript: The Definitive Guide)
extending arrays without assigning values to elements: 11.7.2. Adding New Elements with the length Property (ActionScript: The Definitive Guide)
String class: 4.6.5.1. The length property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
length property values: 8.4.1.2. Length property values (HTML & XHTML: The Definitive Guide)
length units: 3.2. Length Units (Cascading Style Sheets: The Definitive Guide)
font sizes, setting with: 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
length values
for background positioning: 6.2.3.3. Length values (Cascading Style Sheets: The Definitive Guide)
margins: 7.3.1. Length Values and Margins (Cascading Style Sheets: The Definitive Guide)
< (less-than sign): 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
less-than (lt) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
less-than-or-equal-to (le) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
less-than-or-equal-to (<=) operator (Flash 5): 4.6.2.2. Character order and alphabetic comparisons (ActionScript: The Definitive Guide)
5.5.3. The Less-Than-or-Equal-to Operator (ActionScript: The Definitive Guide)
less-than sign (<): 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
<! tags: 16.3.7. Handling Special Characters (HTML & XHTML: The Definitive Guide)
letterspacing: 4.1.4.2. Letterspacing (Cascading Style Sheets: The Definitive Guide)
letter-spacing property: 4.1.4.2. Letterspacing (Cascading Style Sheets: The Definitive Guide)
8.4.5.1. The letter-spacing property (HTML & XHTML: The Definitive Guide)
lettering (see text)
_leveln global property: 2.5.6.2. Accessing variables on different document levels (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
document stacks: 13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
13.5.4.2. Referencing other documents in the Player using _leveln (ActionScript: The Definitive Guide)
referencing documents in Player: 13.5.4.2. Referencing other documents in the Player using _leveln (ActionScript: The Definitive Guide)
levels (see document levels)
lexical structure of ActionScript: 14. Lexical Structure (ActionScript: The Definitive Guide)
(list) tag: 10.1.4. Lists (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
unordered lists and: Lists (Web Design in a Nutshell) 10.6.1. Unordered (Bulleted)
librarians: 11.2.11. Serving CSS Up Correctly (Cascading Style Sheets: The Definitive Guide)
asking for labeling advice: 5.4.1.5. Labels from users and experts (Information Architecture for the World Wide Web)
reference interviews: 6.4. In an Ideal World: The Reference Interview (Information Architecture for the World Wide Web)
skills of: 2.2.3.2. Information and library science (Information Architecture for the World Wide Web)
libraries, sound effects: 1.7.3. Designing music loops (Designing Web Audio)
Library
creating clip instances manually: 13.3.2.1. Manually creating instances (ActionScript: The Definitive Guide)
creating new instances from: 13.3.2.3. Creating instances with attachMovie( ) (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
library in Flash: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
license agreements, webcasting: 8.6.2.2. Complying with copyright laws (Designing Web Audio)
LIFO (last-in-first-out) stacks: method (ActionScript: The Definitive Guide) 11.7.3.1. The push( )
lighter text: 5.2.3. Lightening Weights (Cascading Style Sheets: The Definitive Guide)
limiters: 3.1.4. Compressors/limiters (Designing Web Audio)
line box: 8.4.2. Inline Formatting (Cascading Style Sheets: The Definitive Guide)
generating: 8.4.2.1. Generating a line box (Cascading Style Sheets: The Definitive Guide)
line-breaking, margins and: 7.3.7. Margins and Inline Elements (Cascading Style Sheets: The Definitive Guide)
line breaks: 2.6.2.1. Divisions, paragraphs, and line breaks (HTML & XHTML: The Definitive Guide)
4.7.1. The <br> Tag (HTML & XHTML: The Definitive Guide)
4.7.5. The <pre> Tag (HTML & XHTML: The Definitive Guide)
14.1.2. Mimicking the <spacer> Tag (HTML & XHTML: The Definitive Guide)
in ActionScript code: 14.1. Whitespace (ActionScript: The Definitive Guide)
allowing with: 4.7.3. The <wbr> Tag (HTML & XHTML: The Definitive Guide)
handling: 10.2.1. Paragraphs and Line Breaks (Web Design in a Nutshell)
17.6.4. Overflow (Web Design in a Nutshell)
HTML support in text fields: 18.5.6. <BR> (Line Break) (ActionScript: The Definitive Guide)
nowrap attribute and: 4.1.1.2. The nowrap attribute (HTML & XHTML: The Definitive Guide)
preventing: 10.7.2. Preventing Line Breaks (Web Design in a Nutshell)
in strings: 4.5.2.2. Escape sequences (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
suppressing with: 4.7.2. The <nobr> Tag (HTML & XHTML: The Definitive Guide)
vertical: 14.1.1.2. Creating vertical space (HTML & XHTML: The Definitive Guide)
Line Display options for text fields: 18.3.1. Line Display (ActionScript: The Definitive Guide)
line height: 4.1.2. The Height of Lines (Cascading Style Sheets: The Definitive Guide)
8.4.2. Inline Formatting (Cascading Style Sheets: The Definitive Guide)
in font property: 5.5.1. Adding the Line Height (Cascading Style Sheets: The Definitive Guide)
images and: 8.4.4. Inline Replaced Elements (Cascading Style Sheets: The Definitive Guide)
managing for inline elements: 8.4.3. Managing the Line Height of Inline Elements (Cascading Style Sheets: The Definitive Guide)
scaling: 8.4.3.1. Scaling the line heights (Cascading Style Sheets: The Definitive Guide)
line-height property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
line layout: 8.4.1. Line Layout (Cascading Style Sheets: The Definitive Guide)
line-through text style: 4.5.7. The <strike> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
8.4.5.4. The text-decoration property (HTML & XHTML: The Definitive Guide)
line-through value: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
linear playback: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
lines of text (see text)
Lingo: 9.2. Introduction to Flash (Designing Web Audio)
9.3. Introduction to Shockwave (Designing Web Audio)
9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
arrays in ActionScript and C vs.: 11.2.3. Array Size (ActionScript: The Definitive Guide)
communicating with: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Lingo language, Shockwave and: 26.7.1. Advantages (Web Design in a Nutshell)
lingo protocol (getURL( )): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Lingo script: 1.7.3.1. Sound loops versus repetitive sound effects (Designing Web Audio)
5.2.4. Flash and Director Shockwave (Designing Web Audio)
LINK attribute: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
link attribute ( ): 9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.3.1. Colors (Web Design in a Nutshell)
11.4.1. Setting Colors in <body> (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
5.3.1.5. The link, vlink, and alink attributes (HTML & XHTML: The Definitive Guide)
LINK element: 1.4.1. The LINK Tag (Cascading Style Sheets: The Definitive Guide)
:link pseudo-class: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
<link> tag: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
12.4.1.1. External, document-level, and inline JSS (HTML & XHTML: The Definitive Guide)
web browser limitations: 8.1.6. Limitations of Current Browsers (HTML & XHTML: The Definitive Guide)
linkage identifiers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
linked clips: 13.2.6. Linked Clips (ActionScript: The Definitive Guide)
linked external style sheets: 8.1.3.1. Linked external style sheets (HTML & XHTML: The Definitive Guide)
8.6.2.1. The pros and cons of external styles (HTML & XHTML: The Definitive Guide)
imported vs.: 8.1.5. Linked Versus Imported Style Sheets (HTML & XHTML: The Definitive Guide)
linking style sheets: 1.4.1. The LINK Tag (Cascading Style Sheets: The Definitive Guide)
links (see hyperlinks)
11. Creating Links (Web Design in a Nutshell)
2.7. Hyperlinks (HTML & XHTML: The Definitive Guide)
anchors and hyperlinks: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
audio files: 24.7.1. A Simple Link (Web Design in a Nutshell)
(Web Design in a Nutshell) 24.7.3.1. Linking to RealMedia (external player)
linking document fragments: 11.3. Linking Within a Document (Web Design in a Nutshell)
background images, placing in: 6.2.1. Background Images (Cascading Style Sheets: The Definitive Guide)
color, setting: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
colors for hyperlinks: 9.3.1. Colors (Web Design in a Nutshell)
11.4. Affecting the Appearance of Links (Web Design in a Nutshell)
controlling status bar text: 11.4.5. Changing Status Bar Text with JavaScript (Web Design in a Nutshell)
to external style sheets: 17.2.2.3. External style sheets (Web Design in a Nutshell)
hyperlinked graphics: 11.2. Simple Hypertext Links (Web Design in a Nutshell)
12.3.1. Linked Graphics (Web Design in a Nutshell)
captions: 6.1.3. The Techniques (Web Design in a Nutshell)
imagemaps: 11.6. Imagemaps (Web Design in a Nutshell)
client-side: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
multipart images in tables: 13.8. Multipart Images in Tables (Web Design in a Nutshell)
text alternatives: 6.1.3. The Techniques (Web Design in a Nutshell)
11.6.4.1. Providing complete alternative text (Web Design in a Nutshell)
JavaScript rollovers: 11.6.4.2. Rollover buttons (Web Design in a Nutshell)
mailto: 11.7.1. Mail Link (mailto:) (Web Design in a Nutshell)
miscellanous: 11.7.3. Other Links (Web Design in a Nutshell)
removing underlining from: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
targeting frames: 14.5. Targeting Frames (Web Design in a Nutshell)
multiple from one link: 14.7.4. Loading Two Frames from One Link (Web Design in a Nutshell)
targeting other windows: 11.5. Targeting Windows (Web Design in a Nutshell)
video files and: 25.5.1. A Simple Link (Web Design in a Nutshell)
WML: 32.3.3. Adding Links (Web Design in a Nutshell)
Linux: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
8.3.4. Skins (Designing Web Audio)
multiple sound cards: 6.5. Live broadcasting with RealAudio (Designing Web Audio)
RealServer: 6.3.3.2. RealServer system requirements (Designing Web Audio)
remote encoding: 6.6.5.1. Remote encoding and management (Designing Web Audio)
Liquid Audio: 5.2. Streaming media formats (Designing Web Audio)
5.2.7. Liquid Audio (Designing Web Audio)
8.7.1. Is MP3 legal? (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
capabilities overview: B.5. Liquid Audio (Designing Web Audio)
Genuine Music Mark (GMM): 8.8. MP3 resources (Designing Web Audio)
Liquid Music Network (LMN): 8.8. MP3 resources (Designing Web Audio)
Liquid Server: 8.8. MP3 resources (Designing Web Audio)
Liquifier encoding tool: 8.8. MP3 resources (Designing Web Audio)
Liquifier Pro: 8.8. MP3 resources (Designing Web Audio)
in Winamp and RealPlayer: 8.8. MP3 resources (Designing Web Audio)
Liquid Express: 5.2.7. Liquid Audio (Designing Web Audio)
Liquid Music System (LiquidAudio): 24.5.7. Liquid Audio (Web Design in a Nutshell)
Liquid Player: 5.2.7. Liquid Audio (Designing Web Audio)
Liquid Server: 5.2.7. Liquid Audio (Designing Web Audio)
Liquid Tracks: 5.2.7. Liquid Audio (Designing Web Audio)
Liquifier Pro: 5.2.7. Liquid Audio (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
list-item elements: 2.9. Classification of Elements (Cascading Style Sheets: The Definitive Guide)
list items: 7.7. Lists (Cascading Style Sheets: The Definitive Guide)
8.2.3. List Items (Cascading Style Sheets: The Definitive Guide)
horizontal formatting and: 8.2.2. Horizontal Formatting (Cascading Style Sheets: The Definitive Guide)
list numbering (automatic) in CSS2 for multilingualism: 7.3. Style Sheets Language Features (Web Design in a Nutshell)
List Objects command (debugging tool): 19.1.3. The List Objects Command (ActionScript: The Definitive Guide)
list-style-image property (CSS): 17.5.4. Classification Properties (Web Design in a Nutshell)
list-style-position property: 7.7.3. List Item Positions (Cascading Style Sheets: The Definitive Guide)
8.4.7.2. The list-style-position property (HTML & XHTML: The Definitive Guide)
list-style property (CSS): 17.5.4. Classification Properties (Web Design in a Nutshell)
list-style-type (CSS2 value): 17.7.6. New Values for Existing Properties (Web Design in a Nutshell)
multilingualism: 7.3. Style Sheets Language Features (Web Design in a Nutshell)
list-style-type property (CSS): 17.5.4. Classification Properties (Web Design in a Nutshell)
List Variables command (debugging tool): 19.1.2. The List Variables Command (ActionScript: The Definitive Guide)
<listing> tags: 4.7.7. The <listing> Tag (Obsolete) (HTML & XHTML: The Definitive Guide)
lists: 7.7. Lists (Cascading Style Sheets: The Definitive Guide)
7.7. Lists (Cascading Style Sheets: The Definitive Guide)
10.1.4. Lists (Web Design in a Nutshell)
10.6. Lists (Web Design in a Nutshell)
2.9.1. Unordered, Ordered, and Definition Lists (HTML & XHTML: The Definitive Guide)
7. Formatted Lists (HTML & XHTML: The Definitive Guide)
bullets: 10.6.1.1. Changing the bullet shape (Web Design in a Nutshell)
custom list item markers: 17.3. Custom Bullets (HTML & XHTML: The Definitive Guide)
definition: 10.6.3. Definition Lists (Web Design in a Nutshell)
definition lists: 7.5. Definition Lists (HTML & XHTML: The Definitive Guide)
directory lists: 7.7. Directory Lists (HTML & XHTML: The Definitive Guide)
of hyperlinks: 6.4.1. Lists of Links (HTML & XHTML: The Definitive Guide)
items of: 7.3.1. Changing the Style and Sequence of Individual List Items (HTML & XHTML: The Definitive Guide)
list items: 8.4.8.1. The display property (HTML & XHTML: The Definitive Guide)
menu lists: 7.8. Menu Lists (HTML & XHTML: The Definitive Guide)
menus (see menus in forms)
nesting: 10.6.4. Nesting Lists (Web Design in a Nutshell)
7.4. Nesting Lists (HTML & XHTML: The Definitive Guide)
ordered (numbered): 7.4.2. Nested Ordered Lists (HTML & XHTML: The Definitive Guide)
unordered (bulleted): 7.4.1. Nested Unordered Lists (HTML & XHTML: The Definitive Guide)
ordered (numbered): 7.2. Ordered Lists (HTML & XHTML: The Definitive Guide)
position of: 7.7.3. List Item Positions (Cascading Style Sheets: The Definitive Guide)
selection lists (forms): 9.8.1. The <select> Tag (HTML & XHTML: The Definitive Guide)
shorthand property: 7.7.4. List Styles In Shorthand (Cascading Style Sheets: The Definitive Guide)
style properties for: 8.4.7. List Properties (HTML & XHTML: The Definitive Guide)
using effectively: 8.4.7.5. Using list properties effectively (HTML & XHTML: The Definitive Guide)
style sheet properties for: 17.5.4. Classification Properties (Web Design in a Nutshell)
types of: 7.7.1. Types of Lists (Cascading Style Sheets: The Definitive Guide)
unordered: Lists (Web Design in a Nutshell) 10.6.1. Unordered (Bulleted)
unordered (bulleted): 7.1. Unordered Lists (HTML & XHTML: The Definitive Guide)
using appropriately: 7.6. Appropriate List Usage (HTML & XHTML: The Definitive Guide)
literals: 1.2.2. Expressions (ActionScript: The Definitive Guide)
array: 11.3.2. Array Literals (ActionScript: The Definitive Guide)
floating-point: 4.3.2. Floating-Point Literals (ActionScript: The Definitive Guide)
function: 9.5. Function Literals (ActionScript: The Definitive Guide)
adding methods to classes: 12.5.2.3. Assigning methods to objects of a class (ActionScript: The Definitive Guide)
implementing methods with: 12.4. Methods (ActionScript: The Definitive Guide)
integer: 4.3.1. Integer Literals (ActionScript: The Definitive Guide)
numeric: 4.3. Numeric Literals (ActionScript: The Definitive Guide)
object: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
string: 4.5.2. String Literals (ActionScript: The Definitive Guide)
vs. variables: 3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
live broadcasts
archiving: 6.6.3. Archiving live broadcasts (Designing Web Audio)
case study: 6.6. Case study: N2K streams live M[DBLENTITY:ouml]tley Cr[DBLENTITY:uuml]e concert (Designing Web Audio)
high-quality source signals: 6.6.1. Capturing high-quality live sound (Designing Web Audio)
RealAudio: 6.5. Live broadcasting with RealAudio (Designing Web Audio)
RealServer: 6.3.3. Broadcasting audio with the RealServer (Designing Web Audio)
splitting: 6.6.5. Splitting a live broadcast for more efficient streaming (Designing Web Audio)
live concerts: 3.2.2. Field recording (Designing Web Audio)
dynamic microphones: 3.1.1.2. Dynamic microphones (Designing Web Audio)
live encoding: 6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
'live space' in browsers: 2.1.2. "Live" Space in the Browser Window (Web Design in a Nutshell)
live splitting: 6.1.2. RealServer (Designing Web Audio)
LiveAudio plug-in: 24.4. Streaming Audio (Web Design in a Nutshell)
LiveMotion: 9.2. Introduction to Flash (Designing Web Audio)
ll property (transformobject): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
LN2 property (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
load balancing: 6.4.7. Load balancing (Designing Web Audio)
load movie clip event: 10.10.2. load (ActionScript: The Definitive Guide)
load movie clip event handler: 10.10.2. load (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
order of execution: 10.12. Order of Execution (ActionScript: The Definitive Guide)
load( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
loaded property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.status property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
loading delay (see performance)
loadMovie( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
target parameter and: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
loading external SWF files into Player: 13.3.4. Importing External Movies (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using data event handlers: 10.10.4.2. Using a data event handler with loadMovie( ) (ActionScript: The Definitive Guide)
load/unload movie clip events: 10.10.3. unload (ActionScript: The Definitive Guide)
using with attachMovie( ): 13.3.4. Importing External Movies (ActionScript: The Definitive Guide)
loadMovieNum( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
loadVariables( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
security restrictions for: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sending form-based data to server applications: 17.2.2. Sending Data to the Server (ActionScript: The Definitive Guide)
target parameter and: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using data event handlers: 10.10.4.1. Using a data event handler with loadVariables( ) (ActionScript: The Definitive Guide)
loadVariablesNum( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
local area network (LAN): 6.4.1. Broadcasting through firewalls (Designing Web Audio)
Local Director: 6.4.7. Load balancing (Designing Web Audio)
local navigation systems: 4.4.3. Local Navigation Systems (Information Architecture for the World Wide Web)
local scope of functions: 9.7. Function Scope (ActionScript: The Definitive Guide)
local variables: 2.5.4. Variable Accessibility (Scope) (ActionScript: The Definitive Guide)
2.5.8. Local Variables (ActionScript: The Definitive Guide)
creating: 9.7.2. Local Variables (ActionScript: The Definitive Guide)
nonlocal variables and: 2.5.8. Local Variables (ActionScript: The Definitive Guide)
localToGlobal( ) (MovieClip class): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
location, organizing by: 3.2.1.1.3. Geographical (Information Architecture for the World Wide Web)
log( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
logarithm: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
(see also natural logarithm)
of e (base-2): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
LOG10E property (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Logic Audio: 11.4. Using the Beatnik Editor (Designing Web Audio)
logic in Flash movies: 1.2.3.1. Making choices using conditionals (ActionScript: The Definitive Guide)
logical AND (&&) operator (Flash 5): 5.7.2. Logical AND (ActionScript: The Definitive Guide)
logical AND (and) operator (Flash 4): 14.4. Reserved Words (ActionScript: The Definitive Guide)
logical expressions and data values: 5.7.4. Logical Expressions and Data Values (ActionScript: The Definitive Guide)
logical inline type style: 10.3. Inline Type Styles (Web Design in a Nutshell)
logical NOT (!) operator (Flash 5): 5.7.3. Logical NOT (ActionScript: The Definitive Guide)
logical NOT (not) operator (Flash 4): 14.4. Reserved Words (ActionScript: The Definitive Guide)
logical operators: 5.7. The Logical Operators (ActionScript: The Definitive Guide)
vs. bitwise operators: 5.11.1. The Bitwise Operators (ActionScript: The Definitive Guide)
logical OR (||) operator (Flash 5): 5.7.1. Logical OR (ActionScript: The Definitive Guide)
logical OR (or) operator (Flash 4): 14.4. Reserved Words (ActionScript: The Definitive Guide)
long keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
longdesc attribute: B. List of Attributes (Web Design in a Nutshell)
5.2.6.3. The alt and longdesc attributes (HTML & XHTML: The Definitive Guide)
11.4.1.7. The title and longdesc attributes (HTML & XHTML: The Definitive Guide)
2look4 (MP3 search engine): 8.5.1. Creating your own MP3 site (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
loop attribute: 5.2.7.3. The loop attribute (HTML & XHTML: The Definitive Guide)
5.4.1.2. The loop attribute (HTML & XHTML: The Definitive Guide)
5.5.1.2. The behavior, direction, and loop attributes (HTML & XHTML: The Definitive Guide)
loop body: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
loop controls: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
loop headers: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
looping
audio: 5.4.1.2. The loop attribute (HTML & XHTML: The Definitive Guide)
marquee text: 5.5.1.2. The behavior, direction, and loop attributes (HTML & XHTML: The Definitive Guide)
video: 5.2.7.3. The loop attribute (HTML & XHTML: The Definitive Guide)
looping animation: 23.3. Browser Support (Web Design in a Nutshell)
23.5.5. Other Options (Web Design in a Nutshell)
loops: 6.3.1. Loops and Conditionals (ActionScript: The Definitive Guide)
8. Loop Statements (ActionScript: The Definitive Guide)
1.7.1.1. Capturing narration (Designing Web Audio)
(see also ambient sound loops)
avoiding monotony: 1.7.1. Easy-to-use narration (Designing Web Audio)
break statement in: 8.6.1. The break Statement (ActionScript: The Definitive Guide)
clip events (see movie clip events, loops)
continue statement in: 8.6.2. The continue Statement (ActionScript: The Definitive Guide)
counters in: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.4.1. Multiple Iterators in for Loops (ActionScript: The Definitive Guide)
event: 1.2.6. The Event-Based Execution Model (ActionScript: The Definitive Guide)
index variables in: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.4.1. Multiple Iterators in for Loops (ActionScript: The Definitive Guide)
infinite: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.2. Loop Terminology (ActionScript: The Definitive Guide)
avoiding: 8.6.3. Maximum Number of Iterations (ActionScript: The Definitive Guide)
initialization: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.2. Loop Terminology (ActionScript: The Definitive Guide)
iteration in: 1.2.3.2. Repeating tasks using loops (ActionScript: The Definitive Guide)
8.2. Loop Terminology (ActionScript: The Definitive Guide)
iterators in: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.4.1. Multiple Iterators in for Loops (ActionScript: The Definitive Guide)
nested: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
rhythm: 1.7.3.3. Optimum loop length (Designing Web Audio)
soundtracks: 1.3.2. Adding a looping music soundtrack (Designing Web Audio)
stopping prematurely: 8.6. Stopping a Loop Prematurely (ActionScript: The Definitive Guide)
terminology: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
test expressions in: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
timeline: 8.7. Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
creating process clips: 13.2.4. Process Clips (ActionScript: The Definitive Guide)
frame rate effect on: 8.7.3. Frame Rate's Effect on Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
update statements in: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.2. Loop Terminology (ActionScript: The Definitive Guide)
lossless compression: 5.1.1. Lossy compression (Designing Web Audio)
19.3. GIF Compression (Web Design in a Nutshell)
19.8.3.3. Weighted lossiness (Web Design in a Nutshell)
21.5. PNG Compression (Web Design in a Nutshell)
25.2.1. Lossless Versus Lossy Compression (Web Design in a Nutshell)
GIFs: 19.8.2.5. Lossy GIFs (Web Design in a Nutshell)
lossy compression: 5.1.1. Lossy compression (Designing Web Audio)
20.2. JPEG Compression (Web Design in a Nutshell)
25.2.1. Lossless Versus Lossy Compression (Web Design in a Nutshell)
loudness: 2.1. The science of sound (Designing Web Audio)
dynamic range: 2.1.1. Loudness (Designing Web Audio)
low-end frequencies: 6.3. Professional webcasting (Designing Web Audio)
low-frequency sound: 1.9.1. Selecting sounds (Designing Web Audio)
low-pass filters: 4.3.4.2. Using low-pass and high-pass filters (Designing Web Audio)
6.3. Professional webcasting (Designing Web Audio)
lowercase text: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
lowercase versions of strings, creating: function (ActionScript: The Definitive Guide) 4.6.8.2. The toLowerCase( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
lowest common denominator design: 1.3.1. Lowest Common Denominator Design (Web Design in a Nutshell)
lowsrc attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.3.6.3. The lowsrc trick (Web Design in a Nutshell)
5.2.6.2. The lowsrc attribute (HTML & XHTML: The Definitive Guide)
lr property (transformobject): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
< (less than) character entity for XML: 30.3.1. Well-Formed XML (Web Design in a Nutshell)
lt (less-than) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
<= less-than-or-equal-to operator (Flash 5): 4.6.2.2. Character order and alphabetic comparisons (ActionScript: The Definitive Guide)
5.5.3. The Less-Than-or-Equal-to Operator (ActionScript: The Definitive Guide)
<<= bitwise left shift assignment operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
<< left shift operator: 15.2.5.3. Left shift (ActionScript: The Definitive Guide)
ltr value (dir attribute): 7.2.2. Directionality (Web Design in a Nutshell)
Lycos: 8.8. MP3 resources (Designing Web Audio)
Lynx (see text-only browsers)
Lynx browser: 1.1.2.5. Lynx (Web Design in a Nutshell)
LZW (Lempel-Zev-Welch)
compression: 19.3. GIF Compression (Web Design in a Nutshell)
interframe optimization: 23.6.2. Optimizing Methods (Web Design in a Nutshell)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: M

Mac audio tools: 24.3.2.2. Mac audio tools (Web Design in a Nutshell)
Mac OS X Server: 5.2.3. QuickTime (Designing Web Audio)
Macast: 8.8. MP3 resources (Designing Web Audio)
Macintosh
batch-encoding audio files, parameters for: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
computer music programs for (web site): A.4.1. Digital audio software (Designing Web Audio)
RealServer system requirements: 6.3.3.2. RealServer system requirements (Designing Web Audio)
Macintosh computers
Internet Explorer 4.0 on: 1.1.2.1. Internet Explorer on the Macintosh (Web Design in a Nutshell)
MacBinary option (Fetch): 4.4.1. The FTP Process (Web Design in a Nutshell)
OpenType technology and: 3.2.4.2. OpenType (for Internet Explorer) (Web Design in a Nutshell)
System OS8 palettes: 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
Macromedia
Director: 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
26.7. Shockwave for Director (Web Design in a Nutshell)
Dreamweaver (see Dreamweaver)
Fireworks (see Fireworks)
Flash (see Flash)
Freehand: 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
Shockwave: and Shockwave (.dcr) (Web Design in a Nutshell) 24.5.8. Flash (.swf)
Macromedia Dreamweaver: 6.4.2.3. Embedding custom player controls with RealPublisher (Designing Web Audio)
Macromedia Flash
RealFlash, streaming animations in RealSystem G2: 7.5. RealFlash (Designing Web Audio)
Macromedia Generator resources: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
mail (see email)
mailto links: 11.7.1. Mail Link (mailto:) (Web Design in a Nutshell)
mailto URLs: 6.2.8. The mailto URL (HTML & XHTML: The Definitive Guide)
9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
defining mail header fields: 6.2.8.1. Defining mail header fields (HTML & XHTML: The Definitive Guide)
form data via: 9.4. Using Email to Collect Form Data (HTML & XHTML: The Definitive Guide)
main movies: 13. Movie Clips (ActionScript: The Definitive Guide)
13.2.1. Main Movies (ActionScript: The Definitive Guide)
explicit vs. implicit references: 13.5.2. Referring to the Current Instance or Movie (ActionScript: The Definitive Guide)
referencing current level with _root: 13.5.4.1. Referencing the current level's main movie using _root (ActionScript: The Definitive Guide)
referencing documents with _leveln: 13.5.4.2. Referencing other documents in the Player using _leveln (ActionScript: The Definitive Guide)
referring to: 13.5. Referring to Instances and Main Movies (ActionScript: The Definitive Guide)
removing: 13.6. Removing Clip Instances and Main Movies (ActionScript: The Definitive Guide)
.map (map definition) files: 11.6.3. Server-Side Imagemaps (Web Design in a Nutshell)
<map> tags: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
MapEdit program: 11.6.1.1. Available tools (Web Design in a Nutshell)
MapMaker 1.1.2: 11.6.1.1. Available tools (Web Design in a Nutshell)
mapping site content: 9.2. Content Mapping (Information Architecture for the World Wide Web)
maps of web sites: 4.6.3. The Site Map (Information Architecture for the World Wide Web)
margin-bottom property: 7.3.4. Single-Side Margin Properties (Cascading Style Sheets: The Definitive Guide)
8.4.6.10. The margin properties (HTML & XHTML: The Definitive Guide)
margin-bottom property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
margin collapsing: 8.4.6.1. The CSS2 formatting model (HTML & XHTML: The Definitive Guide)
margin-left property: 7.3.4. Single-Side Margin Properties (Cascading Style Sheets: The Definitive Guide)
8.4.6.10. The margin properties (HTML & XHTML: The Definitive Guide)
margin-left property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
margin property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
margin-right property: 7.3.4. Single-Side Margin Properties (Cascading Style Sheets: The Definitive Guide)
8.4.6.10. The margin properties (HTML & XHTML: The Definitive Guide)
margin-right property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
margin-top property: 7.3.4. Single-Side Margin Properties (Cascading Style Sheets: The Definitive Guide)
8.4.6.10. The margin properties (HTML & XHTML: The Definitive Guide)
margin-top property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
marginheight attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.3.3. Adjusting Browser Margins (Web Design in a Nutshell)
14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.4.4. Frame Margins (Web Design in a Nutshell)
marginheight attribute ( ): 11.4.1.5. The marginheight and marginwidth attributes (HTML & XHTML: The Definitive Guide)
margins: 7. Boxes and Borders (Cascading Style Sheets: The Definitive Guide)
7.3. Margins (Cascading Style Sheets: The Definitive Guide)
12.5.2. The <embed> Tag (Web Design in a Nutshell)
13.7.5.1. First, a word about browser margins (Web Design in a Nutshell)
5.3.1.6. The leftmargin attribute (HTML & XHTML: The Definitive Guide)
(see also borders; whitespace)
adjusting: 9.3.3. Adjusting Browser Margins (Web Design in a Nutshell)
body content: 5.3.1.6. The leftmargin attribute (HTML & XHTML: The Definitive Guide)
collapsing: 7.3.5. Collapsing Margins (Cascading Style Sheets: The Definitive Guide)
block-level elements: 8.2.1.2. Collapsing vertical margins (Cascading Style Sheets: The Definitive Guide)
floated elements: 7.6.1. Floated Elements (Cascading Style Sheets: The Definitive Guide)
around CSS boxes: 8.4.6.1. The CSS2 formatting model (HTML & XHTML: The Definitive Guide)
frames: 13.7.5.1. First, a word about browser margins (Web Design in a Nutshell)
14.4.4. Frame Margins (Web Design in a Nutshell)
11.4.1.5. The marginheight and marginwidth attributes (HTML & XHTML: The Definitive Guide)
graphics: 12.3.5.1. Adding space around aligned images (Web Design in a Nutshell)
horizontal, noncollapsing: 8.2.2. Horizontal Formatting (Cascading Style Sheets: The Definitive Guide)
images: 5.2.6.13. The hspace and vspace attributes (HTML & XHTML: The Definitive Guide)
inline elements and: 7.3.7. Margins and Inline Elements (Cascading Style Sheets: The Definitive Guide)
caution with: 7.3.8. Margins: Known Issues (Cascading Style Sheets: The Definitive Guide)
length values and: 7.3.1. Length Values and Margins (Cascading Style Sheets: The Definitive Guide)
marquee areas: 5.5.1.5. The hspace and vspace attributes (HTML & XHTML: The Definitive Guide)
negative (see negative margins)
vs. padding: 7.2. Margins or Padding? (Cascading Style Sheets: The Definitive Guide)
percentages and: 7.3.2. Percentages and Margins (Cascading Style Sheets: The Definitive Guide)
replication: 7.3.3. Replicating Values (Cascading Style Sheets: The Definitive Guide)
single side, setting margin for: 7.3.4. Single-Side Margin Properties (Cascading Style Sheets: The Definitive Guide)
style properties for: 8.4.6.10. The margin properties (HTML & XHTML: The Definitive Guide)
style sheet properties for: 17.5.2. Box Properties (Web Design in a Nutshell)
table cells: 13.4.5. Table Cell Spacing (Web Design in a Nutshell)
table cells and: 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
marginwidth attribute: B. List of Attributes (Web Design in a Nutshell)
9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.3.3. Adjusting Browser Margins (Web Design in a Nutshell)
14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.4.4. Frame Margins (Web Design in a Nutshell)
11.4.1.5. The marginheight and marginwidth attributes (HTML & XHTML: The Definitive Guide)
markers: 8.2.3. List Items (Cascading Style Sheets: The Definitive Guide)
8.2.3. List Items (Cascading Style Sheets: The Definitive Guide)
10.4.2. Markers (Cascading Style Sheets: The Definitive Guide)
marketing: 2.2.3.5. Marketing (Information Architecture for the World Wide Web)
2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
markup metalanguage, XML as: 15.1. Languages and Metalanguages (HTML & XHTML: The Definitive Guide)
<marquee> tags: 5.5.1. The <marquee> Tag (HTML & XHTML: The Definitive Guide)
marquee window type, RealText: 7.4.2. Window types (Designing Web Audio)
masked layers, checking for: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
masked text entry fields: 9.5.1.2. Masked text controls (HTML & XHTML: The Definitive Guide)
masking: 2.1.1. Loudness (Designing Web Audio)
mastering: 4.3. Web mastering: optimizing sound files for Internet broadcasting (Designing Web Audio)
normalization: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
matching hyphenated values: 10.2.2.5. Matching hyphenated values (Cascading Style Sheets: The Definitive Guide)
matching single attribute values: 10.2.2.3. Matching single attribute values (Cascading Style Sheets: The Definitive Guide)
Math object: 4.3.3.4. Irrational numbers (ActionScript: The Definitive Guide)
built-in mathematical functions: 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mathematical constants: 4.3.3.4. Irrational numbers (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.abs( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.acos( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.asin( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.atan2( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.ceil( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.cos( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.E property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mathematical constants: 4.3.3.4. Irrational numbers (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mathematical functions: 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.exp( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.floor( ): 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.LN2 property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.log( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.LOG10E property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.max( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.min( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MathML (Mathematical Markup Language): 30.5.1.3. Mathematical Markup Language (MathML) (Web Design in a Nutshell)
Math.PI property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.pow( ): 4.3.2. Floating-Point Literals (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.random( ): 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.round( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.sin( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.sqrt( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.SQRT2 property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math.tan( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
matte color tools: 19.7.1.2. Use a matte color tool (Web Design in a Nutshell)
Max Characters option for text fields: 18.3.6. Max Characters (ActionScript: The Definitive Guide)
max-height property: 9.1.3.2. Limiting width and height (Cascading Style Sheets: The Definitive Guide)
max( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
max-width property: 9.1.3.2. Limiting width and height (Cascading Style Sheets: The Definitive Guide)
maxlength attribute: B. List of Attributes (Web Design in a Nutshell)
9.5.1.1. Conventional text fields (HTML & XHTML: The Definitive Guide)
9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
tag: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.1. Summary of Form Tags (Web Design in a Nutshell)
maxscroll property (text field): 18.4.2. The maxscroll Property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
scroll property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MAX_VALUE property (Number class): 4.3.3.2. Minimum and maximum allowed values: MIN_VALUE and MAX_VALUE (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mayscript attribute ( ): 12.2.3.8. The mayscript attribute (HTML & XHTML: The Definitive Guide)
mbchr( ) (Flash 4): 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
mblength( ) (Flash 4): 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
mbord( ) (Flash 4): 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
mbsubstring( ) (Flash 4): 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
McConnell, Steve: 14.1. Whitespace (ActionScript: The Definitive Guide)
19.2.4. Fixing Bugs (ActionScript: The Definitive Guide)
MCI Enterprise Information Systems: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
6.4.2.1. Creating custom controls with JavaScript (Designing Web Audio)
measuring a web site's success: 7.2.1. Measuring Success (Information Architecture for the World Wide Web)
media attribute: B. List of Attributes (Web Design in a Nutshell)
media attribute ( ): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
@media command: 8.1.4. Media-Specific Styles (HTML & XHTML: The Definitive Guide)
media-dependent style sheets, linking to: 5.3.2.1. Linking to media-dependent style sheets (Web Design in a Nutshell)
@media rule: 5.3. Cascading Style Sheets for Printouts (Web Design in a Nutshell)
5.3.2.4. @media rule (Web Design in a Nutshell)
connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
media types: 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
10.8. Media Types and @-rules (Cascading Style Sheets: The Definitive Guide)
4.5. File (MIME Types (Web Design in a Nutshell)
style sheets and: 17.8.1. Style Sheet MIME Types (Web Design in a Nutshell)
MediaPlayer program: 24.4. Streaming Audio (Web Design in a Nutshell)
memory, RAM requirement for RealServer: 6.3.3.2. RealServer system requirements (Designing Web Audio)
menu attribute ( ): 26.4.2.1. The <embed> tag (Web Design in a Nutshell)
menu lists: 7.8. Menu Lists (HTML & XHTML: The Definitive Guide)
<menu> tags: 7.8.1. The <menu> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
menus for navigation: 4.5.3. Pull-Down Menus (Information Architecture for the World Wide Web)
menus in forms: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.3. Creating Menus with the <select> Tag (Web Design in a Nutshell)
15.6.3. Working with Menus (Web Design in a Nutshell)
message IDs, news servers: 6.2.6.2. Accessing single messages (HTML & XHTML: The Definitive Guide)
<meta> tags: 13.2.1. Uniquely Refreshing (HTML & XHTML: The Definitive Guide)
meta tags, SMIL: 7.2.1. SMIL syntax (Designing Web Audio)
metalanguages, defining computer languages with: 15.1. Languages and Metalanguages (HTML & XHTML: The Definitive Guide)
metaphor-driven organization: 3.2.1.2.4. Metaphor-driven (Information Architecture for the World Wide Web)
8.2. Metaphor Exploration (Information Architecture for the World Wide Web)
method attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.3.2. The method Attribute (Web Design in a Nutshell)
method attribute ( ): 9.2.4. The method Attribute (HTML & XHTML: The Definitive Guide)
Methodizer: 11.2.2. Beatnik Audio Engine (Designing Web Audio)
methods: 12. Objects and Classes (ActionScript: The Definitive Guide)
12.4. Methods (ActionScript: The Definitive Guide)
assigning to objects of a class: 12.5.2.3. Assigning methods to objects of a class (ActionScript: The Definitive Guide)
implementing with function literals: 12.4. Methods (ActionScript: The Definitive Guide)
movie clip: 13.8. Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving values of object properties: 12.4. Methods (ActionScript: The Definitive Guide)
returning values from: 12.4. Methods (ActionScript: The Definitive Guide)
setting values of object properties: 12.4. Methods (ActionScript: The Definitive Guide)
vs. global functions overlap issues: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
methods (DHTML): 29.3. The Document Object Model (Web Design in a Nutshell)
methods, object (see object methods)
Meyer, Eric: 17.9. Browser Support Charts (Web Design in a Nutshell)
Microangelo: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
microphone pre-amps: 3.1.2. Microphone pre-amps (Designing Web Audio)
Appendix A.2.2. Mic pre-amps (Designing Web Audio)
microphones: A.2.1. Microphones (Designing Web Audio)
bidirectional: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
cardioid: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
condenser: 3.1.1.3. Condenser microphones (Designing Web Audio)
Appendix A.2.1.1. Pro option (Designing Web Audio)
budget option: A.2.1.2. Budget option (Designing Web Audio)
dynamic: 3.1.1.2. Dynamic microphones (Designing Web Audio)
Appendix A.2.1.2. Budget option (Designing Web Audio)
features, important: 3.1.1.6. Frequency response (Designing Web Audio)
frequency response: 3.1.1.6. Frequency response (Designing Web Audio)
lavaliere clip-on: 3.1.1.4. Lavaliere clip-on microphones (Designing Web Audio)
omnidirectional: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
placement: 3.2.1.2. Optimizing your recording environment (Designing Web Audio)
shotgun: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
transducers: 3.1.1. Microphones (Designing Web Audio)
Microsoft
Internet Information Server: 6.3.3.2. RealServer system requirements (Designing Web Audio)
Media Player: 8.8. MP3 resources (Designing Web Audio)
Site Server: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
Windows Media Technologies for NT/Windows 2000: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
Windows NT 4.0, requirement for RealServer: 6.3.3.2. RealServer system requirements (Designing Web Audio)
Microsoft Internet Explorer (see Internet Explorer)
1.1.1. The "Big Two" (Web Design in a Nutshell)
1.7.1.2. Browser software (HTML & XHTML: The Definitive Guide)
AOL and: 1.1.2.2. America Online (Web Design in a Nutshell)
color name support: 16.2.2. Color Name Cautions (Web Design in a Nutshell)
core fonts for: 3.2.3.3. Core fonts for the Web from Microsoft (Web Design in a Nutshell)
feature overview: 1.2.3. Browser Features (Web Design in a Nutshell)
FTP via: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
GIF animation support: 23.3. Browser Support (Web Design in a Nutshell)
Macintosh version: 1.1.2.1. Internet Explorer on the Macintosh (Web Design in a Nutshell)
Mozilla and: 1.2.1.1. Server log analysis (Web Design in a Nutshell)
PNG image support: 21.3. Platform/Browser Support (Web Design in a Nutshell)
proprietary HTML tags: D.1. Microsoft Internet Explorer Proprietary Tags (Web Design in a Nutshell)
SMIL and: 27.2. SMIL Players (Web Design in a Nutshell)
style sheet support: 17.1.2. Disadvantages (Web Design in a Nutshell)
tables, coloring: 13.4.6. Coloring Tables (Web Design in a Nutshell)
.mid files: 1.3. Two easy ways to add sound (Designing Web Audio)
middle alignment: 4.1.3.5. In the middle (Cascading Style Sheets: The Definitive Guide)
middle value: 2.8.1. Inline Images (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
(see also alignment)
middle value (align): 12.3.4. Vertical Alignment (Web Design in a Nutshell)
MIDI Manufacturers Association (MMA): 10.2.1. Making a MIDI jukebox (Designing Web Audio)
MIDI (.mid) file format: 24.5.4. MIDI (.mid) (Web Design in a Nutshell)
MIDI (Musical Instrument Digital Interface): 1.1. A brief history of web audio (Designing Web Audio)
5.2. Streaming media formats (Designing Web Audio)
5.2.8. MIDI (Designing Web Audio)
10. MIDI: Quick and Easy Audio for the Web (Designing Web Audio)
adding to web pages: 10.2. Adding MIDI to your web pages (Designing Web Audio)
advantages: 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
Beatnik: (Designing Web Audio) 5.2.5. Beatnik's Rich Music Format (RMF)
Beatnik, use of: 11.2. Beatnik authoring system (Designing Web Audio)
capabilities overview: B.9. MIDI (Designing Web Audio)
consistent playback: 10.3. Creating your own MIDI files (Designing Web Audio)
creating your own files: 10.3. Creating your own MIDI files (Designing Web Audio)
editing files: 10.3.3. MIDI file editing tutorial (Designing Web Audio)
from scratch: 10.3.4.1. Creating your own MIDI file (Designing Web Audio)
DLS, implementation of: 10.3.4.2. Adding notes without using a keyboard (Designing Web Audio)
drawing notes: 10.3.4.2. Adding notes without using a keyboard (Designing Web Audio)
editors: 10.3.1. MIDI editors (Designing Web Audio)
event sounds: 10.2.2. Add a bit of spice to your site (Designing Web Audio)
extracting parts: 10.3.3. MIDI file editing tutorial (Designing Web Audio)
HTTP web servers: 5.1. Streaming protocols (Designing Web Audio)
jukebox: 10.2.1. Making a MIDI jukebox (Designing Web Audio)
keyboard: 10.3.4.1. Creating your own MIDI file (Designing Web Audio)
libraries, web sites for: 10.2.1. Making a MIDI jukebox (Designing Web Audio)
notes, changing: 10.3.2.3. Changing notes (Designing Web Audio)
10.3.3.4. Changing notes (Designing Web Audio)
pitch-shifting: 10.3.2.2. Pitch-shifting (Designing Web Audio)
problems: 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
QuickTime: 5.2.3. QuickTime (Designing Web Audio)
regions, inserting: 10.3.2.4. Inserting regions (Designing Web Audio)
removing instruments: 10.3.2.1. Removing instruments (Designing Web Audio)
sequencers: A.2.5. Sequencers: MIDI and digital audio recording and editing applications (Designing Web Audio)
shareware and freeware, web sites: A.4.2. MIDI files and sequencers (Designing Web Audio)
sound engines: 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
strip charts: 10.3.3.5. Using the strip chart (Designing Web Audio)
synthesizers or tone generators: A.2.6. Synthesizers and tone generators (Designing Web Audio)
transposing pitch: 10.3.3.3. Transposing pitch (Designing Web Audio)
tunes, creating: 10.3.2.5. Creating your own tunes (Designing Web Audio)
millimeters (mm): 3.2.1. Absolute Length Units (Cascading Style Sheets: The Definitive Guide)
milliseconds of a date
assigning: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using to calculate dates: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MIME content type
setting: 17.1.3. The Data-Handling Application (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.send( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MIME (Multipurpose Internet Mail Extension) types: Types (Web Design in a Nutshell) 4.5. File (MIME)
style sheets and: 17.8.1. Style Sheet MIME Types (Web Design in a Nutshell)
WAP content, serving: 32.1.3. Serving WAP Content (Web Design in a Nutshell)
MIME types: 5.6.2. Referencing Audio, Video, and Images (HTML & XHTML: The Definitive Guide)
6.7.2.4. The type attribute (HTML & XHTML: The Definitive Guide)
application/x-www-form-urlencoded: 9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
file-selection controls and: 9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
HTTP streaming: 6.2.2. Requirements for HTTP streaming (Designing Web Audio)
multipart/form-data: 9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
multipart/mixed: 13.3.1. The Multipart/Mixed Media Type (HTML & XHTML: The Definitive Guide)
multipart/x-mixed-replace: 13.3.2. Multipart Mixed-Replace Media Type (HTML & XHTML: The Definitive Guide)
RealAudio: 6.1.6. RealAudio delivery (Designing Web Audio)
RealServer: 6.3.3.2. RealServer system requirements (Designing Web Audio)
text/css: 8.1.2.1. The type attribute (HTML & XHTML: The Definitive Guide)
text/plain: 9.2.2.3. The text/plain encoding (HTML & XHTML: The Definitive Guide)
min-height property: 9.1.3.2. Limiting width and height (Cascading Style Sheets: The Definitive Guide)
min( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
min-max properties: 9.1.3.2. Limiting width and height (Cascading Style Sheets: The Definitive Guide)
min-width property: 9.1.3.2. Limiting width and height (Cascading Style Sheets: The Definitive Guide)
Ming (open source C library): A.4. SWF File Format (ActionScript: The Definitive Guide)
Minimum Bounding Rectangle method: 23.6.2. Optimizing Methods (Web Design in a Nutshell)
minus ( ) subtraction operator: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.3. Subtraction (ActionScript: The Definitive Guide)
minutes of a date
assigning: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MIN_VALUE property (Number class): 4.3.3.2. Minimum and maximum allowed values: MIN_VALUE and MAX_VALUE (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
missing HTML tags: 3.3.6. Omitting Tags (HTML & XHTML: The Definitive Guide)
mission of site: 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
mixers: 3.1.3. Mixers (Designing Web Audio)
Appendix A.2.7. Mixers (Designing Web Audio)
digital: A.2.8. Digital mixers (Designing Web Audio)
Enigma: 9.3. Introduction to Shockwave (Designing Web Audio)
signal-to-noise (s/n) ratio: A.2.7. Mixers (Designing Web Audio)
mixing audio: 1.7.3.2. Good ambient loop mixing (Designing Web Audio)
mixing boards: 3.1.3. Mixers (Designing Web Audio)
Mixman remixers, Beatnik: 11.2. Beatnik authoring system (Designing Web Audio)
MNG (Multiple-image Network Graphic): 21.1. The PNG Story (Web Design in a Nutshell)
mobile playback: 6.1.4. RealAudio utilities (Designing Web Audio)
RealPublisher, enabling with: 6.3.2. Using the RealEncoder (Designing Web Audio)
mode attribute (WML): 32.3.2. Formatting Text (Web Design in a Nutshell)
modular code in ActionScript: 1.2.4. Modular Code (Functions) (ActionScript: The Definitive Guide)
Modular XHTML: 31.1.3. XHTML 1.1 (Modular XHTML) (Web Design in a Nutshell)
modules, customizing Apache servers: 4.1.1. Popular Server Software (Web Design in a Nutshell)
modulo (%) operator: 5.3.7. Modulo Division (ActionScript: The Definitive Guide)
modulo assignment (%=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
Monitor Encoder: 6.6.5.1. Remote encoding and management (Designing Web Audio)
monitor, form contents and: 9.11.2. Handling Limited Displays (HTML & XHTML: The Definitive Guide)
monitors: 2. Designing for a Variety of Displays (Web Design in a Nutshell)
color capabilities: 2.4. Monitor Color Issues (Web Design in a Nutshell)
size and resolution: 2.1. Dealing with Unknown Monitor Resolutions (Web Design in a Nutshell)
2.2.4. Choosing a Page Size (Web Design in a Nutshell)
web, viewing colors on: 3.3.1. Color on Computer Monitors (Web Design in a Nutshell)
monospace fonts: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
3.2.1.2. Fixed-width font (Web Design in a Nutshell)
monospaced text: 4.4.4. The <code> Tag (HTML & XHTML: The Definitive Guide)
4.4.7. The <kbd> Tag (HTML & XHTML: The Definitive Guide)
4.4.10. The <var> Tag (HTML & XHTML: The Definitive Guide)
4.5.10. The <tt> Tag (HTML & XHTML: The Definitive Guide)
4.7.9. The <plaintext> Tag (Obsolete) (HTML & XHTML: The Definitive Guide)
months of the year
assigning: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Mosaic browser: 1.1.2. HTML and the World Wide Web (HTML & XHTML: The Definitive Guide)
Motion Pictures Expert Group (MPEG): 8.2. What is MP3? (Designing Web Audio)
MOTU: 24.3.2.2. Mac audio tools (Web Design in a Nutshell)
mouse: 10.11. The User-Input Movie Clip Events (ActionScript: The Definitive Guide)
(see also custom mouse pointers)
hiding the pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
horizontal location of pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
movie clips following the: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
revealing the pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rotating a movie clip toward pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vertical location of pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mouse events
button events and: 10.8. Button Events (ActionScript: The Definitive Guide)
movie clip events and: 10.9. Movie Clip Events Overview (ActionScript: The Definitive Guide)
10.11. The User-Input Movie Clip Events (ActionScript: The Definitive Guide)
Mouse object: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mouse-related events: 12.3.3.2. The mouse-related events (HTML & XHTML: The Definitive Guide)
pseudo-classes for: 8.3.4.2. Interaction pseudo-classes (HTML & XHTML: The Definitive Guide)
mouse rollover: 9.2.1. Flash audio: event-driven sound versus streaming sound (Designing Web Audio)
mouse-sensitive images (see clickable image maps)
mouseDown movie clip event: 10.11.1. mouseDown (ActionScript: The Definitive Guide)
mouseDown movie clip event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
updateAfterEvent( ) and: 10.14. Refreshing the Screen with updateAfterEvent (ActionScript: The Definitive Guide)
Mouse.hide( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mouseMove movie clip event: 10.11.3. mouseMove (ActionScript: The Definitive Guide)
mouseMove movie clip event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
updateAfterEvent( ) and: 10.14. Refreshing the Screen with updateAfterEvent (ActionScript: The Definitive Guide)
Mouse.show( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
mouseUp movie clip event: 10.11.2. mouseUp (ActionScript: The Definitive Guide)
mouseUp movie clip event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
updateAfterEvent( ) and: 10.14. Refreshing the Screen with updateAfterEvent (ActionScript: The Definitive Guide)
.mov files: 25.3.1. QuickTime Movie (.mov) (Web Design in a Nutshell)
movie clip event handlers: 16.4. Adding Scripts to Movie Clips (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
clip events for: 10.9. Movie Clip Events Overview (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
copying: 10.13. Copying Clip Event Handlers (ActionScript: The Definitive Guide)
data: 10.10.4. data (ActionScript: The Definitive Guide)
defining: 10.5. Event Handler Syntax (ActionScript: The Definitive Guide)
enterFrame: 10.10.1. enterFrame (ActionScript: The Definitive Guide)
load: 10.10.2. load (ActionScript: The Definitive Guide)
order of execution: 10.12. Order of Execution (ActionScript: The Definitive Guide)
scope rules: 10.7.1. Movie Clip Event Handler Scope (ActionScript: The Definitive Guide)
simulating dynamic event handling: 10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
this keyword, explicitly referring to objects using: 10.7.1. Movie Clip Event Handler Scope (ActionScript: The Definitive Guide)
unload: 10.10.3. unload (ActionScript: The Definitive Guide)
movie clip events: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
data: 10.10.4. data (ActionScript: The Definitive Guide)
enterFrame: 10.10.1. enterFrame (ActionScript: The Definitive Guide)
keyDown: 10.11.4. keyDown (ActionScript: The Definitive Guide)
keyUp: 10.11.5. keyUp (ActionScript: The Definitive Guide)
load: 10.10.2. load (ActionScript: The Definitive Guide)
loops: 8.7.2. Flash 5 Clip Event Loops (ActionScript: The Definitive Guide)
clip event loop examples: 8.7.2. Flash 5 Clip Event Loops (ActionScript: The Definitive Guide)
code portability issues and: 8.7.2.1. Keeping event loops portable (ActionScript: The Definitive Guide)
enterFrame event and: 10.10.1. enterFrame (ActionScript: The Definitive Guide)
frame rate effect on: 8.7.3. Frame Rate's Effect on Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
mouseDown: 10.11.1. mouseDown (ActionScript: The Definitive Guide)
mouseMove: 10.11.3. mouseMove (ActionScript: The Definitive Guide)
mouseUp: 10.11.2. mouseUp (ActionScript: The Definitive Guide)
movie-playback: 10.10. Movie-Playback Movie Clip Events (ActionScript: The Definitive Guide)
overview: 10.9. Movie Clip Events Overview (ActionScript: The Definitive Guide)
simulating dynamic event handling: 10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
unload: 10.10.3. unload (ActionScript: The Definitive Guide)
user-input: 10.11. The User-Input Movie Clip Events (ActionScript: The Definitive Guide)
updateAfterEvent( ) and: 10.14. Refreshing the Screen with updateAfterEvent (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
movie clips: 13. Movie Clips (ActionScript: The Definitive Guide)
absolute paths of: function (ActionScript: The Definitive Guide) 13.5.6.6. The targetPath( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding scripts to: 16.4. Adding Scripts to Movie Clips (ActionScript: The Definitive Guide)
applications: 13.9. Applied Movie Clip Examples (ActionScript: The Definitive Guide)
attaching code to: 1.1.2. Say Hi to Flash (ActionScript: The Definitive Guide)
attaching event handlers to: 10.6.1. Attaching Event Handlers to Buttons and Movie Clips (ActionScript: The Definitive Guide)
bad references: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
bounding boxes, determining: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
calculating distance between: 2.6. Some Applied Examples (ActionScript: The Definitive Guide)
color and transparency, programming: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
controlling using Flash 4 techniques: C.2. Controlling Movie Clips (ActionScript: The Definitive Guide)
creating: 13.3. Creating Movie Clips (ActionScript: The Definitive Guide)
creating copies of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
deleting from Player: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
dragging (see dragging movie clips)
following the pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
height, specifying: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hiding/showing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
hierarchy of: 13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
instance names
assigning: 13.3.3. Instance Names (ActionScript: The Definitive Guide)
using: 13.5.1. Using Instance Names (ActionScript: The Definitive Guide)
instances: 1.2.5. Movie Clip Instances (ActionScript: The Definitive Guide)
13.3.1. Movie Clip Symbols and Instances (ActionScript: The Definitive Guide)
assigning depths in programmatically generated clip stacks: 13.4.2.3. Assigning depths to instances in the programmatically generated clip stack (ActionScript: The Definitive Guide)
creating from exported Library symbols: 13.3.2.3. Creating instances with attachMovie( ) (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating manually: 13.3.2.1. Manually creating instances (ActionScript: The Definitive Guide)
13.4.1. The Internal Layer Stack (ActionScript: The Definitive Guide)
creating references dynamically: 13.5.6. Dynamic References to Clip Objects (ActionScript: The Definitive Guide)
creating with duplicateMovieClip( ): 13.3.2.2. Creating instances with duplicateMovieClip( ) (ActionScript: The Definitive Guide)
current, referring to: 13.5.2. Referring to the Current Instance or Movie (ActionScript: The Definitive Guide)
document stacks: 13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
generating references with Insert Target Path: 13.5.5. Authoring Instance References with Insert Target Path (ActionScript: The Definitive Guide)
level stacks: 13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
nested: 13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
programmatically generated: 13.4.2. The Programmatically Generated Clip Stack (ActionScript: The Definitive Guide)
referring to: 13.5. Referring to Instances and Main Movies (ActionScript: The Definitive Guide)
removing: 13.6. Removing Clip Instances and Main Movies (ActionScript: The Definitive Guide)
specifying names of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
stacking order: 13.4. Movie and Instance Stacking Order (ActionScript: The Definitive Guide)
swapping depths: 13.4.1. The Internal Layer Stack (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
with statement and: 6.3.9. The with Statement (ActionScript: The Definitive Guide)
linked clips: 13.2.6. Linked Clips (ActionScript: The Definitive Guide)
main movies (see main movies)
methods: 13.8. Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
built-in: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
creating: 13.8.1. Creating Movie Clip Methods (ActionScript: The Definitive Guide)
invoking: 13.8.2. Invoking Movie Clip Methods (ActionScript: The Definitive Guide)
vs. global functions overlap issues: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
moving in a circle: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
nested, accessing with dot operator: 13.1. The "Objectness" of Movie Clips (ActionScript: The Definitive Guide)
opacity, specifying: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
playing back: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
printing
as bitmaps: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using vectors: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
process clips: 13.2.4. Process Clips (ActionScript: The Definitive Guide)
properties: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
accessing using dot (.) operator: 13.1. The "Objectness" of Movie Clips (ActionScript: The Definitive Guide)
assigning values to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
built-in: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
retrieving values of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
registration points: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
regular movie clips: 13.2.2. Regular Movie Clips (ActionScript: The Definitive Guide)
removing from Player: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
reporting byte size of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
RGB triplet notation: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getRGB( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setRGB( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rotating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
script clips: 13.2.5. Script Clips (ActionScript: The Definitive Guide)
seed clips: 13.2.7. Seed Clips (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
assigning instances to stacks: are added to the stack (ActionScript: The Definitive Guide) 13.4.2.2. How clips generated via duplicateMovieClip( )
duplicated instances and transformed: 13.3.2.2. Creating instances with duplicateMovieClip( ) (ActionScript: The Definitive Guide)
Smart Clips and: 13.2.3. Smart Clips (ActionScript: The Definitive Guide)
16.8. Packaging Components as Smart Clips (ActionScript: The Definitive Guide)
stopping: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
symbols: 13.3.1. Movie Clip Symbols and Instances (ActionScript: The Definitive Guide)
exporting from Library: 13.3.2.3. Creating instances with attachMovie( ) (ActionScript: The Definitive Guide)
target paths: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transparency, specifying: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
types of: 13.2. Types of Movie Clips (ActionScript: The Definitive Guide)
variables: 2.5.5. Movie Clip Variables (ActionScript: The Definitive Guide)
accessing using dot operator: 13.1. The "Objectness" of Movie Clips (ActionScript: The Definitive Guide)
life span of: 2.5.7. Movie Clip Variable Life Span (ActionScript: The Definitive Guide)
width, specifying: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Movie Explorer: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
movie playback: 5.2.3. QuickTime (Designing Web Audio)
movie-playback clip events: 10.10. Movie-Playback Movie Clip Events (ActionScript: The Definitive Guide)
MovieClip class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
movieclip datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
13.1. The "Objectness" of Movie Clips (ActionScript: The Definitive Guide)
vs. object datatype: 15.4. The movieclip Datatype (ActionScript: The Definitive Guide)
MovieClip._alpha property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.attachMovie( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding generated clips to stack: are added to the stack (ActionScript: The Definitive Guide) 13.4.2.1. How clips generated via attachMovie( )
creating instances: 13.3.2.3. Creating instances with attachMovie( ) (ActionScript: The Definitive Guide)
MovieClip._currentframe property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._droptarget property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.duplicateMovieClip( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding generated clips to stack: are added to the stack (ActionScript: The Definitive Guide) 13.4.2.2. How clips generated via duplicateMovieClip( )
creating instances: 13.3.2.2. Creating instances with duplicateMovieClip( ) (ActionScript: The Definitive Guide)
seed clips and: 13.2.7. Seed Clips (ActionScript: The Definitive Guide)
MovieClip._framesloaded property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding scripts to frames: 16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
use instead of ifFrameLoaded statement: 6.3.10. The ifFrameLoaded Statement (ActionScript: The Definitive Guide)
MovieClip.getBounds( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.getBytesLoaded( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.getBytesTotal( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.getURL( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.globalToLocal( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.gotoAndPlay( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.gotoAndStop( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._height property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.hitTest( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.loadMovie( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.loadVariables( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.localToGlobal( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._name property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
determining names of clips: 13.5.6.4. The _name property (ActionScript: The Definitive Guide)
instance names stored in: 13.3.3. Instance Names (ActionScript: The Definitive Guide)
MovieClip.nextFrame( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._parent property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
accessing variables on different timelines: 2.5.6.1. The _root and _ parent properties (ActionScript: The Definitive Guide)
not available in main timeline: 13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
referring to current clip: 13.1. The "Objectness" of Movie Clips (ActionScript: The Definitive Guide)
13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
MovieClip.play( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.prevFrame( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.removeMovieClip( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._rotation property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.startDrag( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.stop( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.stopDrag( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.swapDepths( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._target property: 13.5.6.5. The _target property (ActionScript: The Definitive Guide)
13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._totalframes property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
use instead of ifFrameLoaded statement: 6.3.10. The ifFrameLoaded Statement (ActionScript: The Definitive Guide)
MovieClip.unloadMovie( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._url property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip.valueOf( ): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._visible property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._width property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._x property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._xmouse property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._xscale property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._y property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._ymouse property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip._yscale property: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
movies (see animation video)
movies, sound design examples: 1.6. Solid sound design (Designing Web Audio)
Moving Pictures Experts Group (see MPEG)
Mozilla: 1.2.1.1. Server log analysis (Web Design in a Nutshell)
MP3: 5.2.6. MP3 (Designing Web Audio)
8. Playing, Serving, and Streaming MP3 (Designing Web Audio)
audition threshold: 8.2.1. MP3 technical details (Designing Web Audio)
capabilities overview: B.2. MP3 (Designing Web Audio)
codec, installing appropriate: 8.6.1.2. Installing an appropriate MP3 codec (Designing Web Audio)
compression: 1.7.1.1. Capturing narration (Designing Web Audio)
creating files: 8.4. Making MP3 files (Designing Web Audio)
disadvantages: 8.1. MP3 pros and cons (Designing Web Audio)
download sites, listing of: 8.5.1. Creating your own MP3 site (Designing Web Audio)
encoding files: 8.4.1. Encoding MP3 files (Designing Web Audio)
Flash: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
frames: 8.2.1. MP3 technical details (Designing Web Audio)
history: 1.1. A brief history of web audio (Designing Web Audio)
HREF tag: 8.5. Creating a buzz: posting MP3 files to the Internet (Designing Web Audio)
Huffman encoding: 8.2.1. MP3 technical details (Designing Web Audio)
Internet distribution quality standard: 8.4.2.3. 128 Kbps Internet standard (Designing Web Audio)
Internet, posting files to: 8.5. Creating a buzz: posting MP3 files to the Internet (Designing Web Audio)
joint stereo: 8.2.1. MP3 technical details (Designing Web Audio)
legal issues: 8.7. Legalities of MP3 (Designing Web Audio)
Internet downloads: 8.7.2. Legal MP3 files: headline artists sign up for MP3 (Designing Web Audio)
masking: 8.2.1. MP3 technical details (Designing Web Audio)
MIME types: 8.5. Creating a buzz: posting MP3 files to the Internet (Designing Web Audio)
Netscape Navigator (older versions) and: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
online resources: 8.8. MP3 resources (Designing Web Audio)
players: 8.4. Making MP3 files (Designing Web Audio)
8.4.3.1. Selecting tracks (Designing Web Audio)
playing files: 8.3. Playing MP3 files (Designing Web Audio)
plug-ins: 8.3.5. Plug-ins (Designing Web Audio)
posting files to Internet: 8.5. Creating a buzz: posting MP3 files to the Internet (Designing Web Audio)
QuickTime: 5.2.3. QuickTime (Designing Web Audio)
radio station, starting your own: 8.6. Start your own MP3 radio station (Designing Web Audio)
search engines for sites and files: 8.5.1. Creating your own MP3 site (Designing Web Audio)
security: 5.2.7. Liquid Audio (Designing Web Audio)
sites, creating your own: 8.5.1. Creating your own MP3 site (Designing Web Audio)
stream narration: 1.7.1.2. Embedding narration in a web page (Designing Web Audio)
streaming: 8.5.1. Creating your own MP3 site (Designing Web Audio)
MP3.com: 8.7.1. Is MP3 legal? (Designing Web Audio)
MPEG-1, Layer III (see MP3)
MPEG file format: 24.5.2.1. MPEG compression (Web Design in a Nutshell)
(Web Design in a Nutshell) 25.3.5. MPEG (.mpg or .mpeg)
video codecs and: 25.2.3. Video Codecs (Web Design in a Nutshell)
MPEG Layer 3 compression: 9.3.4. Exporting Shockwave audio files (Designing Web Audio)
MPEG (Moving Pictures Experts Group): 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
5.2.6. MP3 (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
MSIE (see Internet Explorer)
Motley Crue concert, live broadcast: 6.6. Case study: N2K streams live M[DBLENTITY:ouml]tley Cr[DBLENTITY:uuml]e concert (Designing Web Audio)
multibyte vs. single-byte operations: 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
multicast delivery, RealServer: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
multiclass inheritance: 12.5.4. Superclasses and Subclasses (ActionScript: The Definitive Guide)
<multicol> tags: 14.2.1. The <multicol> Tag (HTML & XHTML: The Definitive Guide)
multicolumn layout (see columns)
multidimensional arrays: 11.10. Multidimensional Arrays (ActionScript: The Definitive Guide)
multiline comments: 14.3. Comments (ActionScript: The Definitive Guide)
Multiline option in text fields: 18.3.1. Line Display (ActionScript: The Definitive Guide)
multiline text entry areas: 9.7. Multiline Text Areas (HTML & XHTML: The Definitive Guide)
multiline text entry fields: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
multimedia: 2.5.3. Multimedia (HTML & XHTML: The Definitive Guide)
5.6. Other Multimedia Content (HTML & XHTML: The Definitive Guide)
audio: 5.4. Background Audio (HTML & XHTML: The Definitive Guide)
browser handling of: 2.7.4. Anchors Beyond (HTML & XHTML: The Definitive Guide)
client-pull feature for: 13.2.3. Pulling Non-HTML Content (HTML & XHTML: The Definitive Guide)
common file formats: 5.4.1.1. The src attribute (HTML & XHTML: The Definitive Guide)
GIF animation: 5.2.1.2. Interlacing, transparency, and animation (HTML & XHTML: The Definitive Guide)
images (see images)
text animation: 5.5. Animated Text (HTML & XHTML: The Definitive Guide)
video, extensions for: 5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
multimedia presentations, synchronized: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
multipart image containers, tables as: 13.2. Introduction to Tables (Web Design in a Nutshell)
13.8. Multipart Images in Tables (Web Design in a Nutshell)
multipart/form-data encoding: 9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
multipart/mixed encoding: 13.3.1. The Multipart/Mixed Media Type (HTML & XHTML: The Definitive Guide)
multipart/x-mixed-replace encoding: 13.3.2. Multipart Mixed-Replace Media Type (HTML & XHTML: The Definitive Guide)
multiple attribute ( ): 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.3.2. Scrolling menus (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
9.8.1.1. The multiple attribute (HTML & XHTML: The Definitive Guide)
multiple-choice checkboxes on forms: 15.4.1.4. Checkbox (type=checkbox) (Web Design in a Nutshell)
multiple-choice quiz
using arrays to store quiz answers: 11.11. The Multiple-Choice Quiz, Take 3 (ActionScript: The Definitive Guide)
centralizing code: 9.13. The Multiple-Choice Quiz Revisited (ActionScript: The Definitive Guide)
creating: 1.3. Building a Multiple-Choice Quiz (ActionScript: The Definitive Guide)
dynamically generating questions/answers using movie clips: 13.10. The Last Quiz (ActionScript: The Definitive Guide)
Multiple-image Network (MNG): 21.1. The PNG Story (Web Design in a Nutshell)
multiple pages, using styles on: 1.2.3. Using Your Styles on Multiple Pages (Cascading Style Sheets: The Definitive Guide)
multiple pathways to content (example): 10.2.6. Multiple Pathways to Content (Information Architecture for the World Wide Web)
multiplication assignment (*=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
multiplication operator (*): 4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.5. Multiplication (ActionScript: The Definitive Guide)
Multipurpose Internet Mail Extension (see MIME)
multitrack digital editors: 1.8. Interactive sound effects and buttons (Designing Web Audio)
multitrack sound editors: 1.7.3.4. Sound loop tutorial: creating seamless loops with a sound editor (Designing Web Audio)
Murch, Walter: 1.7.2. Using sound effects (Designing Web Audio)
Murphy, Sean: 3.1.4. Compressors/limiters (Designing Web Audio)
music
ambient sound loops: 1.7. Designing web audio (Designing Web Audio)
ambient sound loops, designing: 1.7.3. Designing music loops (Designing Web Audio)
loops vs. sound effects: 1.7.3.1. Sound loops versus repetitive sound effects (Designing Web Audio)
mixing: 1.7.3.2. Good ambient loop mixing (Designing Web Audio)
optimum length: 1.7.3.3. Optimum loop length (Designing Web Audio)
seamless music loops: 1.7.3.5. Building seamless music loops (Designing Web Audio)
piracy, security against: 8.4.3.1. Selecting tracks (Designing Web Audio)
pitch, correcting: 4.2.3. Pitch shift (Designing Web Audio)
sales, online: 1.2. What you can do with sound on the Web (Designing Web Audio)
Music Boulevard web site: 6.6. Case study: N2K streams live M[DBLENTITY:ouml]tley Cr[DBLENTITY:uuml]e concert (Designing Web Audio)
Music Object, Beatnik: 11.2.5. Introduction to the Music Object (Designing Web Audio)
local serving: 11.2.3. Beatnik Editor (Designing Web Audio)
multiple instances on page, creating: 11.3.4. Lesson 4: Creating multiple Music Object instances on a page (Designing Web Audio)
music videos: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
MusicMatch: 8.8. MP3 resources (Designing Web Audio)
muting sounds (see sound, muting)
Myers, Gene: 15.2.6.1. Why bitwise? (ActionScript: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: N

n attribute ( ): 6.8.2.1. The n attribute (HTML & XHTML: The Definitive Guide)
name attribute: 31.4.9. id and name Attributes (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
4.1. Divisions and Paragraphs (HTML & XHTML: The Definitive Guide)
(HTML & XHTML: The Definitive Guide) 4.6.2. The <basefont> Tag (Deprecated)
5.2.6.16. The name, onAbort, onError, onLoad and other event attributes (HTML & XHTML: The Definitive Guide)
6.3.1.3. The name and id attributes (HTML & XHTML: The Definitive Guide)
6.5.3.1. The name attribute (HTML & XHTML: The Definitive Guide)
6.8.1.1. The name attribute (HTML & XHTML: The Definitive Guide)
9.2.6. The id, name, and title Attributes (HTML & XHTML: The Definitive Guide)
9.5. The <input> Tag (HTML & XHTML: The Definitive Guide)
9.10.1.1. Implicit and explicit associations (HTML & XHTML: The Definitive Guide)
11.2. Frame Tags (HTML & XHTML: The Definitive Guide)
11.4.1.2. The name attribute (HTML & XHTML: The Definitive Guide)
12.2.1.9. The id, name, and title attributes (HTML & XHTML: The Definitive Guide)
12.2.2.1. The name and value attributes (HTML & XHTML: The Definitive Guide)
12.2.3.6. The name attribute (HTML & XHTML: The Definitive Guide)
12.2.4.3. The name attribute (HTML & XHTML: The Definitive Guide)
14.3.1.1. The name attribute (HTML & XHTML: The Definitive Guide)
XHTML documents: 16.3.8. The id and name Attributes (HTML & XHTML: The Definitive Guide)
_name property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
determining names of clips: 13.5.6.4. The _name property (ActionScript: The Definitive Guide)
instance names stored in: 13.3.3. Instance Names (ActionScript: The Definitive Guide)
name servers: 1.2. Talking the Internet Talk (HTML & XHTML: The Definitive Guide)
named anchors: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
11.3.1. Naming a fragment (Web Design in a Nutshell)
named array elements
creating/referencing: 11.6.1. Creating and Referencing Named Array Elements (ActionScript: The Definitive Guide)
deleting: 11.6.2. Removing Named Elements (ActionScript: The Definitive Guide)
named colors: 3.1.1. Named Colors (Cascading Style Sheets: The Definitive Guide)
named form parameters: 9.2.4.2. Passing parameters explicitly (HTML & XHTML: The Definitive Guide)
9.12.2.1. Using named parameters with GET applications (HTML & XHTML: The Definitive Guide)
named frames (see frames, as hyperlink targets)
namespaces in XML: 30.3.2. Namespaces (Web Design in a Nutshell)
namespaces, XHTML DTDs: 16.2.2. Understanding Namespaces (HTML & XHTML: The Definitive Guide)
naming variables: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
2.1.2. Legal Variable Names (ActionScript: The Definitive Guide)
NaN (Not-a-Number)
global property: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
4.3.3.1. Not-a-Number: NaN (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
isNan( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Number class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
narration: 1.7. Designing web audio (Designing Web Audio)
1.7.1. Easy-to-use narration (Designing Web Audio)
advantages: 1.7.1. Easy-to-use narration (Designing Web Audio)
capturing: 1.7.1.1. Capturing narration (Designing Web Audio)
voice-over: 1.2. What you can do with sound on the Web (Designing Web Audio)
web page embedding: 1.7.1.2. Embedding narration in a web page (Designing Web Audio)
narrowing search parameters: 6.5.2. Search Zones: Selectively Indexing the Right Content (Information Architecture for the World Wide Web)
National Public Radio, hourly news broadcasts: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
native keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
natural logarithm: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
(see also logarithm)
base (constant e): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
raising to a specified power: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
of 10 (LN10 property): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
navbar (sonified), building with Beatnik: 11.3.2. Lesson 2: Building a sonified navbar (Designing Web Audio)
navigating with hyperlinks: 2.7.3. Hyperlink Names and Navigation (HTML & XHTML: The Definitive Guide)
navigation bar: 11.1.2. Case 2: Library Catalog System Interface (Cascading Style Sheets: The Definitive Guide)
navigation bars: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
navigation (browsing): 4. Designing Navigation Systems (Information Architecture for the World Wide Web)
6.1.1. When Not To Make Your Site Searchable (Information Architecture for the World Wide Web)
ad hoc: 4.4.4. Ad Hoc Navigation (Information Architecture for the World Wide Web)
context for: 4.2. Building Context (Information Architecture for the World Wide Web)
embedded hypertext links: 4.4.4. Ad Hoc Navigation (Information Architecture for the World Wide Web)
flexibility of: 4.3. Improving Flexibility (Information Architecture for the World Wide Web)
indexing pages of: 4.6.2. The Index (Information Architecture for the World Wide Web)
iterations of: 6.2.3. Multiple Iterations Are Commonplace (Information Architecture for the World Wide Web)
labeling hyperlinks: 5.3.3. Link Labels (Information Architecture for the World Wide Web)
pages for: 6.5.2.1. Apples and apples: indexing similar content types (Information Architecture for the World Wide Web)
searching and: 6.2.2. Searching and Browsing Are Integrated (Information Architecture for the World Wide Web)
6.3.2. Searching and Browsing Systems Should Be Closely Integrated (Information Architecture for the World Wide Web)
8.3. Scenarios (Information Architecture for the World Wide Web)
systems for: 4. Designing Navigation Systems (Information Architecture for the World Wide Web)
integrated elements of: 4.5. Integrated Navigation Elements (Information Architecture for the World Wide Web)
labels within: 5.3.1. Labels Within Navigation Systems (Information Architecture for the World Wide Web)
remote elements of: 4.6. Remote Navigation Elements (Information Architecture for the World Wide Web)
types of: 4.4. Types of Navigation Systems (Information Architecture for the World Wide Web)
Web browser features for: 4.1. Browser Navigation Features (Information Architecture for the World Wide Web)
Navigator (see Netscape Navigator)
1.1.3. Golden Threads (HTML & XHTML: The Definitive Guide)
NCSA Server software: 4.1.1. Popular Server Software (Web Design in a Nutshell)
ne (inequality) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
negative margins: 7.3.6. Negative Margin Values (Cascading Style Sheets: The Definitive Guide)
block-level elements: 8.2.2.4. Negative margins (Cascading Style Sheets: The Definitive Guide)
caution with: 7.3.6. Negative Margin Values (Cascading Style Sheets: The Definitive Guide)
browser support for: 7.3.6. Negative Margin Values (Cascading Style Sheets: The Definitive Guide)
floated elements and: 7.6.1.2. Negative margins and floating (Cascading Style Sheets: The Definitive Guide)
8.3.2.1. Negative margins (Cascading Style Sheets: The Definitive Guide)
11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
inline replaced elements and: 8.4.4.1. Adding box properties (Cascading Style Sheets: The Definitive Guide)
negative values in percentage colors: 3.1.2.1. Percentage colors (Cascading Style Sheets: The Definitive Guide)
NEGATIVE_INFINITY property (Number class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
(see also Infinity global property)
nested arrays: 11.3.2. Array Literals (ActionScript: The Definitive Guide)
comma delimiter and: Method (ActionScript: The Definitive Guide) 11.9.4. The join( )
concat( ) and: method (ActionScript: The Definitive Guide) 11.7.3.4. The concat( )
creating: 11.10. Multidimensional Arrays (ActionScript: The Definitive Guide)
nested loops: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
nested movie clip instances, referring to: 13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
nested movie clips, accessing: C.2. Controlling Movie Clips (ActionScript: The Definitive Guide)
nesting
content-based style tags: 4.4.17. Combining Content-Based Styles (HTML & XHTML: The Definitive Guide)
contextual style rules: 8.2.3. Contextual Selectors (HTML & XHTML: The Definitive Guide)
tags: 11.3.2. Nesting <frameset> Tags (HTML & XHTML: The Definitive Guide)
14.2.1. The <multicol> Tag (HTML & XHTML: The Definitive Guide)
HTML tags: 3.3.4. Proper and Improper Nesting (HTML & XHTML: The Definitive Guide)
language pseudo-classes and: 8.3.4.3. Nesting and language pseudo-classes (HTML & XHTML: The Definitive Guide)
layers (see layers)
lists: 7.4. Nesting Lists (HTML & XHTML: The Definitive Guide)
physical style tags: 4.5.18. Combining Physical Styles (HTML & XHTML: The Definitive Guide)
tables: 17.4.3.2. Building forms with nested tables (HTML & XHTML: The Definitive Guide)
XHTML documents, elements in: 16.3.1. Correctly Nested Elements (HTML & XHTML: The Definitive Guide)
nesting, shrinking text and: 11.2.6. The Incredible Shrinking Text! (Cascading Style Sheets: The Definitive Guide)
NetAid: 1.2. What you can do with sound on the Web (Designing Web Audio)
Netcraft: 4.1.1. Popular Server Software (Web Design in a Nutshell)
NetMechanic: 8.5. Tips on Good HTML Style (Web Design in a Nutshell)
NetObjects: 5.2.5. Beatnik's Rich Music Format (RMF) (Designing Web Audio)
Netscape
EMBED tag: 1.3. Two easy ways to add sound (Designing Web Audio)
guide to JavaScript's core language features: A.2. ECMA-262 Resources (ActionScript: The Definitive Guide)
guide to JavaScript's OOP: A.3. Object-Oriented Programming (ActionScript: The Definitive Guide)
Navigator, downloading MP3 files on: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
Netsite and Enterprise Server: 6.3.3.2. RealServer system requirements (Designing Web Audio)
Netscape Navigator: 1.1.3. Golden Threads (HTML & XHTML: The Definitive Guide)
Bitstream: 3.2.4. Embedded Fonts (Web Design in a Nutshell)
blinking support: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
color name support: 16.2.2. Color Name Cautions (Web Design in a Nutshell)
CSS implementations in: 1.3.2. Implementations (Cascading Style Sheets: The Definitive Guide)
disappearing styles: 11.2.10. Disappearing Styles (Cascading Style Sheets: The Definitive Guide)
feature overview: 1.2.3. Browser Features (Web Design in a Nutshell)
form element sizes: 15.6. Affecting the Appearance of Forms (Web Design in a Nutshell)
frame sizes in: 14.7.10. Frame Sizes in Netscape Navigator (Web Design in a Nutshell)
FTP via: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
GIF animation support: 23.3. Browser Support (Web Design in a Nutshell)
inline frames, faking: 14.7.5. Faking an <iframe> (Web Design in a Nutshell)
margin problems and: 11.2.3. Fighting Margin Problems with @import (Cascading Style Sheets: The Definitive Guide)
Mozilla and: 1.2.1.1. Server log analysis (Web Design in a Nutshell)
obtaining: 1.7.1.2. Browser software (HTML & XHTML: The Definitive Guide)
padding: 17.8.5. Making Backgrounds Behave in Navigator 4.x (Web Design in a Nutshell)
plug-ins: 5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
5.6.4. Embedding Other Document Types (HTML & XHTML: The Definitive Guide)
PNG image support: 21.3. Platform/Browser Support (Web Design in a Nutshell)
preferences for style sheets/JavaScript: 11.2.1. Making Styles Work (Cascading Style Sheets: The Definitive Guide)
proprietary HTML tags: D.2. Netscape Navigator Proprietary Tags (Web Design in a Nutshell)
style sheet support: 17.1.2. Disadvantages (Web Design in a Nutshell)
tables: 13.5.5. Collapsing Cells in Navigator (Web Design in a Nutshell)
coloring: 13.4.6. Coloring Tables (Web Design in a Nutshell)
Netscape Navigator 4.x
background color: 7.4.6. Borders: Known Issues (Cascading Style Sheets: The Definitive Guide)
background color, incorrect placement: 6.1.2.1. Real-world issues (Cascading Style Sheets: The Definitive Guide)
correcting: 11.2.5. Getting Full Content Backgrounds in Navigator (Cascading Style Sheets: The Definitive Guide)
block-level elements, borders and: 7.4.6. Borders: Known Issues (Cascading Style Sheets: The Definitive Guide)
bold text, preserving: 11.2.7. Preserving Boldness (Cascading Style Sheets: The Definitive Guide)
inline elements
borders and: 7.4.5. Borders and Inline Elements (Cascading Style Sheets: The Definitive Guide)
caution with: 7.4.6. Borders: Known Issues (Cascading Style Sheets: The Definitive Guide)
margins and: 7.3.8. Margins: Known Issues (Cascading Style Sheets: The Definitive Guide)
padding and: 7.5.4. Padding: Known Issues (Cascading Style Sheets: The Definitive Guide)
relative URLs and: 3.4. URLs (Cascading Style Sheets: The Definitive Guide)
styles, hiding: 11.2.2. Hiding Styles with @import (Cascading Style Sheets: The Definitive Guide)
network connection, RealServer: 6.3.3.2. RealServer system requirements (Designing Web Audio)
Network24.com: 5.3.7. Server performance and software quality (Designing Web Audio)
Neumann, Georg: 3.1.4. Compressors/limiters (Designing Web Audio)
Neumann microphones
NPR, use of: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
vintage, M49 and M50: 3.1.4. Compressors/limiters (Designing Web Audio)
Neumann U67 microphone: 3.1.4. Compressors/limiters (Designing Web Audio)
new operator: 5.11.3. The new Operator (ActionScript: The Definitive Guide)
creating arrays: 11.3.1. The Array Constructor (ActionScript: The Definitive Guide)
creating object instances: 12.2. Instantiating Objects (ActionScript: The Definitive Guide)
12.5.2.1. Creating members of a class (ActionScript: The Definitive Guide)
newline constant: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
news links: 11.7.3. Other Links (Web Design in a Nutshell)
news URLs: 6.2.6. The news URL (HTML & XHTML: The Definitive Guide)
newsgroups: 6.2.6. The news URL (HTML & XHTML: The Definitive Guide)
next document relationship: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
nextFrame( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
nextScene( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
nextSibling property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
N2K Entertainment: 6.6. Case study: N2K streams live M[DBLENTITY:ouml]tley Cr[DBLENTITY:uuml]e concert (Designing Web Audio)
NNTP links: 11.7.3. Other Links (Web Design in a Nutshell)
nntp URLs: 6.2.7. The nntp URL (HTML & XHTML: The Definitive Guide)
(no-break) tag: 10.1.3. Spacing and Positioning (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
<nobr> tags
centered content and: 4.7.6. The <center> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
nodeName property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
nodes, object
accessing child nodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding a new previous sibling: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
adding new nodes to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating
copy of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
element nodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
text nodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
deleting from object hierarchy: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
moving nodes between documents: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
name of current node: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
reference to
immediate ancestor of node: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
next node: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
previous node: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
storing element attributes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
types of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
value of current node: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLnode class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
nodeType property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
nodeValue property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
nohref attribute ( ): 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
6.5.4.4. The nohref attribute (HTML & XHTML: The Definitive Guide)
noise
studio reference speakers: 3.1.5. Studio reference speakers (Designing Web Audio)
waveform: 2.1. The science of sound (Designing Web Audio)
noise floor: 4.1.2. Avoiding gaps between edited sections (Designing Web Audio)
Non-dithering Palettes: 3.3.2. Color in Browsers ( The Web Palette) (Web Design in a Nutshell)
non-representational labeling: 5.6. Non-Representational Labeling Systems (Information Architecture for the World Wide Web)
nondestructive editing: 4.2. Digital effects (Designing Web Audio)
nonlocal variables: 2.5.8. Local Variables (ActionScript: The Definitive Guide)
nonrendering text: 13.5.5.1. Nonrendering text (Web Design in a Nutshell)
nonreplaced elements: 8.4. Inline Elements (Cascading Style Sheets: The Definitive Guide)
nonterminals: 15.4.2. Multiple Grammar Rules (HTML & XHTML: The Definitive Guide)
noresize attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.4.3. Disabling Resize (Web Design in a Nutshell)
noresize attribute ( ): 11.4.1.3. The noresize attribute (HTML & XHTML: The Definitive Guide)
Normal Mode (Actions panel): 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
not backward compatible: 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
switching from Expert Mode: 16.1.1.3. Setting the editing mode (ActionScript: The Definitive Guide)
normal.cur, Winamp: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
normalization: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
compressors: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
dynamic range: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
low bit-depth audio: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
peak limiters: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
SoundEdit 16: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
noshade attribute: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.4.4. Turning Off 3-D Shading (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
noshade attribute ( ): 5.1.1.2. The noshade attribute (HTML & XHTML: The Definitive Guide)
Not-a-Number property (see NaN)
not-equal-to (!=) operator (Flash 5): operators (ActionScript: The Definitive Guide) 4.6.2.1. Using the equality (==) and inequality (!=)
5.4.4. The Inequality Operator (ActionScript: The Definitive Guide)
not-equal-to (ne) operator (Flash 4): 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
not (logical NOT) operator (Flash 4): 14.4. Reserved Words (ActionScript: The Definitive Guide)
not visited link state: 8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
notab attribute: 6.5.4.5. The notab, taborder, and tabindex attributes (HTML & XHTML: The Definitive Guide)
9.9.4. The tabindex, taborder, and notab Attributes (HTML & XHTML: The Definitive Guide)
12.2.1.12. The tabindex and notab attributes (HTML & XHTML: The Definitive Guide)
NOTATION_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
note editing: 10.3.2. Editing a pre-existing MIDI file (Designing Web Audio)
Nothing disposal method: 23.5.3. Disposal Methods (Web Design in a Nutshell)
nowrap attribute: 13.1. Summary of Table Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
10.2.1.10. The valign and nowrap attributes (HTML & XHTML: The Definitive Guide)
10.2.3.5. The nowrap attribute (HTML & XHTML: The Definitive Guide)
and: 10.2.4.7. The nowrap attribute (HTML & XHTML: The Definitive Guide)
tags: 4.1.1.2. The nowrap attribute (HTML & XHTML: The Definitive Guide)
NTT DoCoMo, wireless communication system creator: 32.1.1. The Wireless Environment (Web Design in a Nutshell)
null datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
4.9. Null (ActionScript: The Definitive Guide)
equality rules for: 5.4.1. Primitive Datatype Equality (ActionScript: The Definitive Guide)
Nullsoft: 8.6. Start your own MP3 radio station (Designing Web Audio)
Num Lock key and isToggled( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Number class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
number datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
4.1. The Number Type (ActionScript: The Definitive Guide)
converting datatypes to: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
function (ActionScript: The Definitive Guide) 3.4.2.4. Converting to a number with the Number( )
5.3. Arithmetic Operators (ActionScript: The Definitive Guide)
converting strings to: 4.3.1. Integer Literals (ActionScript: The Definitive Guide)
equality rules for: 5.4.1. Primitive Datatype Equality (ActionScript: The Definitive Guide)
floating-point literals: 4.3.2. Floating-Point Literals (ActionScript: The Definitive Guide)
Infinity/Infinity global properties: 4.3.3.3. Infinity and negative infinity: Infinity and -Infinity (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
integer literals: 4.3.1. Integer Literals (ActionScript: The Definitive Guide)
maximum/minimum values: 4.3.3.2. Minimum and maximum allowed values: MIN_VALUE and MAX_VALUE (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
NaN (Not-a-Number): 4.3.3.1. Not-a-Number: NaN (ActionScript: The Definitive Guide)
using operators: 4.4.1. Using Operators (ActionScript: The Definitive Guide)
Number( ) global function: function (ActionScript: The Definitive Guide) 3.4.2.4. Converting to a number with the Number( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
number keywords: 5.2.1. How Weights Work (Cascading Style Sheets: The Definitive Guide)
numbered lists (CSS): 17.5.4. Classification Properties (Web Design in a Nutshell)
numbered (ordered) lists: 2.9.1. Unordered, Ordered, and Definition Lists (HTML & XHTML: The Definitive Guide)
7.2. Ordered Lists (HTML & XHTML: The Definitive Guide)
list marker style properties: 8.4.7.1. The list-style-image property (HTML & XHTML: The Definitive Guide)
nesting: 7.4.2. Nested Ordered Lists (HTML & XHTML: The Definitive Guide)
numbering style: 7.3.1.1. The type attribute (HTML & XHTML: The Definitive Guide)
using appropriately: 7.6. Appropriate List Usage (HTML & XHTML: The Definitive Guide)
numbering, automatic: 10.4.1. Automatic Numbering (Cascading Style Sheets: The Definitive Guide)
Number.MAX_VALUE property: 4.3.3.2. Minimum and maximum allowed values: MIN_VALUE and MAX_VALUE (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Number.MIN_VALUE property: 4.3.3.2. Minimum and maximum allowed values: MIN_VALUE and MAX_VALUE (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Number.NaN property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Number.NEGATIVE_INFINITY property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
(see also Infinity global property)
Number.POSITIVE_INFINITY property 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
numbers
absolute value, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
comparing: 5.5. The Comparison Operators (ActionScript: The Definitive Guide)
determining an angle based on a point: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
larger of two numbers, determining: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
natural logarithm, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
raising to a specified power: 4.3.2. Floating-Point Literals (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
random, generating: 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rounding: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
down to previous integer: 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
up to next integer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
smaller of two numbers, determining: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
square root, calculating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
truncating decimal portion of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Number.toString( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
numerators: 5.3.6. Division (ActionScript: The Definitive Guide)
numeric literals: 4.3. Numeric Literals (ActionScript: The Definitive Guide)
numeric RGB equivalents, list of: 3.1.2.2. Going by numbers (Cascading Style Sheets: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: O

Object Actions (Actions panel title): 16.1. The Actions Panel (ActionScript: The Definitive Guide)
object attribute: Appendix B. List of Attributes (Web Design in a Nutshell)
object attribute ( ): 12.2.3.10. The object attribute (HTML & XHTML: The Definitive Guide)
Object class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
simulating global variables: 2.5.5.1. Scenario 4 (ActionScript: The Definitive Guide)
12.5.4.4. The end of the inheritance chain (ActionScript: The Definitive Guide)
object classes: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
12.5.1. Object Classes (ActionScript: The Definitive Guide)
attaching event handlers to: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
event handler scope: 10.7.3. Other Object Event Handler Scope (ActionScript: The Definitive Guide)
Object( ) constructor: 12.2. Instantiating Objects (ActionScript: The Definitive Guide)
object datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
vs. movieclip datatype: 15.4. The movieclip Datatype (ActionScript: The Definitive Guide)
object embedding
alternate content: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.5.2.2. <noembed> (Web Design in a Nutshell)
<embed> tag: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.5.1. The <object> Tag (Web Design in a Nutshell)
12.5.2. The <embed> Tag (Web Design in a Nutshell)
parameters for objects: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.6.5.2. Adding applets with <applet> (Web Design in a Nutshell)
object hierarchy
deleting nodes from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
parseXML( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
traversing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLnode class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
object initializers ({}): 1.2.4. Modular Code (Functions) (ActionScript: The Definitive Guide)
6.2.1. Statement Blocks (ActionScript: The Definitive Guide)
object literals: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
object methods
fixed scope of: 15.3. Advanced Function Scope Issues (ActionScript: The Definitive Guide)
with statement and: 6.3.9. The with Statement (ActionScript: The Definitive Guide)
object model (HTML v4.0): 12.1.1. The Object Model (HTML & XHTML: The Definitive Guide)
object nodes (see nodes, object)
object-oriented programming (OOP): 12. Objects and Classes (ActionScript: The Definitive Guide)
classes and: 12.5. Classes and Object-Oriented Programming (ActionScript: The Definitive Guide)
introduction to: 12. Objects and Classes (ActionScript: The Definitive Guide)
polymorphism: 12.5.4.2. Polymorphism (ActionScript: The Definitive Guide)
resources: A.3. Object-Oriented Programming (ActionScript: The Definitive Guide)
summary: 12.5.5. Object-Oriented Programming Summary (ActionScript: The Definitive Guide)
superclasses and subclasses: 12.5.4. Superclasses and Subclasses (ActionScript: The Definitive Guide)
object properties: 12. Objects and Classes (ActionScript: The Definitive Guide)
12.1. The Anatomy of an Object (ActionScript: The Definitive Guide)
assigning event handlers using: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
customizing: 12.5.2.2. Assigning custom properties to the objects of a class (ActionScript: The Definitive Guide)
dot (.) operator and: 5.11.6. The dot Operator (ActionScript: The Definitive Guide)
12.3.1. Referring to Properties (ActionScript: The Definitive Guide)
for-in loops and: 8.5. The for-in Loop (ActionScript: The Definitive Guide)
12.3.2. Using a for-in Loop to Access an Object's Properties (ActionScript: The Definitive Guide)
function scope of: 15.3. Advanced Function Scope Issues (ActionScript: The Definitive Guide)
inheritance (see inherited properties)
resolving references using scope chain: 9.7.1. The Scope Chain (ActionScript: The Definitive Guide)
retrieving values of: 12.4. Methods (ActionScript: The Definitive Guide)
with statement and: 6.3.9. The with Statement (ActionScript: The Definitive Guide)
object-property ([]) operator: 5.11.5. Array-Element/Object-Property Operator (ActionScript: The Definitive Guide)
referring to object properties: 12.3.1. Referring to Properties (ActionScript: The Definitive Guide)
<object> tags: 12.2. Embedded Content (HTML & XHTML: The Definitive Guide)
Object.constructor property: 12.5.3.3. The constructor property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Object.__proto__ property: 12.5.3.4. The _ _ proto_ _ property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
objects: 12. Objects and Classes (ActionScript: The Definitive Guide)
anatomy of: 12.1. The Anatomy of an Object (ActionScript: The Definitive Guide)
arrays as: 11.9.6. Arrays as Objects (ActionScript: The Definitive Guide)
behaviors of: 12. Objects and Classes (ActionScript: The Definitive Guide)
belonging to superclasses: 12.5.4.3. Determining whether an object belongs to a superclass (ActionScript: The Definitive Guide)
built-in: 12.6.2. Built-in Objects (ActionScript: The Definitive Guide)
20.3. Built-in Classes and Objects (ActionScript: The Definitive Guide)
encapsulating behaviors: 12. Objects and Classes (ActionScript: The Definitive Guide)
functions as: 9.11. Functions as Objects (ActionScript: The Definitive Guide)
instances: 12. Objects and Classes (ActionScript: The Definitive Guide)
instantiating: 12.2. Instantiating Objects (ActionScript: The Definitive Guide)
interfaces: 12. Objects and Classes (ActionScript: The Definitive Guide)
methods and: 12.4. Methods (ActionScript: The Definitive Guide)
vs. arrays: 12.1. The Anatomy of an Object (ActionScript: The Definitive Guide)
XML documents, manipulating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
objects (DOM): 29.3. The Document Object Model (Web Design in a Nutshell)
Object.toString( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Object.valueOf( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
oblique font style: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
oblique text: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
octal (base-8) integers: 4.3.1. Integer Literals (ActionScript: The Definitive Guide)
octothorpe (#) preceding ID selectors: 2.3.2. ID Selectors (Cascading Style Sheets: The Definitive Guide)
OFE (Open Financial Exchange): 30.5.2. Other XML Applications (Web Design in a Nutshell)
offset (see alignment)
offset values for colors: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
offsets (see side-offset properties)
(ordered list) tag: 10.1.4. Lists (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
omitting HTML tags: 3.3.6. Omitting Tags (HTML & XHTML: The Definitive Guide)
omnidirectional microphones: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
OmniHTTPd, HTTP server software: 8.5.1. Creating your own MP3 site (Designing Web Audio)
OMS (Open Music System): 11.4. Using the Beatnik Editor (Designing Web Audio)
on (button event handler)
button events for: 10.8. Button Events (ActionScript: The Definitive Guide)
defining: 10.5. Event Handler Syntax (ActionScript: The Definitive Guide)
on-demand audio archives: 1.2. What you can do with sound on the Web (Designing Web Audio)
on-screen text fields (see text fields)
onAbort attribute: 5.2.6.16. The name, onAbort, onError, onLoad and other event attributes (HTML & XHTML: The Definitive Guide)
12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
onAbort event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onBlur attribute: 12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
onBlur event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onChange attribute: 12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
12.3.3.4. Document events (HTML & XHTML: The Definitive Guide)
onChange event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onClick attribute: 12.3.3.2. The mouse-related events (HTML & XHTML: The Definitive Guide)
onClick command (JavaScript): 14.7.4.2. Loading two frames with JavaScript (Web Design in a Nutshell)
onClick event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onClipEvent (movie clip event handler)
clip events for: 10.9. Movie Clip Events Overview (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
defining: 10.5. Event Handler Syntax (ActionScript: The Definitive Guide)
onClose event handler (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onConnect event handler (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onData( ) event handler
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onDblClick attribute: 12.3.3.2. The mouse-related events (HTML & XHTML: The Definitive Guide)
onDblClick event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
one-line comments: 14.3. Comments (ActionScript: The Definitive Guide)
onError attribute: 5.2.6.16. The name, onAbort, onError, onLoad and other event attributes (HTML & XHTML: The Definitive Guide)
12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
onError event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onfocus attribute: B. List of Attributes (Web Design in a Nutshell)
onFocus event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onKeyDown attribute: 12.3.3.3. The keyboard events (HTML & XHTML: The Definitive Guide)
onKeyDown event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onKeyPress attribute: 12.3.3.3. The keyboard events (HTML & XHTML: The Definitive Guide)
onKeyPress event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onKeyRelease attribute: 12.3.3.3. The keyboard events (HTML & XHTML: The Definitive Guide)
onkeyup attribute: B. List of Attributes (Web Design in a Nutshell)
onKeyUp event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onLoad attribute: 5.2.6.16. The name, onAbort, onError, onLoad and other event attributes (HTML & XHTML: The Definitive Guide)
12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
12.3.3.4. Document events (HTML & XHTML: The Definitive Guide)
onLoad( ) event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onLoad event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onmousedown attribute: B. List of Attributes (Web Design in a Nutshell)
onMouseDown event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onMouseMove attribute: 12.3.3.2. The mouse-related events (HTML & XHTML: The Definitive Guide)
onMouseOut attribute: 6.5.4.6. The event attributes (HTML & XHTML: The Definitive Guide)
12.3.3.2. The mouse-related events (HTML & XHTML: The Definitive Guide)
onMouseOut event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
28.3.4.1. Simple rollovers (Web Design in a Nutshell)
onmouseover attribute: B. List of Attributes (Web Design in a Nutshell)
onMouseOver event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
28.3.4.1. Simple rollovers (Web Design in a Nutshell)
changing two images at once: 28.3.4.2. Changing two images at once (Web Design in a Nutshell)
onMouseUp attribute: 12.3.3.2. The mouse-related events (HTML & XHTML: The Definitive Guide)
onMouseUp event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onReset attribute: 9.2.8. The Event Attributes (HTML & XHTML: The Definitive Guide)
12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
12.3.3.4. Document events (HTML & XHTML: The Definitive Guide)
onReset event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onselect attribute: B. List of Attributes (Web Design in a Nutshell)
onSubmit attribute: 9.2.8. The Event Attributes (HTML & XHTML: The Definitive Guide)
12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
12.3.3.4. Document events (HTML & XHTML: The Definitive Guide)
onSubmit event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onUnload attribute: 12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
12.3.3.4. Document events (HTML & XHTML: The Definitive Guide)
onUnload event handler (JavaScript): 28.2.2. Event Handlers (Web Design in a Nutshell)
onXML event handler (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
OOP (see object-oriented programming)
opacity in movie clips, specifying: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Opcode Systems: 10.2.1. Making a MIDI jukebox (Designing Web Audio)
Open Financial Exchange (OFE): 30.5.2. Other XML Applications (Web Design in a Nutshell)
Open Music System: 10.3.4.1. Creating your own MIDI file (Designing Web Audio)
open organization schemes: 3.2.1.2.3. Audience-specific (Information Architecture for the World Wide Web)
Open Software Description (OSD): 30.5.2. Other XML Applications (Web Design in a Nutshell)
OpenSWF information center: A.4. SWF File Format (ActionScript: The Definitive Guide)
OpenType fonts: 3.2.4.2. OpenType (for Internet Explorer) (Web Design in a Nutshell)
openWin( ) JavaScript function: 28.2.1. Functions (Web Design in a Nutshell)
Opera browser
1.1.2.4. Opera (Web Design in a Nutshell)
CSS implementation in: 1.3.2. Implementations (Cascading Style Sheets: The Definitive Guide)
HTML style, guidelines for: 8.5. Tips on Good HTML Style (Web Design in a Nutshell)
padding and: 7.5.4. Padding: Known Issues (Cascading Style Sheets: The Definitive Guide)
padding values, negative: 7.5. Padding (Cascading Style Sheets: The Definitive Guide)
WAP and WML emulators: 32.2.5. WAP Emulators (Web Design in a Nutshell)
operands: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
5.1.1. Operators and Expressions (ActionScript: The Definitive Guide)
of different datatypes, comparing: 5.4.3. Equality and Datatype Conversion (ActionScript: The Definitive Guide)
number of: 5.1.2. Number of Operands (ActionScript: The Definitive Guide)
operating system, colors and: 10.5.2. Colors (Cascading Style Sheets: The Definitive Guide)
operators: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
5. Operators (ActionScript: The Definitive Guide)
arithmetic: 5.3. Arithmetic Operators (ActionScript: The Definitive Guide)
associativity of: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
bitwise: 15.2. Bitwise Programming (ActionScript: The Definitive Guide)
compound assignment: 5.2.1. Combining Operations with Assignment (ActionScript: The Definitive Guide)
datatypes and: 5.1.5. Datatypes and Operators (ActionScript: The Definitive Guide)
expressions and: 5.1.1. Operators and Expressions (ActionScript: The Definitive Guide)
Flash 4 vs. Flash 5: 3.4.4. Flash 4-to-Flash 5 Datatype Conversion (ActionScript: The Definitive Guide)
number datatype and: 4.4.1. Using Operators (ActionScript: The Definitive Guide)
precedence of: 4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
optimization
hard drive, utilities for: A.3.4. Disk repair and optimization utilities (Designing Web Audio)
sound for the Web: 2.2. Digital audio demystified (Designing Web Audio)
optimized code, tips for writing: 19.1.4. The Bandwidth Profiler (ActionScript: The Definitive Guide)
optimizing audio files: 24.3.3. Optimizing for the Web (Web Design in a Nutshell)
optimizing images
animated GIFs: 23.6. Optimizing Animated GIFs (Web Design in a Nutshell)
GIF images: 19.8. Minimizing GIF File Sizes (Web Design in a Nutshell)
JPEG images: 20.6. Minimizing JPEG File Size (Web Design in a Nutshell)
multipart images in tables: 13.8. Multipart Images in Tables (Web Design in a Nutshell)
PNG images: 21.8. PNG Optimization Strategies (Web Design in a Nutshell)
optimum loop length: 1.7.3.3. Optimum loop length (Designing Web Audio)
options, text field: 18.3. Text Field Options (ActionScript: The Definitive Guide)
options value for WML type attribute: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
or (logical OR) operator (Flash 4): 14.4. Reserved Words (ActionScript: The Definitive Guide)
Oracle: 5.2.7. Liquid Audio (Designing Web Audio)
Oratrix GRiNS: 27.2. SMIL Players (Web Design in a Nutshell)
ord( ) (Flash 4): 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
order sorting: 2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
ordered lists: 7.7.1. Types of Lists (Cascading Style Sheets: The Definitive Guide)
7.7.2. List Item Images (Cascading Style Sheets: The Definitive Guide)
Lists (Web Design in a Nutshell) 10.6.2. Ordered (Numbered)
CSS properties for: 17.5.4. Classification Properties (Web Design in a Nutshell)
nesting: 10.6.4.2. Nesting ordered lists (Web Design in a Nutshell)
tag and: 10.1.4. Lists (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
ordered (numbered) lists: 2.9.1. Unordered, Ordered, and Definition Lists (HTML & XHTML: The Definitive Guide)
7.2. Ordered Lists (HTML & XHTML: The Definitive Guide)
list marker style properties: 8.4.7.1. The list-style-image property (HTML & XHTML: The Definitive Guide)
nesting: 7.4.2. Nested Ordered Lists (HTML & XHTML: The Definitive Guide)
numbering style: 7.3.1.1. The type attribute (HTML & XHTML: The Definitive Guide)
using appropriately: 7.6. Appropriate List Usage (HTML & XHTML: The Definitive Guide)
organization schemes: 3.2. Organizing Web Sites and Intranets (Information Architecture for the World Wide Web)
alphabetical: 3.2.1.1.1. Alphabetical (Information Architecture for the World Wide Web)
ambiguous: 3.2.1.2. Ambiguous organization schemes (Information Architecture for the World Wide Web)
audience-specific: 3.2.1.2.3. Audience-specific (Information Architecture for the World Wide Web)
3.2.2.4. The relational database model: A bottom-up approach (Information Architecture for the World Wide Web)
6.5.2.2. Who's going to care? Indexing for specific audiences (Information Architecture for the World Wide Web)
chronological: 3.2.1.1.2. Chronological (Information Architecture for the World Wide Web)
6.5.2.4. Yesterday's news: Indexing recent content (Information Architecture for the World Wide Web)
exact: 3.2.1.1. Exact organization schemes (Information Architecture for the World Wide Web)
geographical: 3.2.1.1.3. Geographical (Information Architecture for the World Wide Web)
hybrid: 3.2.1.3. Hybrid schemes (Information Architecture for the World Wide Web)
metaphor-driven: 3.2.1.2.4. Metaphor-driven (Information Architecture for the World Wide Web)
for search results: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
selective indexes for (search zones): 6.5.2. Search Zones: Selectively Indexing the Right Content (Information Architecture for the World Wide Web)
task-oriented: 3.2.1.2.2. Task-oriented (Information Architecture for the World Wide Web)
topical: 3.2.1.2.1. Topical (Information Architecture for the World Wide Web)
6.5.2.3. Drilling down: Indexing by subject (Information Architecture for the World Wide Web)
organization structures: 3.2. Organizing Web Sites and Intranets (Information Architecture for the World Wide Web)
3.2.2. Organization Structures (Information Architecture for the World Wide Web)
grouping (chunking) content: 7.5. Grouping Content (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.2. Content Mapping (Information Architecture for the World Wide Web)
hierarchies (top-down): 3.2.2.1. The hierarchy: A top-down approach (Information Architecture for the World Wide Web)
depth of: 3.2.2.2. Designing hierarchies (Information Architecture for the World Wide Web)
navigation and: 4.3. Improving Flexibility (Information Architecture for the World Wide Web)
table of contents: 4.6.1. The Table of Contents (Information Architecture for the World Wide Web)
hypertext: 3.2.2.3. Hypertext (Information Architecture for the World Wide Web)
4.3. Improving Flexibility (Information Architecture for the World Wide Web)
metaphors for: 8.2. Metaphor Exploration (Information Architecture for the World Wide Web)
relational database model (bottom-up): 3.2.2.4. The relational database model: A bottom-up approach (Information Architecture for the World Wide Web)
organization system: 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
organizing information: 3. Organizing Information (Information Architecture for the World Wide Web)
coherent systems for: 3.3. Creating Cohesive Organization Systems (Information Architecture for the World Wide Web)
conceptual design: 8. Conceptual Design (Information Architecture for the World Wide Web)
blueprints: 8.4. High-Level Architecture Blueprints (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
brainstorming: 8.1. Brainstorming with White Boards and Flip Charts (Information Architecture for the World Wide Web)
metaphors for: 8.2. Metaphor Exploration (Information Architecture for the World Wide Web)
page mockups: 8.5. Architectural Page Mockups (Information Architecture for the World Wide Web)
site prototypes: 8.7. Web-Based Prototypes (Information Architecture for the World Wide Web)
controlled vocabulary: 3.2.2.5. Designing databases (Information Architecture for the World Wide Web)
5.4.1.3. Controlled vocabularies and thesauri (Information Architecture for the World Wide Web)
5.5.1. The Basics (Information Architecture for the World Wide Web)
displaying search results: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
grouping with index cards: 7.5. Grouping Content (Information Architecture for the World Wide Web)
HFHS case study: 10.2.1. Org Chart as Default Architecture (Information Architecture for the World Wide Web)
hierarchies: 3.2.2.1. The hierarchy: A top-down approach (Information Architecture for the World Wide Web)
by relevance: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
schemes of (see organization schemes)
structure of (see organization structures)
style guides: 9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
origin image: 6.2.3.3. Length values (Cascading Style Sheets: The Definitive Guide)
origin sorting: 2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
origins: 2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
ornamental sounds: 1.7.3.2. Good ambient loop mixing (Designing Web Audio)
orphans property: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
OSD (Open Software Description): 30.5.2. Other XML Applications (Web Design in a Nutshell)
outline properties: 10.5.3. Outlines (Cascading Style Sheets: The Definitive Guide)
output plug-ins, MP3: 8.3.5. Plug-ins (Designing Web Audio)
Output window: 1.1.2. Say Hi to Flash (ActionScript: The Definitive Guide)
error messages sent to: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
trace( ) and: 1.1.4. The Wizard Behind the Curtain (the Interpreter) (ActionScript: The Definitive Guide)
1.2.3.2. Repeating tasks using loops (ActionScript: The Definitive Guide)
outset borders: 8.4.6.5. The border-style property (HTML & XHTML: The Definitive Guide)
outsiders, thinking like: 2.2.1. Thinking Like an Outsider (Information Architecture for the World Wide Web)
overflow: 9.1.4. Content Overflow and Clipping (Cascading Style Sheets: The Definitive Guide)
overflow-clip property: 9.1.4.2. Overflow clipping (Cascading Style Sheets: The Definitive Guide)
overflow clipping: 9.1.4.2. Overflow clipping (Cascading Style Sheets: The Definitive Guide)
overflow conditions: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
overflow property: 9.1.4.1. Overflow (Cascading Style Sheets: The Definitive Guide)
overflow property (CSS): 17.6.4. Overflow (Web Design in a Nutshell)
overlapping
elements, altering: 9.5. Stacking Positioned Elements (Cascading Style Sheets: The Definitive Guide)
floated elements, preventing: 8.3.1. Floating: The Details (Cascading Style Sheets: The Definitive Guide)
margins (see collapsing margins)
text, preventing: 8.4.3. Managing the Line Height of Inline Elements (Cascading Style Sheets: The Definitive Guide)
overlined text: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
overlining: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
8.4.5.4. The text-decoration property (HTML & XHTML: The Definitive Guide)
overriding previously declared values: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: P

<p> (paragraph) tag: 8.2.1. Containers (Web Design in a Nutshell)
10.1.1. Paragraphs and Headings (Block-Level Elements) (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
multiple, being ignored by browsers: 8.3. Information Browsers Ignore (Web Design in a Nutshell)
text, formatting: 10.1.1. Paragraphs and Headings (Block-Level Elements) (Web Design in a Nutshell)
WML: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
<p> tags: 3.3.7. Ignored or Redundant Tags (HTML & XHTML: The Definitive Guide)
4.1.2. The <p> Tag (HTML & XHTML: The Definitive Guide)
package keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
packets: 5. Introduction to Streaming Media (Designing Web Audio)
padding (see margins)
7.5. Padding (Cascading Style Sheets: The Definitive Guide)
10.2.1.7. The cellpadding attribute (HTML & XHTML: The Definitive Guide)
background and: 7.5. Padding (Cascading Style Sheets: The Definitive Guide)
inline elements and: 7.5.3. Padding and Inline Elements (Cascading Style Sheets: The Definitive Guide)
vs. margins: 7.2. Margins or Padding? (Cascading Style Sheets: The Definitive Guide)
percentage values and: 7.5.1. Percentage Values and Padding (Cascading Style Sheets: The Definitive Guide)
single-side: 7.5.2. Single-Side Padding (Cascading Style Sheets: The Definitive Guide)
padding-bottom property: 7.5.2. Single-Side Padding (Cascading Style Sheets: The Definitive Guide)
8.4.6.11. The padding properties (HTML & XHTML: The Definitive Guide)
padding-left property: 7.5.2. Single-Side Padding (Cascading Style Sheets: The Definitive Guide)
8.4.6.11. The padding properties (HTML & XHTML: The Definitive Guide)
padding properties: 17.5.2. Box Properties (Web Design in a Nutshell)
17.8.5. Making Backgrounds Behave in Navigator 4.x (Web Design in a Nutshell)
padding property: 7.5. Padding (Cascading Style Sheets: The Definitive Guide)
padding-right property: 7.5.2. Single-Side Padding (Cascading Style Sheets: The Definitive Guide)
8.4.6.11. The padding properties (HTML & XHTML: The Definitive Guide)
padding-top property: 7.5.2. Single-Side Padding (Cascading Style Sheets: The Definitive Guide)
8.4.6.11. The padding properties (HTML & XHTML: The Definitive Guide)
page-break-after property: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
page-break-before property: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
page-break-inside property: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
Page Down (see PGDN)
page inventory: 9.3. Web Page Inventory (Information Architecture for the World Wide Web)
page layout: 2.6. Text (HTML & XHTML: The Definitive Guide)
9.11.5. Good Form, Old Chap (HTML & XHTML: The Definitive Guide)
(see also format)
alignment (see alignment)
columns: 14.2. Multicolumn Layout (HTML & XHTML: The Definitive Guide)
content vs. appearance: 1.5.1. Content Versus Appearance (HTML & XHTML: The Definitive Guide)
designing for your audience: 17.1.1. Design for Your Audience (HTML & XHTML: The Definitive Guide)
forms: 9.11.5. Good Form, Old Chap (HTML & XHTML: The Definitive Guide)
17.4.3. Better Forms Layout (HTML & XHTML: The Definitive Guide)
frames: 11.3. Frame Layout (HTML & XHTML: The Definitive Guide)
HTML tags for: 4.7. Precise Spacing and Layout (HTML & XHTML: The Definitive Guide)
layers: 14.3. Layers (HTML & XHTML: The Definitive Guide)
multiple columns: 17.4.1. Multicolumn Pages (HTML & XHTML: The Definitive Guide)
style sheets (see styles)
tables (see tables)
whitespace (see whitespace)
wrapping text (see wrapping text)
page model: 4.5.2.2. The page model (Information Architecture for the World Wide Web)
page size: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
Page Up (see PGUP)
paged media: 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
PageTunes: 10.2.2. Add a bit of spice to your site (Designing Web Audio)
Paint Shop Pro (JASC): 19.5. Tools Overview (Web Design in a Nutshell)
20.5. Creating JPEGs (Web Design in a Nutshell)
23.4.1. Applications That Include GIF Animation Tools (Web Design in a Nutshell)
palette attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.2.4.4. The palette attribute (HTML & XHTML: The Definitive Guide)
palettes
GIF animation and: 23.5.4. Color Palette (Web Design in a Nutshell)
grayscale (see grayscale)
web-safe (see Web Palette)
palm-top computers: 2.5.2. Hand-held Devices (Web Design in a Nutshell)
panning mechanisms: 9.1.4.1. Overflow (Cascading Style Sheets: The Definitive Guide)
panning, sound: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
panoramic images: 5.2.3. QuickTime (Designing Web Audio)
Pantone ColorWeb Pro: 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
par tag, SMIL: 7.2.2. Establishing a timeline (Designing Web Audio)
paragraph breaks (HTML support in text fields): 18.5.5. <P> (Paragraph Break) (ActionScript: The Definitive Guide)
paragraphs: 2.6.2.1. Divisions, paragraphs, and line breaks (HTML & XHTML: The Definitive Guide)
4.1.2. The <p> Tag (HTML & XHTML: The Definitive Guide)
identing with: 14.1.1.1. Creating horizontal space (HTML & XHTML: The Definitive Guide)
indenting: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
line breaks and: 10.2.1. Paragraphs and Line Breaks (Web Design in a Nutshell)
text, formatting: 10.1.1. Paragraphs and Headings (Block-Level Elements) (Web Design in a Nutshell)
parameter entities, XML: 15.3.2. Entities (HTML & XHTML: The Definitive Guide)
parameters: 1.1.5. Extra Info Required (Arguments) (ActionScript: The Definitive Guide)
accessibility of statements to: 9.7. Function Scope (ActionScript: The Definitive Guide)
accessing excess values with arguments object: 9.8.1. Number of Parameters (ActionScript: The Definitive Guide)
clip: 16.8.1. Building a Smart Clip with a Standard Interface (ActionScript: The Definitive Guide)
creating functions with: 9.3.1. Creating Functions with Parameters (ActionScript: The Definitive Guide)
defining: 9.3.1. Creating Functions with Parameters (ActionScript: The Definitive Guide)
invoking functions with: 9.3.2. Invoking Functions with Parameters (ActionScript: The Definitive Guide)
number of: 9.8.1. Number of Parameters (ActionScript: The Definitive Guide)
primitive vs. composite values: 9.8.3. Primitive Versus Composite Parameter Values (ActionScript: The Definitive Guide)
retrieving values from arguments array: 9.8.2.1. Retrieving parameter values from the arguments array (ActionScript: The Definitive Guide)
vs. arguments: 9.3.2. Invoking Functions with Parameters (ActionScript: The Definitive Guide)
parameters for applets/objects: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.6.5.2. Adding applets with <applet> (Web Design in a Nutshell)
parameters, form: 9.2.4.2. Passing parameters explicitly (HTML & XHTML: The Definitive Guide)
9.12.2.1. Using named parameters with GET applications (HTML & XHTML: The Definitive Guide)
Parameters pane (Actions panel): 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
parametric interfaces
equalizers: 4.3.3. Equalization: customizing your sound (Designing Web Audio)
parent document relationship: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
_parent property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
accessing variables on different timelines: 2.5.6.1. The _root and _ parent properties (ActionScript: The Definitive Guide)
not available in main timeline: 13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
referring to current clip: 13.1. The "Objectness" of Movie Clips (ActionScript: The Definitive Guide)
13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
_parent target: 14.5.2. Reserved target names (Web Design in a Nutshell)
11.7.2. Special Targets (HTML & XHTML: The Definitive Guide)
parentheses ( )
assigning vs. invoking methods: 12.4. Methods (ActionScript: The Definitive Guide)
function call operator: 5.11.8. The Function Call Operator (ActionScript: The Definitive Guide)
9.2. Running Functions (ActionScript: The Definitive Guide)
12.4. Methods (ActionScript: The Definitive Guide)
grouping operator: 5.8. The Grouping Operator (ActionScript: The Definitive Guide)
operator precedence and: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
parentNode property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
parents: 2.5. Structure (Cascading Style Sheets: The Definitive Guide)
Paris Direct X application: 6.3. Professional webcasting (Designing Web Audio)
parsed and unparsed entities, XML: 15.3.2. Entities (HTML & XHTML: The Definitive Guide)
parseFloat( ) global function: functions (ActionScript: The Definitive Guide) 3.4.2.6. Converting to a number using the parseInt( ) and parseFloat( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
parseInt( ) global function: functions (ActionScript: The Definitive Guide) 3.4.2.6. Converting to a number using the parseInt( ) and parseFloat( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
parseXML( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
password input fields: 9.5.1.2. Masked text controls (HTML & XHTML: The Definitive Guide)
Password option in text fields: 18.3.1. Line Display (ActionScript: The Definitive Guide)
password text entry fields: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.2. Password text entry (type=password) (Web Design in a Nutshell)
pathnames: 2.7.1. URLs (HTML & XHTML: The Definitive Guide)
6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
# (hash mark) in: 11.3.2. Linking to a fragment (Web Design in a Nutshell)
absolute vs. relative: 4.2.1. Absolute Pathnames (Web Design in a Nutshell)
pauses: 4.1.2. Avoiding gaps between edited sections (Designing Web Audio)
PCDATA, XML tags: 15.3.4. Elements (HTML & XHTML: The Definitive Guide)
15.4.4. Mixed Element Content (HTML & XHTML: The Definitive Guide)
PDAs (personal digital assistants): 2.5.2. Hand-held Devices (Web Design in a Nutshell)
PDF (Portable Document Format) files: 5. Printing from the Web (Web Design in a Nutshell)
5.4. Portable Document Format (PDF) (Web Design in a Nutshell)
embedding: 5.4.3.3. Embedding a PDF file (Web Design in a Nutshell)
linking to with HTML: 5.4.3. HTML for Adding PDF Files to Web Pages (Web Design in a Nutshell)
viewing/creating: 5.4.1. Viewing PDF Files (Web Design in a Nutshell)
PDFViewer: 5.4.1. Viewing PDF Files (Web Design in a Nutshell)
Peak: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
Peak (Bias): 24.3.2.2. Mac audio tools (Web Design in a Nutshell)
peak limiters: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
4.3.2. Compression: reducing sound peaks and spikes (Designing Web Audio)
% (percent sign) for character encoding: 6.2.1. Writing a URL (HTML & XHTML: The Definitive Guide)
percentage colors: 3.1.2.1. Percentage colors (Cascading Style Sheets: The Definitive Guide)
list of percentages: 3.1.2.1. Percentage colors (Cascading Style Sheets: The Definitive Guide)
percentage property values: 8.4.1.3. Percentage property values (HTML & XHTML: The Definitive Guide)
percentage units: 3.3. Percentage Values (Cascading Style Sheets: The Definitive Guide)
percentage values for background positioning: 6.2.3.2. Percentage values (Cascading Style Sheets: The Definitive Guide)
percentage values for colors: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
percentages
color equivalents: 3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
font sizes: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
framesets sizes: 14.3.2.1. Specifying sizes (Web Design in a Nutshell)
SSI time formats: 18.8. Time Formats for SSI Output (Web Design in a Nutshell)
table dimensions: 13.4.4.1. Table dimensions (Web Design in a Nutshell)
perceptual encoding: 5.1.1. Lossy compression (Designing Web Audio)
Perceptual Palette: 22.2. Converting to the Web Palette (Web Design in a Nutshell)
percussion rhythm: 1.7.3.3. Optimum loop length (Designing Web Audio)
perfect alignment of backgrounds: 6.2.5.1. Interesting effects (Cascading Style Sheets: The Definitive Guide)
performance
applets: 12.1.1.3. Using applets correctly (HTML & XHTML: The Definitive Guide)
audio sampling rate: 24.1. Basic Digital Audio Concepts (Web Design in a Nutshell)
24.3.3. Optimizing for the Web (Web Design in a Nutshell)
background images: 5.3.2.1. Problems with background images (HTML & XHTML: The Definitive Guide)
client-pull documents: 13.2.5. Performance Considerations (HTML & XHTML: The Definitive Guide)
colors: 5.3.2. Extending a Warning (HTML & XHTML: The Definitive Guide)
display speed: 4.5.2.3. Display speed (Information Architecture for the World Wide Web)
flood-filling: 5.2.6.11. Resizing and flood-filling images (HTML & XHTML: The Definitive Guide)
frames: 14.2.2. Disadvantages (Web Design in a Nutshell)
gauging with Bandwidth Profiler: 19.1.4. The Bandwidth Profiler (ActionScript: The Definitive Guide)
graphics
animated GIF optimization: 23.6. Optimizing Animated GIFs (Web Design in a Nutshell)
dithering (see dithering)
GIF image optimization: 19.8. Minimizing GIF File Sizes (Web Design in a Nutshell)
interlacing and: 19.6. Interlacing (Web Design in a Nutshell)
23.5.5. Other Options (Web Design in a Nutshell)
JPEG image optimization: 20.6. Minimizing JPEG File Size (Web Design in a Nutshell)
PNG image optimization: 21.8. PNG Optimization Strategies (Web Design in a Nutshell)
reusing graphics: 12.3.6.2. Reuse images whenever possible (Web Design in a Nutshell)
image maps: 6.5.2. Client-Side Image Maps (HTML & XHTML: The Definitive Guide)
images and: 5.2.2. When to Use Images (HTML & XHTML: The Definitive Guide)
lowsrc attribute: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.3.6.3. The lowsrc trick (Web Design in a Nutshell)
issues for string extractions: 4.6.6.5. String extraction performance issues (ActionScript: The Definitive Guide)
lossy/lossless compression: 19.3. GIF Compression (Web Design in a Nutshell)
20.2. JPEG Compression (Web Design in a Nutshell)
21.5. PNG Compression (Web Design in a Nutshell)
25.2.1. Lossless Versus Lossy Compression (Web Design in a Nutshell)
lowsrc attribute ( ) for: 5.2.6.2. The lowsrc attribute (HTML & XHTML: The Definitive Guide)
marquee movement: 5.5.1.6. The scrollamount and scrolldelay attributes (HTML & XHTML: The Definitive Guide)
preloading images and: 12.3.3.2. Using width and height to preload images (Web Design in a Nutshell)
14.7.7. Preloading Images with Hidden Frames (Web Design in a Nutshell)
reducing number of colors: 19.8.2.3. Reduce number of colors (bit depth) (Web Design in a Nutshell)
23.5.5. Other Options (Web Design in a Nutshell)
screen real estate: 4.5.2.1. Screen real estate (Information Architecture for the World Wide Web)
server-push documents: 13.3.3.1. Efficiency considerations (HTML & XHTML: The Definitive Guide)
table display: 13.6.2. Waiting for Tables to Display (Web Design in a Nutshell)
text: 5.2.3. When to Use Text (HTML & XHTML: The Definitive Guide)
video data/frame rates: 25.1. Basic Digital Video Concepts (Web Design in a Nutshell)
Performer: 10.3.3. MIDI file editing tutorial (Designing Web Audio)
period (.): 8.2.3. Attributes (Web Design in a Nutshell)
in alternate text: 6.1.3. The Techniques (Web Design in a Nutshell)
CLASS selectors: 17.3.3.1. class selector (Web Design in a Nutshell)
in automatic numbering: 10.4.1. Automatic Numbering (Cascading Style Sheets: The Definitive Guide)
in class selectors: 2.3.1. Class Selectors (Cascading Style Sheets: The Definitive Guide)
Perl
integrating with Flash: 17.2. Creating a Flash Fill-in Form (ActionScript: The Definitive Guide)
17.2.3. The Perl Script, echo.pl (ActionScript: The Definitive Guide)
library for generating Flash/SWF movies: A.4. SWF File Format (ActionScript: The Definitive Guide)
Perl for CGI scripting: 15.7. Demystifying CGI (Web Design in a Nutshell)
Perl scripts, load balancing: 6.4.7. Load balancing (Designing Web Audio)
permanent conversions: 3.4.3. Conversion Duration (ActionScript: The Definitive Guide)
permissions controls, transferring files: 4.4.2. Setting Permissions (Web Design in a Nutshell)
permuted indexes: 4.6.2. The Index (Information Architecture for the World Wide Web)
personal digital assistants (PDAs): 2.5.2. Hand-held Devices (Web Design in a Nutshell)
Personal Jukebox PJB-100: 8.4.3.1. Selecting tracks (Designing Web Audio)
personalization: 1.2.2.5. Personalization (Information Architecture for the World Wide Web)
personalized ad insertion: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
perspectives: 3.1.3. Differences in Perspectives (Information Architecture for the World Wide Web)
of audiences: 2.1.1. The Consumer's Perspective (Information Architecture for the World Wide Web)
balancing: 2.2.4. Balance Your Perspective (Information Architecture for the World Wide Web)
of developers: 2.1.2. The Producer's Perspective (Information Architecture for the World Wide Web)
of information architects: 2.2.1. Thinking Like an Outsider (Information Architecture for the World Wide Web)
.pfr (Portable Font Resource) format: 3.2.4.1. TrueDoc Technology ("Dynamic Fonts") (Web Design in a Nutshell)
PGDN property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
PGUP property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
PhotoGIF (BoxTop Software): 19.5. Tools Overview (Web Design in a Nutshell)
photographic images: 19.4. When to Use GIFs (Web Design in a Nutshell)
22.3.2. Photographic Images (Web Design in a Nutshell)
GIF format for: 19.4. When to Use GIFs (Web Design in a Nutshell)
JPEG format for: 20.2. JPEG Compression (Web Design in a Nutshell)
PNG format for: 21.4.2. Grayscale (Web Design in a Nutshell)
Photoshop (Adobe): 19.5. Tools Overview (Web Design in a Nutshell)
CLUTs, creating: 22.1.2.1. Creating a CLUT file in Photoshop 4.0 (Web Design in a Nutshell)
dividing images into multiple files: 13.8.2.1. Dividing the image (in Photoshop 4.0) (Web Design in a Nutshell)
file sizes, optimizing: 19.8.4. Optimize to a File Size in Photoshop 5.5+ (Web Design in a Nutshell)
Gamma Control Panel: 3.3.1.3. Gamma (Web Design in a Nutshell)
hybrid colors, creating: 22.4.2.1. Photoshop/ImageReady (Web Design in a Nutshell)
JPEGs
creating: 20.5. Creating JPEGs (Web Design in a Nutshell)
optimizing file sizes: 20.6.5. Optimize to File Size in Photoshop 5.5+ (Web Design in a Nutshell)
palettes: 22.1.1. Tools with Built-in Web Palettes (Web Design in a Nutshell)
PNG graphics and: 21.7.2. Photoshop 5.5/ImageReady (and Higher) (Web Design in a Nutshell)
resizing graphics: 3.4.4.2. Resizing tips (Web Design in a Nutshell)
swatches: 3.3.3.2. Photoshop swatches (Web Design in a Nutshell)
WBMP graphics, creating: 32.3.4. Images (Web Design in a Nutshell)
PHP: 4.1.3.3. PHP (Web Design in a Nutshell)
physical inline type style: 10.3. Inline Type Styles (Web Design in a Nutshell)
physical style tags: 2.6.1.2. Physical styles (HTML & XHTML: The Definitive Guide)
4.3.2. Physical Styles (HTML & XHTML: The Definitive Guide)
4.5. Physical Style Tags (HTML & XHTML: The Definitive Guide)
summary of: 4.5.15. Summary of Physical Style Tags (HTML & XHTML: The Definitive Guide)
physical text wrapping: 9.7.1.2. The wrap attribute (HTML & XHTML: The Definitive Guide)
physical value for wrap attribute: 15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
PI property (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
piano: 10.3. Creating your own MIDI files (Designing Web Audio)
10.3.4.1. Creating your own MIDI file (Designing Web Audio)
picas (pc): 3.2.1. Absolute Length Units (Cascading Style Sheets: The Definitive Guide)
pick-up patterns, microphones: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
Piguet, Yves: 23.4.2. GIF Animation Utilities (Web Design in a Nutshell)
piracy, music: 8.4.3.1. Selecting tracks (Designing Web Audio)
pitch: 2.1. The science of sound (Designing Web Audio)
frequency: 2.1.2. Pitch (Designing Web Audio)
shifting: 1.8. Interactive sound effects and buttons (Designing Web Audio)
4. Optimizing Your Sound Files (Designing Web Audio)
4.2.3. Pitch shift (Designing Web Audio)
pitch property: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
pitch-range property: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
pixels
dithering/shifting: 3.3.2.1. Shifting and dithering (Web Design in a Nutshell)
measuring text size: 17.8.2. Specifying Text Size in Pixels (Web Design in a Nutshell)
monitor resolution and: 2.1.1. Standard Monitor Sizes and Resolutions (Web Design in a Nutshell)
pixels-per-inch (ppi): 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
pixels per inch (ppi), measuring resolution: 3.4.2. Image Resolution (Web Design in a Nutshell)
pixels (px): 3.1.2. Colors by RGB (Cascading Style Sheets: The Definitive Guide)
3.2.2.3. Pixel lengths (Cascading Style Sheets: The Definitive Guide)
setting font size in: 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
<plaintext> tags: 4.7.9. The <plaintext> Tag (Obsolete) (HTML & XHTML: The Definitive Guide)
platform, detecting (Player): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
platforms
browsers and: 1.1. Browsers (Web Design in a Nutshell)
designing for different audiences: 1.4. Knowing Your Audience (Web Design in a Nutshell)
standard fonts for: 3.2.3.2. Selecting fonts for web pages (Web Design in a Nutshell)
play( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
play attribute ( ): 26.4.2.1. The <embed> tag (Web Design in a Nutshell)
playback, RealSystem: 6.4.2. Creating custom player controls (Designing Web Audio)
Player
checking number of downloaded bytes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
deleting
attached and duplicated instances: to Delete Instances (ActionScript: The Definitive Guide) 13.6.2. Using removeMovieClip( )
movie clips from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
detecting versions: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
document level stack: 2.5.6.2. Accessing variables on different document levels (ActionScript: The Definitive Guide)
13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
13.5.4.2. Referencing other documents in the Player using _leveln (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
loading external SWF files into: 13.3.4. Importing External Movies (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
removing movie clips from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rendering quality
_highquality global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_quality global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
toggleHighQuality global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sound, controlling: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
standalone: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
disabling menu commands: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
updates to (Builds 41/42): C.1. Updates to the Flash 5 Player, Build 41 (ActionScript: The Definitive Guide)
version of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.send( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
playeveryframe attribute ( ): 25.5.3.2. Special QuickTime <embed> attributes (Web Design in a Nutshell)
25.5.3.2. Special QuickTime <embed> attributes (Web Design in a Nutshell)
playhead
advancing one frame: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
playing timelines from a given frame: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sending back one frame: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
stopping at a given frame: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using timeline loops: 8.7. Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
pledit.bmp: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
plug-in accessories: 1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
2.7.4. Anchors Beyond (HTML & XHTML: The Definitive Guide)
plug-ins: 12.5.2. The <embed> Tag (Web Design in a Nutshell)
5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
5.6.4. Embedding Other Document Types (HTML & XHTML: The Definitive Guide)
installation procedures: 1.5. Audio challenges and limitations (Designing Web Audio)
MP3, support for: 8.3.5. Plug-ins (Designing Web Audio)
pluginspage attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.5.2. The <embed> Tag (Web Design in a Nutshell)
25.5.3.1. Browser <embed> attributes (Web Design in a Nutshell)
26.4.2.1. The <embed> tag (Web Design in a Nutshell)
12.2.4.5. The pluginspage attribute (HTML & XHTML: The Definitive Guide)
pluginurl attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.5.2. The <embed> Tag (Web Design in a Nutshell)
plus (+) addition operator: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.1. Addition (ActionScript: The Definitive Guide)
converting data to strings: 3.4.2.3. Converting to a string with empty string concatenation (ActionScript: The Definitive Guide)
PNG (Portable Network Graphic) format: 3.4.1.3. The lurking PNG (Web Design in a Nutshell)
12.2.2. Acceptable Graphics Formats (Web Design in a Nutshell)
19.3. GIF Compression (Web Design in a Nutshell)
21. PNG Format (Web Design in a Nutshell)
compression: 21.5. PNG Compression (Web Design in a Nutshell)
creating: 21.7. Creating PNG Files (Web Design in a Nutshell)
minimizing file sizes: 21.8. PNG Optimization Strategies (Web Design in a Nutshell)
pngcrush application: 21.8. PNG Optimization Strategies (Web Design in a Nutshell)
PNM traffic: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
(see also custom mouse pointers)
hiding: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
horizontal location of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
movie clips following the: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
revealing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rotating a movie clip toward mouse: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vertical location of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
points (see coordinate spaces)
points (pt): 3.2.1. Absolute Length Units (Cascading Style Sheets: The Definitive Guide)
problems for document design: 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
setting font size in: 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
politics: 3.1.4. Internal Politics (Information Architecture for the World Wide Web)
7.1.1. Face-to-Face Meetings (Information Architecture for the World Wide Web)
polling the keyboard: 10.11.5. keyUp (ActionScript: The Definitive Guide)
polygonal image map area: 6.5.4.2. The coords attribute (HTML & XHTML: The Definitive Guide)
polymorphism: 12.5.4.2. Polymorphism (ActionScript: The Definitive Guide)
PoorMan, HTTP server software: 8.5.1. Creating your own MP3 site (Designing Web Audio)
pop( ) (Array class): method (ActionScript: The Definitive Guide) 11.8.3.1. The pop( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
pop screens: 3.1.8. Pop screens (Designing Web Audio)
Appendix A.3.6. Pop screens (Designing Web Audio)
pop tunes, delay effects: 4.2.2. Delay (Designing Web Audio)
pop-up menus: 4.5.3. Pull-Down Menus (Information Architecture for the World Wide Web)
pop-up menus in forms: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.3. Creating Menus with the <select> Tag (Web Design in a Nutshell)
15.6.3. Working with Menus (Web Design in a Nutshell)
pop-up windows: 2.2.2.4. Pop-up windows (Web Design in a Nutshell)
port 7070: 6.3.3.1. RealServer installation (Designing Web Audio)
Port option, RealAudio batch encoding: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
Portable Document Format files (see PDF files)
Portable Font Resource (.pfr) format: 3.2.4.1. TrueDoc Technology ("Dynamic Fonts") (Web Design in a Nutshell)
Portable Network Graphic format (see PNG format)
ports
ftp servers: 6.2.4.2. The ftp server and port (HTML & XHTML: The Definitive Guide)
gopher servers: 6.2.10.1. The gopher server and port (HTML & XHTML: The Definitive Guide)
nntp: 6.2.7.1. The nntp server and port (HTML & XHTML: The Definitive Guide)
telnet: 6.2.9.2. The telnet server and port (HTML & XHTML: The Definitive Guide)
web servers: 6.2.2.2. The http port (HTML & XHTML: The Definitive Guide)
position keyword equivalents: 6.2.3.1. Keywords (Cascading Style Sheets: The Definitive Guide)
position property: 9.1.1. Positioning Schemes (Cascading Style Sheets: The Definitive Guide)
position property (CSS): 17.6.1. The position Property (Web Design in a Nutshell)
positional equivalents: 6.2.3.2. Percentage values (Cascading Style Sheets: The Definitive Guide)
positioned elements, stacking: 9.5. Stacking Positioned Elements (Cascading Style Sheets: The Definitive Guide)
positioning: 9. Positioning (Cascading Style Sheets: The Definitive Guide)
'above the fold' design: 2.3. Designing "Above the Fold" (Web Design in a Nutshell)
absolute: 9.3. Absolute Positioning (Cascading Style Sheets: The Definitive Guide)
alignment (see alignment)
background graphics: 17.5.3. Background Properties (Web Design in a Nutshell)
box properties (style sheets): 17.5.2. Box Properties (Web Design in a Nutshell)
CSS2 accessibility features for: 6.2.2. CSS2 Features (Web Design in a Nutshell)
fixed: 9.4. Fixed Positioning (Cascading Style Sheets: The Definitive Guide)
graphics, tips for: 12.3.6. Tips for Placing Graphics (Web Design in a Nutshell)
height/width and: 9.1.3. Width and Height (Cascading Style Sheets: The Definitive Guide)
relative: 9.2. Relative Positioning (Cascading Style Sheets: The Definitive Guide)
style sheets for: 17.5.2. Box Properties (Web Design in a Nutshell)
17.6. Positioning with Style Sheets (Web Design in a Nutshell)
tables: 13.4.2. Positioning a Table on the Page (Web Design in a Nutshell)
two-column layouts: 13.7.5. Two-Column Page Layouts (Web Design in a Nutshell)
z-order: 17.6.2. Z-Order (Web Design in a Nutshell)
positioning backgrounds: 6.2.3. Background Positioning (Cascading Style Sheets: The Definitive Guide)
positioning elements: 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
positioning list item markers: 8.4.7.2. The list-style-position property (HTML & XHTML: The Definitive Guide)
positioning schemes: 9.1.1. Positioning Schemes (Cascading Style Sheets: The Definitive Guide)
POSITIVE_INFINITY property (Number class) 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
POST method: 9.2.4. The method Attribute (HTML & XHTML: The Definitive Guide)
9.12.3. Handling POST Forms (HTML & XHTML: The Definitive Guide)
postfix decrement (operand ) operator: 5.3.4. Decrement (ActionScript: The Definitive Guide)
postfix increment (operand ++) operator: 5.3.2. Increment (ActionScript: The Definitive Guide)
# (pound sign)
for entities: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
for name anchors: 6.3.3. Linking Within a Document (HTML & XHTML: The Definitive Guide)
in URLs: 6.2.2.4. The http document fragment (HTML & XHTML: The Definitive Guide)
pound sign (#)
for entities: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
for name anchors: 6.3.3. Linking Within a Document (HTML & XHTML: The Definitive Guide)
in URLs: 6.2.2.4. The http document fragment (HTML & XHTML: The Definitive Guide)
pow( ) (Math object): 4.3.2. Floating-Point Literals (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ppi (pixels-per-inch): 5.3.5. Using Length Units (Cascading Style Sheets: The Definitive Guide)
ppi (pixels per inch), measuring resolution: 3.4.2. Image Resolution (Web Design in a Nutshell)
<pre> (preformatted text) tag: 10.1.3. Spacing and Positioning (Web Design in a Nutshell)
4.7.5. The <pre> Tag (HTML & XHTML: The Definitive Guide)
10.7.1. Preformatted Text (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
forms within: 15.6.2.1. The <pre> tag (Web Design in a Nutshell)
precedence of operators: 4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
precedence of styles: 8.1.9. Style Precedence (HTML & XHTML: The Definitive Guide)
precision, floating-point: 4.3.2.1. Floating-point precision (ActionScript: The Definitive Guide)
prefix decrement ( operand) operator: 5.3.4. Decrement (ActionScript: The Definitive Guide)
prefix increment (++ operand) operator: 5.3.2. Increment (ActionScript: The Definitive Guide)
preformatted text: 2.6.2.4. Preformatted text (HTML & XHTML: The Definitive Guide)
preformatted text, forms in: 15.6.2.1. The <pre> tag (Web Design in a Nutshell)
preloaders
accessing loaded movies: 13.3.4.1. Load movie execution order (ActionScript: The Definitive Guide)
using Boolean values to build: 4.7.1. Using Boolean Values to Build a Preloader (ActionScript: The Definitive Guide)
building XML preloaders: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
using data event handlers to build: 10.10.4.2. Using a data event handler with loadMovie( ) (ActionScript: The Definitive Guide)
_framesloaded property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getBytesLoaded( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
preloading images: 12.3.3.2. Using width and height to preload images (Web Design in a Nutshell)
hidden frames for: 14.7.7. Preloading Images with Hidden Frames (Web Design in a Nutshell)
preserve duration button, sound editing: 4.2.3. Pitch shift (Designing Web Audio)
press button event: 10.8.1. press (ActionScript: The Definitive Guide)
prev document relationship: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
prev value for WML type attribute: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
prevFrame( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
preview graphics: 12.3.6.1. Link to large images (Web Design in a Nutshell)
previousSibling property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
prevScene( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
primitive
Boolean values: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
datatypes: 4. Primitive Datatypes (ActionScript: The Definitive Guide)
equality of: 5.4.1. Primitive Datatype Equality (ActionScript: The Definitive Guide)
object values: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
primitive vs. composite data: 3.5. Primitive Data Versus Composite Data (ActionScript: The Definitive Guide)
copying, comparing, and passing: 15.1. Copying, Comparing, and Passing Data (ActionScript: The Definitive Guide)
passing values to functions: 9.8.3. Primitive Versus Composite Parameter Values (ActionScript: The Definitive Guide)
print designers, principles for web design: 3. Web Design Principles for Print Designers (Web Design in a Nutshell)
print document, putting online: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
print( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
target parameter and: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
print media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
print protocol (getURL( )): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
print value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
printAsBitmap( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
target parameter and: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
printAsBitmapNum( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
printenv command (SSI): 18.6. SSI Commands (Web Design in a Nutshell)
printing from the Web: 5. Printing from the Web (Web Design in a Nutshell)
browsers and: 5.1. Browser Print Mechanisms (Web Design in a Nutshell)
cascading style sheets and: 5.3. Cascading Style Sheets for Printouts (Web Design in a Nutshell)
content for: 5.2.3. Think About Content (Web Design in a Nutshell)
PDF files and: 5.4. Portable Document Format (PDF) (Web Design in a Nutshell)
"printer-friendlyÓ HTML pages: 5.2. Printer-Friendly HTML Pages (Web Design in a Nutshell)
printNum( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
private keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
private webs: 1.2.3. Beneath the World Wide Web (HTML & XHTML: The Definitive Guide)
Pro Tools
file length, preserving original: 1.8. Interactive sound effects and buttons (Designing Web Audio)
pitch shift: 4.2.3. Pitch shift (Designing Web Audio)
sound editing: 4. Optimizing Your Sound Files (Designing Web Audio)
Pro Tools system: A.2.4.1. Pro option (Designing Web Audio)
process clips: 13.2.4. Process Clips (ActionScript: The Definitive Guide)
PROCESSING_INSTRUCTION_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
processors, effects: A.2.10. Effects processors (Designing Web Audio)
producers (see developers)
producing web sites: 9. Production and Operations (Information Architecture for the World Wide Web)
professional Webcasting
fidelity: 6.3. Professional webcasting (Designing Web Audio)
National Public Radio: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
RealAudio clips: 6.3. Professional webcasting (Designing Web Audio)
profile attribute: B. List of Attributes (Web Design in a Nutshell)
profile attribute ( ): 3.7.1.2. The profile attribute (HTML & XHTML: The Definitive Guide)
program functions: 9. Functions (ActionScript: The Definitive Guide)
availability of: 9.6. Function Availability and Life Span (ActionScript: The Definitive Guide)
programmatically generated clip stacks: 13.4.2. The Programmatically Generated Clip Stack (ActionScript: The Definitive Guide)
programmers, responsibilities of: 2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
programming forms: 9.12. Forms Programming (HTML & XHTML: The Definitive Guide)
parameters in URLs: 9.2.4.2. Passing parameters explicitly (HTML & XHTML: The Definitive Guide)
programming, introduction to: 1. A Gentle Introduction for Non-Programmers (ActionScript: The Definitive Guide)
Progressive JPEG images: 20.4. Progressive JPEGs (Web Design in a Nutshell)
project management: 2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
projection media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
projection value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
Projector, standalone: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ProJPEG utility (BoxTop Software): 20.5. Creating JPEGs (Web Design in a Nutshell)
20.6.2. "Optimized" JPEGs (Web Design in a Nutshell)
promotional information: 5.2.7. Liquid Audio (Designing Web Audio)
prompt attribute: B. List of Attributes (Web Design in a Nutshell)
prompt attribute ( ): 6.6.1.1. The prompt attribute (HTML & XHTML: The Definitive Guide)
properties: 2.1.1. Rule Structure (Cascading Style Sheets: The Definitive Guide)
2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
attaching to functions: 9.11.1. Passing Functions to Functions (ActionScript: The Definitive Guide)
fractional inaccuracy of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
global: 20.2. Global Properties (ActionScript: The Definitive Guide)
Math object constant values: 4.3.3.4. Irrational numbers (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
movie clips: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
assigning values to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving values of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
new with CSS2: 10.9. Summary (Cascading Style Sheets: The Definitive Guide)
Number class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
read/only and read/write: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
text field: 18.4. Text Field Properties (ActionScript: The Definitive Guide)
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
properties (DHTML): 29.3. The Document Object Model (Web Design in a Nutshell)
properties in style sheets: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.5. Properties (Web Design in a Nutshell)
background: 17.5.3. Background Properties (Web Design in a Nutshell)
box properties: 17.5.2. Box Properties (Web Design in a Nutshell)
classification: 17.5.4. Classification Properties (Web Design in a Nutshell)
CSS2: 17.7.2. New Properties (Web Design in a Nutshell)
type-related: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
properties, object (see object properties)
properties, style: 8.4. Style Properties (HTML & XHTML: The Definitive Guide)
JavaScript style sheets: 12.4.2. JavaScript Style Sheet Properties (HTML & XHTML: The Definitive Guide)
property values, style
colors: 8.4.1.5. Color property values (HTML & XHTML: The Definitive Guide)
keywords: 8.4.1.1. Keyword property values (HTML & XHTML: The Definitive Guide)
length: 8.4.1.2. Length property values (HTML & XHTML: The Definitive Guide)
percentage: 8.4.1.3. Percentage property values (HTML & XHTML: The Definitive Guide)
URL: 8.4.1.4. URL property values (HTML & XHTML: The Definitive Guide)
property\:value pairs, styles: 8.2.1. The Basics (HTML & XHTML: The Definitive Guide)
proportional fonts: 3.2.1.1. Proportional font (Web Design in a Nutshell)
proprietary HTML tags: D. Proprietary Tags (Web Design in a Nutshell)
prospective view: 4.1. Browser Navigation Features (Information Architecture for the World Wide Web)
protected keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
__proto__ property (Object class): 12.5.3.4. The _ _ proto_ _ property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
protocols: 2.7.1. URLs (HTML & XHTML: The Definitive Guide)
protocols in URLs: 11.2.1. Absolute URLs (Web Design in a Nutshell)
ProTools (Digidesign): 24.3.2.3. Tools for both Mac and Windows systems (Web Design in a Nutshell)
prototype chain, walking the: 12.5.4.3. Determining whether an object belongs to a superclass (ActionScript: The Definitive Guide)
prototype property, creating inherited properties with: 12.5.3.1. Creating inherited properties with the prototype property (ActionScript: The Definitive Guide)
prototypes of web sites: 8.7. Web-Based Prototypes (Information Architecture for the World Wide Web)
pseudo-class selectors: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
combining with class selectors: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
new with CSS2: 10.2.3. More Pseudo-Classes and Pseudo-Elements (Cascading Style Sheets: The Definitive Guide)
10.9. Summary (Cascading Style Sheets: The Definitive Guide)
restrictions on: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
pseudo-classes: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
specificity and: 2.7.1. Inheritance and Specificity (Cascading Style Sheets: The Definitive Guide)
pseudo-classes, style: 8.3.4. Pseudo-Classes (HTML & XHTML: The Definitive Guide)
hyperlink states: 8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
nesting, languages: 8.3.4.3. Nesting and language pseudo-classes (HTML & XHTML: The Definitive Guide)
for user interaction: 8.3.4.2. Interaction pseudo-classes (HTML & XHTML: The Definitive Guide)
8.3.4.2. Interaction pseudo-classes (HTML & XHTML: The Definitive Guide)
web browser support for: 8.3.4.4. Browser support of pseudo-classes (HTML & XHTML: The Definitive Guide)
pseudo-classes/elements: 17.3.4.2. Pseudo-classes (Web Design in a Nutshell)
pseudo-element selectors: 2.4.2. Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
CSS properties permitted on: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
new with CSS2: 10.2.3. More Pseudo-Classes and Pseudo-Elements (Cascading Style Sheets: The Definitive Guide)
10.9. Summary (Cascading Style Sheets: The Definitive Guide)
restrictions on: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
pseudo-elements: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
2.4.2. Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
specificity and: 2.7.1. Inheritance and Specificity (Cascading Style Sheets: The Definitive Guide)
pseudo-elements for styles: 8.2.5. Pseudo-Elements (HTML & XHTML: The Definitive Guide)
pseudo-selectors (style sheets): 17.3.4. Pseudo-Selectors (Web Design in a Nutshell)
17.7.4. New Pseudo-Selectors (Web Design in a Nutshell)
pseudo-streaming: 5.1. Streaming protocols (Designing Web Audio)
psychoacoustics: 8.2. What is MP3? (Designing Web Audio)
8.2.1. MP3 technical details (Designing Web Audio)
public address (PA) systems
feedback: 3.1.1.3. Condenser microphones (Designing Web Audio)
live concerts: 3.2.2.1. Live concerts and events (Designing Web Audio)
public keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
pull-down menus: 4.5.3. Pull-Down Menus (Information Architecture for the World Wide Web)
pull-down menus in forms: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.3. Creating Menus with the <select> Tag (Web Design in a Nutshell)
15.6.3. Working with Menus (Web Design in a Nutshell)
pull quote: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
push( ) (Array class): method (ActionScript: The Definitive Guide) 11.7.3.1. The push( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
push buttons: 15.1. Summary of Form Tags (Web Design in a Nutshell)
9.5.4.4. Push buttons (HTML & XHTML: The Definitive Guide)
PWSSize.cur, Winamp: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
Python language for CGI scripting: 15.7. Demystifying CGI (Web Design in a Nutshell)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: Q

<q>(inline quotation) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
Q setting (JPEG images): 20.2.2. Variable Compression Levels (Web Design in a Nutshell)
<q> tags: 4.8.2. The <q> Tag (HTML & XHTML: The Definitive Guide)
qmain.bmp, Winamp: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
quality attribute ( ): 26.4.2.1. The <embed> tag (Web Design in a Nutshell)
_quality global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
quality standards, Internet distribution: 8.4.2.3. 128 Kbps Internet standard (Designing Web Audio)
Queensrche project: 1.9.2. Timing loops (Designing Web Audio)
queries, search (see searching)
query analysis, label text from: 5.4.1.5. Labels from users and experts (Information Architecture for the World Wide Web)
QUERY_STRING_UNESCAPED environment variable: 18.7. Include Variables (Web Design in a Nutshell)
query URLs: 6.6.1.2. The query URL (HTML & XHTML: The Definitive Guide)
QUERY_STRING variable: 9.12.2.1. Using named parameters with GET applications (HTML & XHTML: The Definitive Guide)
? (question mark) in URLs: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
6.2.2.5. The http search parameter (HTML & XHTML: The Definitive Guide)
Question and Suggestions area: 9.6.3. Questions and Suggestions (Information Architecture for the World Wide Web)
question mark (?) in URLs: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
6.2.2.5. The http search parameter (HTML & XHTML: The Definitive Guide)
QuickTime: 5.2.3. QuickTime (Designing Web Audio)
9.1. Flash and Shockwave basics (Designing Web Audio)
9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
10.3. Creating your own MIDI files (Designing Web Audio)
capabilities overview: B.4. QuickTime (Designing Web Audio)
RealMedia: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
stream narration: 1.7.1.2. Embedding narration in a web page (Designing Web Audio)
Windows Media: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
QuickTime (Apple): 24.4. Streaming Audio (Web Design in a Nutshell)
24.5.3. Apple QuickTime Audio (.mov) (Web Design in a Nutshell)
25.3.1. QuickTime Movie (.mov) (Web Design in a Nutshell)
Flash and: 26.5.1. Flash and QuickTime (Web Design in a Nutshell)
SMIL and: 27.2. SMIL Players (Web Design in a Nutshell)
Sorenson codec: 25.2.3. Video Codecs (Web Design in a Nutshell)
QuickTime Music Tracks: 10.1. MIDI: A universal approach (Designing Web Audio)
QuickTime Musical Instruments: 10.3. Creating your own MIDI files (Designing Web Audio)
QuickTime Player: 8.8. MP3 resources (Designing Web Audio)
quiet sounds, condenser microphones: 3.1.1.3. Condenser microphones (Designing Web Audio)
quit command (standalone Player): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
quotation marks
for attribute values: 3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
16.3.5. Quoted Attribute Values (HTML & XHTML: The Definitive Guide)
double ( ): 1.4.6. Inline Styles (Cascading Style Sheets: The Definitive Guide)
curly, in generated content: 10.4. Generated Content (Cascading Style Sheets: The Definitive Guide)
in font-family declarations: 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
single ( ): 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
in URLs: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
quotation marks in strings: 4.5.2. String Literals (ActionScript: The Definitive Guide)
problems with: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
quotation tag: A. HTML Elements (Web Design in a Nutshell)
(quotation mark)
for attribute values: 3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
16.3.5. Quoted Attribute Values (HTML & XHTML: The Definitive Guide)
in URLs: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
quotes property in CSS2 for multilingualism: 7.3. Style Sheets Language Features (Web Design in a Nutshell)
quotients: 5.3.6. Division (ActionScript: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: R

RA files
backward compatibility: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
format conversion: 6.3.2. Using the RealEncoder (Designing Web Audio)
MIME types: 6.2.2. Requirements for HTTP streaming (Designing Web Audio)
radio broadcasts: 1.2. What you can do with sound on the Web (Designing Web Audio)
radio buttons: 9.5.3. Radio Buttons (HTML & XHTML: The Definitive Guide)
radio buttons on forms: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.5. Radio button (type=radio) (Web Design in a Nutshell)
radio stations, setting up: 8.6.1. Running your own station (Designing Web Audio)
radio voice-overs, dynamic microphones: 3.1.1.2. Dynamic microphones (Designing Web Audio)
Radius Cinepak codec: 25.2.3. Video Codecs (Web Design in a Nutshell)
radix (base of a number)
parseInt( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
toString( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
raised look: 7.4.1. Borders with Style (Cascading Style Sheets: The Definitive Guide)
.ram files: 24.7.3.1. Linking to RealMedia (external player) (Web Design in a Nutshell)
RAM requirement, RealServer: 6.3.3.2. RealServer system requirements (Designing Web Audio)
Randers-Pehrson, Glenn: 21.8. PNG Optimization Strategies (Web Design in a Nutshell)
random( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Math object: 4.4.2. Built-in Mathematical Functions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
random frames, displaying: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
random URL generator: 13.2.4.1. A random URL generator (HTML & XHTML: The Definitive Guide)
Raspberry Media: A.3.3. Sound libraries (Designing Web Audio)
Raspberry Media Player: 9.3.6. Quick and easy audio streaming with Shockwave (Designing Web Audio)
Shockwave, use with: 9.3.6. Quick and easy audio streaming with Shockwave (Designing Web Audio)
rating value ( ): 9.4.2.2. Other uses (Web Design in a Nutshell)
RDF (Resource Description Framework): 30.6. Where to Learn More (Web Design in a Nutshell)
readability, whitespace and: 3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
readers, selecting alternate style sheets: 1.4.1.2. Alternate style sheets (Cascading Style Sheets: The Definitive Guide)
read/only and read/write properties: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
readonly attribute: 15.5. New Form Attributes in HTML 4.01 (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
readonly attribute (form controls): 9.9.6. The disabled and readonly Attributes (HTML & XHTML: The Definitive Guide)
real numbers: 4.3. Numeric Literals (ActionScript: The Definitive Guide)
RealAudio: 1.1. A brief history of web audio (Designing Web Audio)
6. Encoding, Serving, and Streaming Sound with RealAudio (Designing Web Audio)
bandwidth negotiation: 6.3.3.3. Using bandwidth negotiation (Designing Web Audio)
batch encoding options: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
Beatnik vs.: 11.1. New possibilities for interactive sound (Designing Web Audio)
broadcasting through firewalls: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
codecs: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
custom player controls
creating: 6.4.2. Creating custom player controls (Designing Web Audio)
embedding with RealPublisher: 6.4.2.3. Embedding custom player controls with RealPublisher (Designing Web Audio)
database management and content tracking: 6.4.6. Database management and tracking of RealAudio content (Designing Web Audio)
dedicated servers: 5.1. Streaming protocols (Designing Web Audio)
delivery, RealMedia clips: 6.1.6. RealAudio delivery (Designing Web Audio)
encoding: 5.1.1. Lossy compression (Designing Web Audio)
6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
7.1. SureStream (Designing Web Audio)
RealEncoder and RealPublisher: 6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
file types and metafiles (5.0): 6.1.5. RealAudio 5.0 file types and metafiles (Designing Web Audio)
indexing RealMedia clips: 6.4.3. Indexing RealMedia clips: creating a table of contents (Designing Web Audio)
live broadcasting: 6.5. Live broadcasting with RealAudio (Designing Web Audio)
Mtley Cre concert: 6.6. Case study: N2K streams live M[DBLENTITY:ouml]tley Cr[DBLENTITY:uuml]e concert (Designing Web Audio)
multimedia: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
online help: 6.1.3. RealPlayer (Designing Web Audio)
player or decoder (see RealPlayer)
port 7070: 6.3.3.1. RealServer installation (Designing Web Audio)
professional webcasting: 6.3. Professional webcasting (Designing Web Audio)
RealFlash content, creating: 6.4.4. Creating RealFlash content (Designing Web Audio)
Server: 6.1.2. RealServer (Designing Web Audio)
installation: 6.3.3.1. RealServer installation (Designing Web Audio)
load balancing: 6.4.7. Load balancing (Designing Web Audio)
stream narration: 1.7.1.2. Embedding narration in a web page (Designing Web Audio)
streaming from web server: 6.2. Streaming RealAudio from a web server (Designing Web Audio)
synchronized presentations, creating with RealSystem 5.0: 6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
utilities, editing and synchronizing RealMedia files: 6.1.4. RealAudio utilities (Designing Web Audio)
versions: 6.1. The RealMedia System (Designing Web Audio)
RealAudio (RealNetworks): 24.5.7. Liquid Audio (Web Design in a Nutshell)
RealEncoder: 6. Encoding, Serving, and Streaming Sound with RealAudio (Designing Web Audio)
6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
6.3.2. Using the RealEncoder (Designing Web Audio)
HTTP streaming: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
input and output settings: 6.2.3. HTTP streaming tutorial (Designing Web Audio)
live broadcasting: 6.5. Live broadcasting with RealAudio (Designing Web Audio)
options (version 5.0): 6.3.2. Using the RealEncoder (Designing Web Audio)
tools, pre-installed: 6.1.4. RealAudio utilities (Designing Web Audio)
RealFlash: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
7.5. RealFlash (Designing Web Audio)
Animation metafile: 6.4.4. Creating RealFlash content (Designing Web Audio)
Bandwidth Tuner: 6.4.4. Creating RealFlash content (Designing Web Audio)
broadcasting: 6.3.3. Broadcasting audio with the RealServer (Designing Web Audio)
content, creating: 6.4.4. Creating RealFlash content (Designing Web Audio)
creating, basic steps: 7.5. RealFlash (Designing Web Audio)
incorporating files into RealSystem G2: 7.5. RealFlash (Designing Web Audio)
RealSystem G2 Production Guide, information on: 7.5. RealFlash (Designing Web Audio)
RealMedia: 5.2. Streaming media formats (Designing Web Audio)
6. Encoding, Serving, and Streaming Sound with RealAudio (Designing Web Audio)
clips: 6.1.6. RealAudio delivery (Designing Web Audio)
codecs: 6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
compression: 1.7.1.1. Capturing narration (Designing Web Audio)
editing tools: 6.1.4. RealAudio utilities (Designing Web Audio)
Internet: 6.1.2. RealServer (Designing Web Audio)
metafiles: 6.1.5. RealAudio 5.0 file types and metafiles (Designing Web Audio)
online documentation: 6.1.3. RealPlayer (Designing Web Audio)
RealSystem 5.0, components of: 6.1. The RealMedia System (Designing Web Audio)
table of contents: 6.4.3. Indexing RealMedia clips: creating a table of contents (Designing Web Audio)
versions: 6.1. The RealMedia System (Designing Web Audio)
web broadcasting capabilties: B.1. RealMedia (Designing Web Audio)
Windows Media, advantages over: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
RealMedia, linking to: 24.7.3.1. Linking to RealMedia (external player) (Web Design in a Nutshell)
RealMedia Xtra,: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
RealNetworks: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
RealEncoder and RealPublisher applications: 6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
RealText Authoring Guide: 7.4.3. Hyperlinking (Designing Web Audio)
versions: 6.1. The RealMedia System (Designing Web Audio)
RealNetworks Consulting Group: 6.6.5.1. Remote encoding and management (Designing Web Audio)
RealNetworks DevZone: 6.1.3. RealPlayer (Designing Web Audio)
6.2.3. HTTP streaming tutorial (Designing Web Audio)
RealNetworks RealPlayer 8: 27.2. SMIL Players (Web Design in a Nutshell)
RealPix markup language: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
effect tags: 7.3.1. RealPix syntax (Designing Web Audio)
attributes, timing and placement: 7.3.1. RealPix syntax (Designing Web Audio)
hyperlinking: 7.3.2. Hyperlinking (Designing Web Audio)
images, moving, zooming in or panning back: 7.3.1. RealPix syntax (Designing Web Audio)
slideshow: 7.3.1. RealPix syntax (Designing Web Audio)
syntax: 7.3. RealPix (Designing Web Audio)
RealPlayer: 6.1.3. RealPlayer (Designing Web Audio)
6.2.3. HTTP streaming tutorial (Designing Web Audio)
24.7.3.2. Embedding RealPlayer on the page (Web Design in a Nutshell)
custom controls, building with JavaScript: 6.4.2. Creating custom player controls (Designing Web Audio)
Flash and: 26.5.2. Flash and RealPlayer (Web Design in a Nutshell)
Plug-in metafile: 6.1.5. RealAudio 5.0 file types and metafiles (Designing Web Audio)
transparent plug-ins: 6.4.2.1. Creating custom controls with JavaScript (Designing Web Audio)
RealPlayer Plus: 6.1.3. RealPlayer (Designing Web Audio)
RealProducer: 6. Encoding, Serving, and Streaming Sound with RealAudio (Designing Web Audio)
6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
RealProducer Pro: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
RealPublisher: 6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
cutom player controls: 6.4.2.3. Embedding custom player controls with RealPublisher (Designing Web Audio)
mobile playback: 6.3.2. Using the RealEncoder (Designing Web Audio)
RealServer: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
6.1.2. RealServer (Designing Web Audio)
archiving: 6.6.3. Archiving live broadcasts (Designing Web Audio)
broadcasting audio: 6.3.3. Broadcasting audio with the RealServer (Designing Web Audio)
config file, enabling HTTP Cloaking: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
installing: 6.3.3.1. RealServer installation (Designing Web Audio)
Content directory: 6.3.3.3. Using bandwidth negotiation (Designing Web Audio)
on Unix machines: 6.3.3.1. RealServer installation (Designing Web Audio)
system requirements: 6.3.3.2. RealServer system requirements (Designing Web Audio)
live broadcasting: 6.5. Live broadcasting with RealAudio (Designing Web Audio)
load balancing: 6.4.7. Load balancing (Designing Web Audio)
multicast delivery: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
RealSlideshow: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
RealSystem 5.0
components of: 6.1. The RealMedia System (Designing Web Audio)
file types and metafiles: 6.1.5. RealAudio 5.0 file types and metafiles (Designing Web Audio)
synchronized RealAudio presentations with: 6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
RealSystem G2: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
backwards compatibility: 7.6. Delivering backwards-compatible content (Designing Web Audio)
bandwidth negotiation: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
case study, TechWeb Today: 7.7. Case study: TechWeb Today (Designing Web Audio)
clustering: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
content plan: 7.7.1. Deciding what to show (Designing Web Audio)
dynamic bandwidth allocation: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
encoding innovations in: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
file types and formats supported by: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
formats supported: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
multicasting: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
playback options: 6.4.2. Creating custom player controls (Designing Web Audio)
presentation design: 7.7.1. Deciding what to show (Designing Web Audio)
problems: 7.7.3. Problems and workarounds (Designing Web Audio)
Production Guide, information on RealFlash: 7.5. RealFlash (Designing Web Audio)
RealFlash, streaming vector animations with: 7.5. RealFlash (Designing Web Audio)
RealPix markup language: 7.3. RealPix (Designing Web Audio)
RealText markup language: 7.4. RealText (Designing Web Audio)
RTSP transmission: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
SMIL: 7.2. SMIL (Designing Web Audio)
SMIL-based multimedia: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
splitting: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
SureStream: 6.3.3.3. Using bandwidth negotiation (Designing Web Audio)
7.1. SureStream (Designing Web Audio)
synchronization: 7.7.2. Synchronizing media types (Designing Web Audio)
timing: 7.7.2. Synchronizing media types (Designing Web Audio)
RealText markup language: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
7.4. RealText (Designing Web Audio)
and tags: 7.4.2. Window types (Designing Web Audio)
basic file, example of: 7.4.2. Window types (Designing Web Audio)
HTML tags, support of: 7.4.1. RealText syntax (Designing Web Audio)
hyperlinking: 7.4.3. Hyperlinking (Designing Web Audio)
RealText Authoring Guide: 7.4.3. Hyperlinking (Designing Web Audio)
syntax: 7.4.1. RealText syntax (Designing Web Audio)
time, syntax for: 7.7.3. Problems and workarounds (Designing Web Audio)
timelines in captioned graphics: 7.4.2. Window types (Designing Web Audio)
RealTime Streaming Protocol (RTSP): 5.1. Streaming protocols (Designing Web Audio)
7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
RealVideo: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
broadcasting: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
controls, hidden: 6.4.2.4. Playing clips with a hidden control or plug-in (Designing Web Audio)
encoding: 7.1. SureStream (Designing Web Audio)
RealVideo (RealNetworks): 25.3.2. RealMedia (.rm) (Web Design in a Nutshell)
reciprocal of square root of 2: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
record stores, online: 1.2. What you can do with sound on the Web (Designing Web Audio)
recording for audio files: 24.3.1. Recording (Web Design in a Nutshell)
Recording Industry Association of America (RIAA): 8.6.2.2. Complying with copyright laws (Designing Web Audio)
8.7.1. Is MP3 legal? (Designing Web Audio)
recording level: 3.2.1.3. Desktop audio recording (Designing Web Audio)
recording techniques: 3.2. Recording techniques (Designing Web Audio)
field: 3.2.2. Field recording (Designing Web Audio)
studio: 3.2.1. Studio recording (Designing Web Audio)
recording/editing software, digital audio workstations: A.2.4. Digital audio workstation/recording editing software (Designing Web Audio)
rectangular image map area: 6.5.4.2. The coords attribute (HTML & XHTML: The Definitive Guide)
recursion
creating functions for: 9.9. Recursive Functions (ActionScript: The Definitive Guide)
10.13. Copying Clip Event Handlers (ActionScript: The Definitive Guide)
finding all movie clips on a timeline: 13.5.6.3. Using for-in to access movie clips (ActionScript: The Definitive Guide)
stripping whitespace using: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Red, Green, Blue (see RGB triplet notation)
Red, Green, Blue, and Alpha (see RGBA quadlet notation)
Redirect header: 13.2.4. Combining Refresh with Other HTTP Header Fields (HTML & XHTML: The Definitive Guide)
reducing number of colors: 23.5.5. Other Options (Web Design in a Nutshell)
redundant HTML tags: 3.3.7. Ignored or Redundant Tags (HTML & XHTML: The Definitive Guide)
reference interviews: 6.4. In an Ideal World: The Reference Interview (Information Architecture for the World Wide Web)
reference movies (QuickTime): 25.3.1.3. Reference movies (Web Design in a Nutshell)
references
absolute/relative: 2.5.6.1. The _root and _ parent properties (ActionScript: The Definitive Guide)
13.5.4.1. Referencing the current level's main movie using _root (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating clip objects dynamically: 13.5.6. Dynamic References to Clip Objects (ActionScript: The Definitive Guide)
generating with Insert Target Path: 13.5.5. Authoring Instance References with Insert Target Path (ActionScript: The Definitive Guide)
movie clips and explicit/implicit: 13.5.2. Referring to the Current Instance or Movie (ActionScript: The Definitive Guide)
to nested instances: 13.5.3. Referring to Nested Instances (ActionScript: The Definitive Guide)
resolving using scope chain: 9.7.1. The Scope Chain (ActionScript: The Definitive Guide)
references, inline: 6.4.2. Inline References (HTML & XHTML: The Definitive Guide)
references to multimedia elements: 2.5.3. Multimedia (HTML & XHTML: The Definitive Guide)
referencing external content: 5.6.2. Referencing Audio, Video, and Images (HTML & XHTML: The Definitive Guide)
reflections: 2.1.4. Sound propagation and acoustics (Designing Web Audio)
reflectors: 8.6. Start your own MP3 radio station (Designing Web Audio)
Refresh header: 13.2.1. Uniquely Refreshing (HTML & XHTML: The Definitive Guide)
refresh value (http-equiv attribute): 9.4.1.1. Meta tags for client-pull (Web Design in a Nutshell)
9.4.1.1. Meta tags for client-pull (Web Design in a Nutshell)
registration points of movie clips: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_x property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_y property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
regular expressions, not supported: 4.6.5.5. No regular expressions (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
regular movie clips: 13.2.2. Regular Movie Clips (ActionScript: The Definitive Guide)
rel attribute: B. List of Attributes (Web Design in a Nutshell)
6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
6.7.2.2. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
tag: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
17.2.2.3. External style sheets (Web Design in a Nutshell)
relational database model: 3.2.2.4. The relational database model: A bottom-up approach (Information Architecture for the World Wide Web)
relational operators (see comparison operators)
relationships
between HTML documents: 6.7. Relationships (HTML & XHTML: The Definitive Guide)
between hyperlinks: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
relative
column widths: 13.7.5.3. Relative column widths (Web Design in a Nutshell)
font sizes: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
pathnames: 4.2.2. Relative Pathnames (Web Design in a Nutshell)
positioning (style sheets): 17.6.1.1. Relative positioning (Web Design in a Nutshell)
URLs: 11.2.2. Relative URLs (Web Design in a Nutshell)
relative font size: 4.6.3.1. The size attribute (HTML & XHTML: The Definitive Guide)
relative font sizing: 5.3.2. Relative Sizes (Cascading Style Sheets: The Definitive Guide)
relative frame sizes: 11.3.1.1. The rows and cols attributes (HTML & XHTML: The Definitive Guide)
relative length units: 3.2.2. Relative Length Units (Cascading Style Sheets: The Definitive Guide)
relative positioning: 9.2. Relative Positioning (Cascading Style Sheets: The Definitive Guide)
relative references: 2.5.6.1. The _root and _ parent properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
relative URLs: 3.4. URLs (Cascading Style Sheets: The Definitive Guide)
2.7.1. URLs (HTML & XHTML: The Definitive Guide)
6.2.11. Absolute and Relative URLs (HTML & XHTML: The Definitive Guide)
advantages of using: 6.2.11.3. Using relative URLs (HTML & XHTML: The Definitive Guide)
tag: 6.7.1. The <base> Header Element (HTML & XHTML: The Definitive Guide)
release button event: 10.8.2. release (ActionScript: The Definitive Guide)
releaseOutside button event: 10.8.3. releaseOutside (ActionScript: The Definitive Guide)
relevance, sorting by: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
REMOTE_ADDR variable: 18.7.1. Other Available Variables (Web Design in a Nutshell)
remote encoding: 6.6.5.1. Remote encoding and management (Designing Web Audio)
REMOTE_HOST variable: 18.7.1. Other Available Variables (Web Design in a Nutshell)
remote navigation elements: 4.6. Remote Navigation Elements (Information Architecture for the World Wide Web)
removeMovieClip( )
deleting attached and duplicated instances: to Delete Instances (ActionScript: The Definitive Guide) 13.6.2. Using removeMovieClip( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
target parameter and: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
removeNode( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rendering engines: 8. Visual Formatting (Cascading Style Sheets: The Definitive Guide)
rendering quality of Player
_highquality global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_quality global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
toggleHighQuality global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
repeating images: 6.2.2. Repeats with Direction (Cascading Style Sheets: The Definitive Guide)
(Cascading Style Sheets: The Definitive Guide) 6.2.4. Repeats with Direction (Revisited)
repetition grammar rules, elements: 15.4.1. Sequence, Choice, Grouping, and Repetition (HTML & XHTML: The Definitive Guide)
repetitive sound, avoiding: 1.5. Audio challenges and limitations (Designing Web Audio)
replaced elements: 2.9. Classification of Elements (Cascading Style Sheets: The Definitive Guide)
8.2.4. Block-Level Replaced Elements (Cascading Style Sheets: The Definitive Guide)
8.4. Inline Elements (Cascading Style Sheets: The Definitive Guide)
inline: 8.4.4. Inline Replaced Elements (Cascading Style Sheets: The Definitive Guide)
adding box properties to: 8.4.4.1. Adding box properties (Cascading Style Sheets: The Definitive Guide)
replication
border color: 7.4.3. Border Colors (Cascading Style Sheets: The Definitive Guide)
border widths: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
margins: 7.3.3. Replicating Values (Cascading Style Sheets: The Definitive Guide)
value: 7.4.1.1. Multiple styles (Cascading Style Sheets: The Definitive Guide)
Request for Comments (RFC): 1.6. The Importance of Standards (Web Design in a Nutshell)
research
brainstorming site design: 8.1. Brainstorming with White Boards and Flip Charts (Information Architecture for the World Wide Web)
choosing what to index for: 6.5. Indexing the Right Stuff (Information Architecture for the World Wide Web)
for creating web sites: 7. Research (Information Architecture for the World Wide Web)
on intended audiences: 7.3. Learning About the Intended Audiences (Information Architecture for the World Wide Web)
searching for: 6.2.1.4. Comprehensive searching (research) (Information Architecture for the World Wide Web)
on site usage: 9.6.4. Usage Tracking (Information Architecture for the World Wide Web)
reserved characters (see special characters)
reserved words: 14.4. Reserved Words (ActionScript: The Definitive Guide)
Reset button for forms: 17.2.4. Receiving Results from the Server (ActionScript: The Definitive Guide)
reset buttons: 9.5.4.2. Reset buttons (HTML & XHTML: The Definitive Guide)
reset buttons on forms: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.6. Submit and reset buttons (Web Design in a Nutshell)
reset value for WML type attribute: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
resizable web pages: 2.2. Fixed Versus Flexible Web Page Design (Web Design in a Nutshell)
resizing images: 5.2.6.11. Resizing and flood-filling images (HTML & XHTML: The Definitive Guide)
resolution: 3.1. Selecting the right equipment (Designing Web Audio)
image: 3.4.2. Image Resolution (Web Design in a Nutshell)
monitor: 2.2.4. Choosing a Page Size (Web Design in a Nutshell)
unknown: 2.1. Dealing with Unknown Monitor Resolutions (Web Design in a Nutshell)
Resource Description Framework (RDF): 30.6. Where to Learn More (Web Design in a Nutshell)
resources for further information
instances: 11.2.4. Styling Common Elements (Cascading Style Sheets: The Definitive Guide)
responding to user feedback: 9.6.3. Questions and Suggestions (Information Architecture for the World Wide Web)
response headers (HTTP): 4.1.2.3. HTTP response header (Web Design in a Nutshell)
Restore to Background/Previous method: 23.5.3. Disposal Methods (Web Design in a Nutshell)
restrictions on pseudo-classes/ pseudo-elements: 2.4.3. Restrictions on Pseudo-Class and Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
retailers
audio equipment, selecting: A.2.7. Mixers (Designing Web Audio)
getting best deal from: A.3.1. Headphones (Designing Web Audio)
retrieved documents (see searching)
Return key, capturing: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
return statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
6.3.8. The return Statement (ActionScript: The Definitive Guide)
returning values from functions: 9.4.2. Returning Values from Functions (ActionScript: The Definitive Guide)
terminating functions: 9.4.1. Terminating a Function (ActionScript: The Definitive Guide)
reusing images: 12.3.6.2. Reuse images whenever possible (Web Design in a Nutshell)
5.2.4. Speeding Image Downloads (HTML & XHTML: The Definitive Guide)
rev attribute: B. List of Attributes (Web Design in a Nutshell)
6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
6.7.2.2. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
tag: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
reverberation: 4. Optimizing Your Sound Files (Designing Web Audio)
4.2.1. Reverb (Designing Web Audio)
artificial: 4.2.1. Reverb (Designing Web Audio)
delay: 2.1.5. Reverberation and delay (Designing Web Audio)
recording environment: 3.2.1.1. Proper room acoustics: capturing a "dry" signal (Designing Web Audio)
reverse( ) (Array class): Method (ActionScript: The Definitive Guide) 11.9.1. The reverse( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
reverse effect: 4.2.5. Backwards (Designing Web Audio)
Revert to Previous method: 23.3. Browser Support (Web Design in a Nutshell)
RFC (Request for Comments): 1.6. The Importance of Standards (Web Design in a Nutshell)
RGB color values: 4.6.3.2. The color attribute (HTML & XHTML: The Definitive Guide)
8.4.1.5. Color property values (HTML & XHTML: The Definitive Guide)
(see also colors)
RGB colors: 3.1.2. Colors by RGB (Cascading Style Sheets: The Definitive Guide)
RGB (red, green, blue) values: 3.3.1.1. RGB color (Web Design in a Nutshell)
systems for representing: 3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
16.1. Specifying Color by RGB Values (Web Design in a Nutshell)
17.4.2.2. By RGB values (Web Design in a Nutshell)
working in: 3.4.4.1. Work in RGB mode (Web Design in a Nutshell)
RGB triplet notation: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getRGB( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setRGB( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
RGBA quadlet notation: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getTransform( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setTransform( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rhythm, importance in sound design: 1.5. Audio challenges and limitations (Designing Web Audio)
rhythm loops, seamless: 1.7.3.3. Optimum loop length (Designing Web Audio)
Rich Music Format (RMF): 5.2. Streaming media formats (Designing Web Audio)
(Designing Web Audio) 5.2.5. Beatnik's Rich Music Format (RMF)
11. Designing Audio Web Sites with Beatnik (Designing Web Audio)
ready-made music files from Beatnik: 11.3.3. Lesson 3: Adding simple background music (Designing Web Audio)
.rmf files, creating with Beatnik Editor: 11.2.3. Beatnik Editor (Designing Web Audio)
Rich Music Format (.rmf) files: 24.5.9. Beatnik's Rich Music Format (.rmf) (Web Design in a Nutshell)
richness property: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
ridged borders: 8.4.6.5. The border-style property (HTML & XHTML: The Definitive Guide)
Ridgway, Reid: 1.9.2. Timing loops (Designing Web Audio)
right alignment (see alignment)
right alignment (text): 10.7.4. Right and Left Alignment (Web Design in a Nutshell)
right-associative operators: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
right property: 9.1.2. Side Offsets (Cascading Style Sheets: The Definitive Guide)
RIGHT property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
\:right pseudo-class: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
\:right pseudo-class[right pseudo-class: 10.2.3.5. Miscellaneous pseudo-elements and pseudo-classes (Cascading Style Sheets: The Definitive Guide)
right shift assignment (>>=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
right shift (>>) operator: 15.2.5.1. Signed right shift (ActionScript: The Definitive Guide)
right-to-left directionality: 7.2.2. Directionality (Web Design in a Nutshell)
right value
align attribute: 12.3.5. Horizontal Alignment (Web Design in a Nutshell)
clear attribute: 12.3.5.2. Stopping text wrap (Web Design in a Nutshell)
Rio player: 8.4.3.1. Selecting tracks (Designing Web Audio)
ripping: 8.4.1.1. Working with the CDDB (Designing Web Audio)
rl property (transformobject): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
.rm (RealMedia) files: 26.5.2. Flash and RealPlayer (Web Design in a Nutshell)
RMEdit: 6.1.4. RealAudio utilities (Designing Web Audio)
.rmf (Rich Music Format): 24.5.9. Beatnik's Rich Music Format (.rmf) (Web Design in a Nutshell)
RMMerge utility: 6.1.4. RealAudio utilities (Designing Web Audio)
synchronizing RealAudio output with: 6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
rmserver.cfg: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
robots value ( ): 9.4.2.1. Meta tags for search engines (Web Design in a Nutshell)
Rocktropolis web site: 6.6. Case study: N2K streams live M[DBLENTITY:ouml]tley Cr[DBLENTITY:uuml]e concert (Designing Web Audio)
Roland Sound Canvas: 5.2.3. QuickTime (Designing Web Audio)
10.3. Creating your own MIDI files (Designing Web Audio)
Roland Sound set: 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
rollOut button event: 10.8.5. rollOut (ActionScript: The Definitive Guide)
rollOver button event: 10.8.4. rollOver (ActionScript: The Definitive Guide)
rollovers: 11.6.4.2. Rollover buttons (Web Design in a Nutshell)
multipart images in tables: 13.8. Multipart Images in Tables (Web Design in a Nutshell)
style changes (DHTML): 29.5.1. Rollover Style Changes (Web Design in a Nutshell)
room tone: 4.1.2. Avoiding gaps between edited sections (Designing Web Audio)
rooms, determining acoustic characteristics of: 3.2.1.1. Proper room acoustics: capturing a "dry" signal (Designing Web Audio)
root directory (server): 4.1.2.1. Root directory (Web Design in a Nutshell)
4.2. Unix Directory Structures (Web Design in a Nutshell)
root element: 2.5. Structure (Cascading Style Sheets: The Definitive Guide)
root elements in XML: 30.3. XML Document Syntax (Web Design in a Nutshell)
_root global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
accessing variables on different timelines: 2.5.6.1. The _root and _ parent properties (ActionScript: The Definitive Guide)
referencing current level of main movie: 13.5.4.1. Referencing the current level's main movie using _root (ActionScript: The Definitive Guide)
root-layout tag, SMIL: 7.2.1. SMIL syntax (Designing Web Audio)
root pitch: 11.4.4. Making a custom instrument from your imported samples (Designing Web Audio)
rotating a movie clip toward mouse pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_rotation property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
round( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rounding numbers to arbitrary number of decimal places: 4.3.2.1. Floating-point precision (ActionScript: The Definitive Guide)
rows, creating in tables: 10.2.3. The <tr> Tag (HTML & XHTML: The Definitive Guide)
rows attribute: B. List of Attributes (Web Design in a Nutshell)
9.7.1.1. The rows and cols attributes (HTML & XHTML: The Definitive Guide)
11.3.1.1. The rows and cols attributes (HTML & XHTML: The Definitive Guide)
tag: 14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.3.2. Establishing Rows and Columns (Web Design in a Nutshell)
15.1. Summary of Form Tags (Web Design in a Nutshell)
rows (frameset): 14.3.2. Establishing Rows and Columns (Web Design in a Nutshell)
rows (tables): 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.3.1. Rows and Cells (Web Design in a Nutshell)
13.3.1. Rows and Cells (Web Design in a Nutshell)
(see also tables)
aligning cell text in: 13.4.3. Aligning Text in Cells (Web Design in a Nutshell)
coloring: 13.4.6. Coloring Tables (Web Design in a Nutshell)
controlling: 13.3.1.2. Row-level controls (Web Design in a Nutshell)
grouping: 13.3.3. Row and Column Groups (Web Design in a Nutshell)
restraining heights of: 13.5.6. Restraining Row Heights (Web Design in a Nutshell)
sizing: 13.4.4. Sizing Tables (Web Design in a Nutshell)
13.7.4. Creating a Box Rule (Web Design in a Nutshell)
spanning: 13.3.2.2. Row span (Web Design in a Nutshell)
13.6.4. Rowspans Made Easy (Web Design in a Nutshell)
rowspan attribute: 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.3.2.2. Row span (Web Design in a Nutshell)
13.6.4. Rowspans Made Easy (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
rowspan attribute ( and ): 10.2.4.5. The rowspan attribute (HTML & XHTML: The Definitive Guide)
royalty-free audio resources: 24.2.2. Royalty-Free Audio Resources (Web Design in a Nutshell)
RPM files: 6.1.5. RealAudio 5.0 file types and metafiles (Designing Web Audio)
6.2.2. Requirements for HTTP streaming (Designing Web Audio)
rr property (transformobject): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
rtl value (dir attribute): 7.2.2. Directionality (Web Design in a Nutshell)
RTSP (RealTime Streaming Protocol): 5.1. Streaming protocols (Designing Web Audio)
7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
ruby text: 7.3. Style Sheets Language Features (Web Design in a Nutshell)
@ rules: 10.8. Media Types and @-rules (Cascading Style Sheets: The Definitive Guide)
rules attribute ( ): 13.1. Summary of Table Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
10.2.1.4. The frame and rules attributes (HTML & XHTML: The Definitive Guide)
rules (style sheet): 17.2.1. Rule Syntax (Web Design in a Nutshell)
selectors: 17.3. Selectors (Web Design in a Nutshell)
17.7.1. New Selectors (Web Design in a Nutshell)
runaway scripts, issues when cancelling: 8.6.3. Maximum Number of Iterations (ActionScript: The Definitive Guide)
runtime error messages: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
runtime import and shared libraries: 16.7.3. Shared Library (Runtime Import) (ActionScript: The Definitive Guide)
RVBatch command: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
Rvencode directory: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: S

S element: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
(strike-through) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
sales, music: 1.7.3. Designing music loops (Designing Web Audio)
salign attribute ( ): 26.4.2.1. The <embed> tag (Web Design in a Nutshell)
(sample text) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
<samp> tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
4.4.8. The <samp> Tag (HTML & XHTML: The Definitive Guide)
sample projects using CSS: 11. CSS in Action (Cascading Style Sheets: The Definitive Guide)
sampling frequency: 8.2.1. MP3 technical details (Designing Web Audio)
sampling rate: 2.2. Digital audio demystified (Designing Web Audio)
8.4.2.3. 128 Kbps Internet standard (Designing Web Audio)
24.1. Basic Digital Audio Concepts (Web Design in a Nutshell)
24.3.3. Optimizing for the Web (Web Design in a Nutshell)
codecs: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
sans serif fonts: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
Scalable Vector Graphics (SVG): 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
scale attribute ( ): 26.4.2.1. The <embed> tag (Web Design in a Nutshell)
scaling factor
absolute font sizes: 5.3.1. Absolute Sizes (Cascading Style Sheets: The Definitive Guide)
line height and: 4.1.2. The Height of Lines (Cascading Style Sheets: The Definitive Guide)
scaling line heights: 8.4.3.1. Scaling the line heights (Cascading Style Sheets: The Definitive Guide)
scenarios for web sites: 8.3. Scenarios (Information Architecture for the World Wide Web)
scenes
moving playhead to
next scene: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
previous scene: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vs. pseudo-scenes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
scenes in Flash: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
scheme attribute ( ): 9.1. Summary of Structural Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
6.8.1.5. The scheme attribute (HTML & XHTML: The Definitive Guide)
schemes, URL: 6.2. Referencing Documents: The URL (HTML & XHTML: The Definitive Guide)
6.2.11.1. Relative schemes and servers (HTML & XHTML: The Definitive Guide)
scope
built-in object classes: 10.7.3. Other Object Event Handler Scope (ActionScript: The Definitive Guide)
button event handlers: 10.7.2. Button Event Handler Scope (ActionScript: The Definitive Guide)
event handler: 10.7. Event Handler Scope (ActionScript: The Definitive Guide)
function (see function scope)
movie clip event handlers: 10.7.1. Movie Clip Event Handler Scope (ActionScript: The Definitive Guide)
problems with: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
variable: 2.5. Variable Scope (ActionScript: The Definitive Guide)
scope attribute ( and ): 13.1. Summary of Table Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
10.2.4.11. The headers and scope attributes (HTML & XHTML: The Definitive Guide)
scope chain: 9.7.1. The Scope Chain (ActionScript: The Definitive Guide)
15.3. Advanced Function Scope Issues (ActionScript: The Definitive Guide)
scope notes: 5.3.1. Labels Within Navigation Systems (Information Architecture for the World Wide Web)
screen media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
screen value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
screens, transitions between: 1.9.2. Timing loops (Designing Web Audio)
Script box (Actions panel): 1.1.1. Creating Code (ActionScript: The Definitive Guide)
script clips: 13.2.5. Script Clips (ActionScript: The Definitive Guide)
script files, importing text of: 16.7.2. #include (Compile-Time Import) (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Script pane (Actions panel): 16.1. The Actions Panel (ActionScript: The Definitive Guide)
adding code to buttons: 16.3. Adding Scripts to Buttons (ActionScript: The Definitive Guide)
adding statements to: 16.1.1.1. Normal Mode (ActionScript: The Definitive Guide)
scripting controls, fade-out: 1.9.2. Timing loops (Designing Web Audio)
scripts: 1.2.1. Flash Programs (ActionScript: The Definitive Guide)
adding
to buttons: 16.3. Adding Scripts to Buttons (ActionScript: The Definitive Guide)
to frames: 16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
to movie clips: 16.4. Adding Scripts to Movie Clips (ActionScript: The Definitive Guide)
creating
calculation scripts: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
main timeline variables: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
2.5. Variable Scope (ActionScript: The Definitive Guide)
functions in: 1.2.4. Modular Code (Functions) (ActionScript: The Definitive Guide)
locating using Movie Explorer: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
remotely executing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Scroll Lock key and isToggled( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
scroll property (text field): 18.4.1. The scroll Property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
maxscroll property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
scroll value (marquee behavior): 5.5.1.2. The behavior, direction, and loop attributes (HTML & XHTML: The Definitive Guide)
scrollamount attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
5.5.1.6. The scrollamount and scrolldelay attributes (HTML & XHTML: The Definitive Guide)
scrollbars: 9.1.4.1. Overflow (Cascading Style Sheets: The Definitive Guide)
block-level elements and: 8.2.1.1. Height (Cascading Style Sheets: The Definitive Guide)
scrolldelay attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
5.5.1.6. The scrollamount and scrolldelay attributes (HTML & XHTML: The Definitive Guide)
scrolling
background image: 17.5.3. Background Properties (Web Design in a Nutshell)
fixing images against: 5.3.1.3. The bgproperties attribute (HTML & XHTML: The Definitive Guide)
8.4.4.1. The background-attachment property (HTML & XHTML: The Definitive Guide)
frames: 11.4.1.4. The scrolling attribute (HTML & XHTML: The Definitive Guide)
frames and: 14.4.2. Scrolling (Web Design in a Nutshell)
tags and: 5.5.1. The <marquee> Tag (HTML & XHTML: The Definitive Guide)
menus in forms: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.3. Creating Menus with the <select> Tag (Web Design in a Nutshell)
15.6.3. Working with Menus (Web Design in a Nutshell)
scrolling attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.1. Summary of Frame Tags (Web Design in a Nutshell)
14.4.2. Scrolling (Web Design in a Nutshell)
scrolling attribute ( ): 11.4.1.4. The scrolling attribute (HTML & XHTML: The Definitive Guide)
scrollingnews window type, RealText: 7.4.2. Window types (Designing Web Audio)
example of: 7.4.2. Window types (Designing Web Audio)
sc_serv.ini: 8.6.1.4. Additional server options (Designing Web Audio)
SDMI (see Secure Digital Music Initiative)
search engines
framed documents and: 14.2.2. Disadvantages (Web Design in a Nutshell)
14.7.3. Helping Search Engines (Web Design in a Nutshell)
tag: 15.1. Summary of Form Tags (Web Design in a Nutshell)
tags for: 9.4.2.1. Meta tags for search engines (Web Design in a Nutshell)
search parameter of URLs: 6.2.2.5. The http search parameter (HTML & XHTML: The Definitive Guide)
searchable documents: 2.9.2. Searchable Documents (HTML & XHTML: The Definitive Guide)
6.6. Creating Searchable Documents (HTML & XHTML: The Definitive Guide)
searching: 3.2.1.1.1. Alphabetical (Information Architecture for the World Wide Web)
6.1. Searching and Your Web Site (Information Architecture for the World Wide Web)
ability to find: 1.2.1.1. Can't find it (Information Architecture for the World Wide Web)
1.2.2.4. "Findability" (Information Architecture for the World Wide Web)
browsing and: 6.2.2. Searching and Browsing Are Integrated (Information Architecture for the World Wide Web)
6.3.2. Searching and Browsing Systems Should Be Closely Integrated (Information Architecture for the World Wide Web)
8.3. Scenarios (Information Architecture for the World Wide Web)
choosing what to index: 6.5. Indexing the Right Stuff (Information Architecture for the World Wide Web)
chronologically: 6.5.2.4. Yesterday's news: Indexing recent content (Information Architecture for the World Wide Web)
defining searching system: 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
designing interface for: 6.3. Designing the Search Interface (Information Architecture for the World Wide Web)
displaying search results: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
by relevance: 6.3.6. Display Search Results Sensibly (Information Architecture for the World Wide Web)
HFHS case study: 10.2.4. Searching System (Information Architecture for the World Wide Web)
iterations of: 6.2.3. Multiple Iterations Are Commonplace (Information Architecture for the World Wide Web)
known-item searching: 3.2.1.1. Exact organization schemes (Information Architecture for the World Wide Web)
6.2.1.1. Known-item searching (Information Architecture for the World Wide Web)
labels for: 5.3.2. Labels as Indexing Terms (Information Architecture for the World Wide Web)
reference interviews: 6.4. In an Ideal World: The Reference Interview (Information Architecture for the World Wide Web)
search engines
clarity of options for: 6.3.4. Search Options Should Be Clear (Information Architecture for the World Wide Web)
conforming to whole web site: 6.3.3. Searching Should Conform to the Site's Look and Feel (Information Architecture for the World Wide Web)
considering audience needs: 6.3.5. Choose a Search Engine That Fits Users' Needs (Information Architecture for the World Wide Web)
disadvantages of: 6.1.1. When Not To Make Your Site Searchable (Information Architecture for the World Wide Web)
obtaining an existing engine: 6.3.5. Choose a Search Engine That Fits Users' Needs (Information Architecture for the World Wide Web)
tracking queries of: 9.6.4. Usage Tracking (Information Architecture for the World Wide Web)
search zones: 6.5.2. Search Zones: Selectively Indexing the Right Content (Information Architecture for the World Wide Web)
by subject: 6.5.2.3. Drilling down: Indexing by subject (Information Architecture for the World Wide Web)
types of (reasons for): 6.2.1. Users Have Different Kinds of Information Needs (Information Architecture for the World Wide Web)
6.3.1. Support Different Modes of Searching (Information Architecture for the World Wide Web)
user feedback on: 6.3.8. Always Provide the User with Feedback (Information Architecture for the World Wide Web)
when to make sites searchable: 6.1.1. When Not To Make Your Site Searchable (Information Architecture for the World Wide Web)
searching strings: function (ActionScript: The Definitive Guide) 4.6.5.3. The indexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
seconds of a date
assigning: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sections
document: 4.1.1. The <div> Tag (HTML & XHTML: The Definitive Guide)
5.1.2. Using Rules to Divide Your Document (HTML & XHTML: The Definitive Guide)
performance and: 5.2.4. Speeding Image Downloads (HTML & XHTML: The Definitive Guide)
table: 10.3.1. Defining Table Sections (HTML & XHTML: The Definitive Guide)
Secure Digital Music Initiative (SDMI): 8.4.3.1. Selecting tracks (Designing Web Audio)
8.7.1. Is MP3 legal? (Designing Web Audio)
security
ActiveX and: 12.1.1.4. Writing applets (HTML & XHTML: The Definitive Guide)
broadcasting over Intranet: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
Internet music delivery: 5.2.7. Liquid Audio (Designing Web Audio)
mailto forms, problems with: 9.4.1. Problems with Email Forms (HTML & XHTML: The Definitive Guide)
music piracy: 8.4.3.1. Selecting tracks (Designing Web Audio)
security issues
loadVariables( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.connect( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
seed clips: 13.2.7. Seed Clips (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
assigning instances to stacks: are added to the stack (ActionScript: The Definitive Guide) 13.4.2.2. How clips generated via duplicateMovieClip( )
inheriting transformations: 13.3.2.2. Creating instances with duplicateMovieClip( ) (ActionScript: The Definitive Guide)
seek time: 3.1.2. Microphone pre-amps (Designing Web Audio)
Selectable option for text fields: 18.3.5. Selectable (ActionScript: The Definitive Guide)
selected attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.3.1. Pull-down menus (Web Design in a Nutshell)
selected attribute ( ): 9.8.2.2. The selected attribute (HTML & XHTML: The Definitive Guide)
selection lists: 9.8.1. The <select> Tag (HTML & XHTML: The Definitive Guide)
Selection object: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
working with text field selections: 18.6. Working with Text Field Selections (ActionScript: The Definitive Guide)
Selection.getBeginIndex( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Selection.getCaretIndex( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Selection.getEndIndex( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Selection.getFocus( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Selection.setFocus( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Selection.setSelection( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
selective indexes: 6.5.2. Search Zones: Selectively Indexing the Right Content (Information Architecture for the World Wide Web)
Selective Record option, RealAudio batch encoding: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
selector, Gopher URLs: 6.2.10.2. The gopher path (HTML & XHTML: The Definitive Guide)
selectors: 2.1.1. Rule Structure (Cascading Style Sheets: The Definitive Guide)
class: 2.3. Class and ID Selectors (Cascading Style Sheets: The Definitive Guide)
2.3.1. Class Selectors (Cascading Style Sheets: The Definitive Guide)
CSS2: 10.2. CSS2 Selectors (Cascading Style Sheets: The Definitive Guide)
grouping: 2.2.1. Grouping Selectors (Cascading Style Sheets: The Definitive Guide)
ID: 2.3. Class and ID Selectors (Cascading Style Sheets: The Definitive Guide)
2.3.2. ID Selectors (Cascading Style Sheets: The Definitive Guide)
pseudo-class: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
pseudo-element: 2.4.2. Pseudo-Element Selectors (Cascading Style Sheets: The Definitive Guide)
selectors, style rules
contextual: 8.2.3. Contextual Selectors (HTML & XHTML: The Definitive Guide)
12.4.1.5. Using contextual styles (HTML & XHTML: The Definitive Guide)
multiple: 8.2.2. Multiple Selectors (HTML & XHTML: The Definitive Guide)
universal child and adjacent selectors: 8.2.4. Universal, Child, and Adjacent Selectors (HTML & XHTML: The Definitive Guide)
selectors (style sheet rules): 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.3. Selectors (Web Design in a Nutshell)
17.7.1. New Selectors (Web Design in a Nutshell)
self-centered labeling: 5.1.3. Self-Centered Labeling (Information Architecture for the World Wide Web)
self-commenting code: 14.3. Comments (ActionScript: The Definitive Guide)
_self target: 14.5.2. Reserved target names (Web Design in a Nutshell)
11.7.2. Special Targets (HTML & XHTML: The Definitive Guide)
semicolon (;)
missing: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
terminating statements with: 1.1.4. The Wizard Behind the Curtain (the Interpreter) (ActionScript: The Definitive Guide)
6.2. Statement Syntax (ActionScript: The Definitive Guide)
9.2. Running Functions (ActionScript: The Definitive Guide)
(ActionScript: The Definitive Guide) 14.2. Statement Terminators (Semicolons)
semicolon (;) in character entities: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
semicolon (;) terminating declarations: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
2.2.2. Grouping Declarations (Cascading Style Sheets: The Definitive Guide)
; (semicolon) in character entities: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
send( )
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transmitting form-based data to web servers: 17.1.2. Transmitting Data for Server-Side Processing (ActionScript: The Definitive Guide)
XMLSocket class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sendAndLoad( ) (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transmitting form-based data to web servers: 17.1.2. Transmitting Data for Server-Side Processing (ActionScript: The Definitive Guide)
XML.loaded property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
seq tag, SMIL: 7.2.2. Establishing a timeline (Designing Web Audio)
sequence grammar rules, elements: 15.4.1. Sequence, Choice, Grouping, and Repetition (HTML & XHTML: The Definitive Guide)
sequencers: 10.3.3. MIDI file editing tutorial (Designing Web Audio)
Appendix A.2.5. Sequencers: MIDI and digital audio recording and editing applications (Designing Web Audio)
shareware and freeware, web sites: A.4.2. MIDI files and sequencers (Designing Web Audio)
serendipity mode: 8.3. Scenarios (Information Architecture for the World Wide Web)
serif fonts: 5.1. Font Families (Cascading Style Sheets: The Definitive Guide)
server applications
closing open connections to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
opening connections to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
support for: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transmitting XML-formatted data to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
server-push documents: 13.1. An Overview of Dynamic Documents (HTML & XHTML: The Definitive Guide)
13.3. Server -Push Documents (HTML & XHTML: The Definitive Guide)
server-side applications: 9.12.1. Returning Results (HTML & XHTML: The Definitive Guide)
server-side image maps: 2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.1. Server-Side Image Maps (HTML & XHTML: The Definitive Guide)
server-side imagemaps: 11.6. Imagemaps (Web Design in a Nutshell)
11.6.3. Server-Side Imagemaps (Web Design in a Nutshell)
12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
multipart images in tables: 13.8. Multipart Images in Tables (Web Design in a Nutshell)
text alternatives: 6.1.3. The Techniques (Web Design in a Nutshell)
11.6.4.1. Providing complete alternative text (Web Design in a Nutshell)
Server Side Includes (see SSI)
server/client TCP/IP connection (XMLSocket class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
servers: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
4. A Beginner's Guide to the Server (Web Design in a Nutshell)
1.2.1. Clients, Servers, and Browsers (HTML & XHTML: The Definitive Guide)
CDDB: 8.4.1.1. Working with the CDDB (Designing Web Audio)
data to/from (see forms)
file servers: 6.2.5.1. The file server (HTML & XHTML: The Definitive Guide)
Flash files, configuring for: 26.3.4. Configuring the Server (Web Design in a Nutshell)
form programming: 9.12. Forms Programming (HTML & XHTML: The Definitive Guide)
FTP: 8.5.1. Creating your own MP3 site (Designing Web Audio)
ftp servers: 6.2.4.2. The ftp server and port (HTML & XHTML: The Definitive Guide)
gopher: 6.2.10.1. The gopher server and port (HTML & XHTML: The Definitive Guide)
http servers: 6.2.2.1. The http server (HTML & XHTML: The Definitive Guide)
tag and: 6.6.1.5. Server dependencies (HTML & XHTML: The Definitive Guide)
Liquid Server: 8.8. MP3 resources (Designing Web Audio)
log analysis of: 1.2.1.1. Server log analysis (Web Design in a Nutshell)
nntp servers: 6.2.7.1. The nntp server and port (HTML & XHTML: The Definitive Guide)
Server Name option, RealAudio batch encoding: 6.3.2.1. Encoding RealAudio with a batch processor (Designing Web Audio)
Shockwave, configuring for: 26.7.4. Configuring the Server (Web Design in a Nutshell)
software for: 4.1.1. Popular Server Software (Web Design in a Nutshell)
telnet server: 6.2.9.2. The telnet server and port (HTML & XHTML: The Definitive Guide)
Windows Media Server: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
servers, external style sheets and: 11.2.11. Serving CSS Up Correctly (Cascading Style Sheets: The Definitive Guide)
ServerWatch: 4.1.1. Popular Server Software (Web Design in a Nutshell)
set command (SSI): 18.6. SSI Commands (Web Design in a Nutshell)
set statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
vs. Set Variable in Flash 4: 6.3.4. The set Statement (Set Variable) (ActionScript: The Definitive Guide)
Set Variable (Flash 4): 6.3.4. The set Statement (Set Variable) (ActionScript: The Definitive Guide)
setDate( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setFocus( ) (Selection object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setFullYear( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setHours( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setInterval( )
process clips as alterative to: 13.2.4. Process Clips (ActionScript: The Definitive Guide)
simulating: 8.7. Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
D. Differences from ECMA-262 and JavaScript (ActionScript: The Definitive Guide)
setMilliseconds( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setMinutes( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setMonth( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setPan( ) (Sound class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setProperty( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setRGB( ) (Color class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setSeconds( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setSelection( ) (Selection object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setTime( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setTimeout( )
process clips as alterative to: 13.2.4. Process Clips (ActionScript: The Definitive Guide)
simulating: 8.7. Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
D. Differences from ECMA-262 and JavaScript (ActionScript: The Definitive Guide)
setTimeout( ) method: 29.5.3. Sliding Tabs (Web Design in a Nutshell)
setTransform( )
Color class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setUTCDate( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setUTCFullYear( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setUTCHours( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setUTCMilliseconds( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setUTCMinutes( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setUTCMonth( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setUTCSeconds( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setVolume( ) (Sound class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setYear( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
seven properties of horizontal formatting[seven properties of horizontal formatting: 8.2.2.1. Horizontal properties (Cascading Style Sheets: The Definitive Guide)
SGML (Standard Generalized Markup Language): 8.1.1. Keeping Style Separate from Content (Web Design in a Nutshell)
30.1. Background (Web Design in a Nutshell)
1.4. XHTML: What It Is (HTML & XHTML: The Definitive Guide)
doctype command in HTML document: 3.6. HTML Document Elements (HTML & XHTML: The Definitive Guide)
limitations of: 15. XML (HTML & XHTML: The Definitive Guide)
shading horizontal rules: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.4.4. Turning Off 3-D Shading (Web Design in a Nutshell)
shadow, adding to text: 10.3.2. text-shadow (Cascading Style Sheets: The Definitive Guide)
shape attribute: B. List of Attributes (Web Design in a Nutshell)
6.3.1.11. The coords and shape attributes (HTML & XHTML: The Definitive Guide)
6.5.4.2. The coords attribute (HTML & XHTML: The Definitive Guide)
6.5.4.7. The shape attribute (HTML & XHTML: The Definitive Guide)
tag: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
shapes attribute ( ): 12.2.1.10. The shapes and usemap attributes (HTML & XHTML: The Definitive Guide)
shared libraries and runtime import: 16.7.3. Shared Library (Runtime Import) (ActionScript: The Definitive Guide)
shareware, for writing, editing and playing music: A.4. Web resources (Designing Web Audio)
sharp sign (see #)
shift( ) (Array class): method (ActionScript: The Definitive Guide) 11.8.3.2. The shift( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Shift-JIS characters (Japanese): 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
hexadecimal escape sequences and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
shift operators, bitwise: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
15.2.5. The Bitwise Shift Operators (ActionScript: The Definitive Guide)
SHIFT property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
shifting (colors): 3.3.2.1. Shifting and dithering (Web Design in a Nutshell)
Shockwave: 5.1. Streaming protocols (Designing Web Audio)
9. Interactive Sound Design with Flash and Shockwave (Designing Web Audio)
9.3. Introduction to Shockwave (Designing Web Audio)
26. Flash and Shockwave (Web Design in a Nutshell)
audio files, exporting: 9.3.4. Exporting Shockwave audio files (Designing Web Audio)
audio files, optimizing: 9.3.5. Optimizing your Shockwave audio files (Designing Web Audio)
creating transparent loops: 9.3.2. Creating transparent Shockwave loops (Designing Web Audio)
drawbacks: 9.1.1. Drawbacks to Flash and Shockwave (Designing Web Audio)
9.3. Introduction to Shockwave (Designing Web Audio)
embedded audio cast members: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
embedded internal sounds: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
embedding in frames: 1.7.3.3. Optimum loop length (Designing Web Audio)
interactive mouse rollover sounds: 1.4. Adding sound effects (Designing Web Audio)
interactive multimedia: 9.1. Flash and Shockwave basics (Designing Web Audio)
Lingo: 9.3. Introduction to Shockwave (Designing Web Audio)
movies, creating: 26.7.3. Creating Shockwave Movies (Web Design in a Nutshell)
Rasberry Media Player, using with: 9.3.6. Quick and easy audio streaming with Shockwave (Designing Web Audio)
streaming audio: 9.3.3. Shockwave streaming audio (Designing Web Audio)
transparent movies: 1.7.3.3. Optimum loop length (Designing Web Audio)
Shockwave (.dcr) files: and Shockwave (.dcr) (Web Design in a Nutshell) 24.5.8. Flash (.swf)
Shockwave Flash files (.swf): 6.4.4. Creating RealFlash content (Designing Web Audio)
short keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
shortcut keys, capturing: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
shorthand hex notation: 3.1.2.4. Short hexadecimal colors (Cascading Style Sheets: The Definitive Guide)
shorthand properties: 7.4.4. Shorthand Border Properties (Cascading Style Sheets: The Definitive Guide)
background property: 6.2.6. Bringing It All Together (Cascading Style Sheets: The Definitive Guide)
border property: 7.4.4. Shorthand Border Properties (Cascading Style Sheets: The Definitive Guide)
font property: 5.5. Using Shorthand: The font Property (Cascading Style Sheets: The Definitive Guide)
list-style property: 7.7.4. List Styles In Shorthand (Cascading Style Sheets: The Definitive Guide)
shotgun microphones: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
SHOUTcast: 5.3.7. Server performance and software quality (Designing Web Audio)
8.6. Start your own MP3 radio station (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
configuring: 8.6.2. Configuring and starting the system (Designing Web Audio)
DSP plug-in: 8.6.1. Running your own station (Designing Web Audio)
MP3 codec: 8.6.1.2. Installing an appropriate MP3 codec (Designing Web Audio)
server software: 8.6.1.3. Installing the SHOUTcast server software (Designing Web Audio)
servers: 8.6. Start your own MP3 radio station (Designing Web Audio)
show( ) (Mouse object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
show value (layer visibility): 14.3.1.5. The visibility attribute (HTML & XHTML: The Definitive Guide)
showLayer( ) function: 29.5.2. Drop-Down Menus (Web Design in a Nutshell)
29.5.2. Drop-Down Menus (Web Design in a Nutshell)
29.5.2. Drop-Down Menus (Web Design in a Nutshell)
29.5.3. Sliding Tabs (Web Design in a Nutshell)
showmenu command (standalone Player): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
shrink-wrapping content: 9.1.3.1. Setting width and height (Cascading Style Sheets: The Definitive Guide)
shrinking text: 11.2.6. The Incredible Shrinking Text! (Cascading Style Sheets: The Definitive Guide)
.shtml filename suffix: 18.3.1. Example: Virtual Includes (Web Design in a Nutshell)
sibilance, removing: 4.3.4.1. Removing sibilance (Designing Web Audio)
side heads (tables): 17.4.2. Side Heads (HTML & XHTML: The Definitive Guide)
side-offset properties: 9.1.2. Side Offsets (Cascading Style Sheets: The Definitive Guide)
sidebar: 11.1.2. Case 2: Library Catalog System Interface (Cascading Style Sheets: The Definitive Guide)
images in: 6.2.2. Repeats with Direction (Cascading Style Sheets: The Definitive Guide)
signal-to-noise (s/n) ratio
mixing boards: 3.1.3. Mixers (Designing Web Audio)
Appendix A.2.7. Mixers (Designing Web Audio)
signals, routing with mixers: 3.1.3. Mixers (Designing Web Audio)
signed right shift assignment (>>=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
signed right shift (>>) operator: 15.2.5.1. Signed right shift (ActionScript: The Definitive Guide)
silence
smoothing out: 4.1.2. Avoiding gaps between edited sections (Designing Web Audio)
using in soundtracks: 1.5. Audio challenges and limitations (Designing Web Audio)
Silicon Graphics: 6.6.5.1. Remote encoding and management (Designing Web Audio)
simple hypertext links: 11.2. Simple Hypertext Links (Web Design in a Nutshell)
simulating class/ID selectors: 10.2.2.4. Simulating class and ID (Cascading Style Sheets: The Definitive Guide)
sin( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sine, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
single attribute values, matching: 10.2.2.3. Matching single attribute values (Cascading Style Sheets: The Definitive Guide)
single-byte vs. multibyte operations: 4.6.11. Flash 4 Versus Flash 5 String Operators and Functions (ActionScript: The Definitive Guide)
Single Line option in text fields: 18.3.1. Line Display (ActionScript: The Definitive Guide)
single quotation marks ( ): 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
single quotes ( ) in strings: 4.5.2. String Literals (ActionScript: The Definitive Guide)
single-side margin properties: 7.3.4. Single-Side Margin Properties (Cascading Style Sheets: The Definitive Guide)
site maps: 4.6.3. The Site Map (Information Architecture for the World Wide Web)
site-wide navigation system: 4.4.2. Global Navigation Systems (Information Architecture for the World Wide Web)
sites (see web sites)
determining purpose of: 1.7. Designing web audio (Designing Web Audio)
navigation, improving: 1.2. What you can do with sound on the Web (Designing Web Audio)
size: 12.5.2. The <embed> Tag (Web Design in a Nutshell)
5.1.1.3. The width attribute (HTML & XHTML: The Definitive Guide)
(see also height attribute; size attribute; width attribute)
applet windows: 12.6.5.2. Adding applets with <applet> (Web Design in a Nutshell)
applets: 12.2.3.7. The height, hspace, vspace, and width attributes (HTML & XHTML: The Definitive Guide)
audio clip length: 24.3.3. Optimizing for the Web (Web Design in a Nutshell)
borders: 8.4.6.4. The border-width property (HTML & XHTML: The Definitive Guide)
8.4.6.4. The border-width property (HTML & XHTML: The Definitive Guide)
browser live space: 2.1.2. "Live" Space in the Browser Window (Web Design in a Nutshell)
column width (see columns)
columns for page layout: 13.7.5.2. Fixed-width columns (Web Design in a Nutshell)
CSS boxes: 8.4.6.1. The CSS2 formatting model (HTML & XHTML: The Definitive Guide)
8.4.6.9. The height property (HTML & XHTML: The Definitive Guide)
8.4.6.12. The width property (HTML & XHTML: The Definitive Guide)
CSS properties for: 17.5.2. Box Properties (Web Design in a Nutshell)
embedded objects: 12.2.4.1. The align, border, height, width, hspace, and vspace attributes (HTML & XHTML: The Definitive Guide)
12.2.4.8. The units attribute (HTML & XHTML: The Definitive Guide)
font size: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
8.4.3.2. The font-size property (HTML & XHTML: The Definitive Guide)
form elements: 15.6. Affecting the Appearance of Forms (Web Design in a Nutshell)
form entry controls: 9.11.1. Browser Constraints (HTML & XHTML: The Definitive Guide)
frames: 14.4.3. Disabling Resize (Web Design in a Nutshell)
11.3.1.1. The rows and cols attributes (HTML & XHTML: The Definitive Guide)
11.4.1.3. The noresize attribute (HTML & XHTML: The Definitive Guide)
11.6.1.2. The height and width attributes (HTML & XHTML: The Definitive Guide)
frameset rows/columns: 14.3.2. Establishing Rows and Columns (Web Design in a Nutshell)
graphics images: 12.3.3. Specifying Width and Height (Web Design in a Nutshell)
animated GIFs: 23.6. Optimizing Animated GIFs (Web Design in a Nutshell)
Flash file format: 26.1.1. Advantages (Web Design in a Nutshell)
GIFs: 19.8. Minimizing GIF File Sizes (Web Design in a Nutshell)
JPEGs: 20.6. Minimizing JPEG File Size (Web Design in a Nutshell)
PNGs: 21.8. PNG Optimization Strategies (Web Design in a Nutshell)
Shockwave movies: 26.7.2. Disadvantages (Web Design in a Nutshell)
thumbnails: 12.3.6.1. Link to large images (Web Design in a Nutshell)
horizontal rules: 5.1.1.3. The width attribute (HTML & XHTML: The Definitive Guide)
12.4.1. Specifying Thickness (Web Design in a Nutshell)
image: 3.4.2.1. Image size (Web Design in a Nutshell)
image map areas: 6.5.4.2. The coords attribute (HTML & XHTML: The Definitive Guide)
6.5.4.7. The shape attribute (HTML & XHTML: The Definitive Guide)
images: 5.2.6.10. The height and width attributes (HTML & XHTML: The Definitive Guide)
layers: 14.3.1.6. The width attribute (HTML & XHTML: The Definitive Guide)
length units (style sheets): 17.4.1. Length Units (Web Design in a Nutshell)
line height: 8.4.5.2. The line-height property (HTML & XHTML: The Definitive Guide)
marquee area: 5.5.1.4. The height and width attributes (HTML & XHTML: The Definitive Guide)
monitor displays: 2.1. Dealing with Unknown Monitor Resolutions (Web Design in a Nutshell)
2.2.4. Choosing a Page Size (Web Design in a Nutshell)
multiline text entry fields: 15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
resizable vs. fixed web pages: 2.2. Fixed Versus Flexible Web Page Design (Web Design in a Nutshell)
scrollbars in frames: 14.4.2. Scrolling (Web Design in a Nutshell)
selection lists: 9.8.1.2. The size attribute (HTML & XHTML: The Definitive Guide)
table cells: 10.2.4.2. The width attribute (HTML & XHTML: The Definitive Guide)
tables: 13.4.4. Sizing Tables (Web Design in a Nutshell)
13.5.6. Restraining Row Heights (Web Design in a Nutshell)
13.5.7. Column Span Problems (Web Design in a Nutshell)
13.7.4. Creating a Box Rule (Web Design in a Nutshell)
10.2.1.11. The width and height attributes (HTML & XHTML: The Definitive Guide)
text: 4.2.3. Using Headings for Smaller Text (HTML & XHTML: The Definitive Guide)
tags: 4.5.2. The <big> Tag (HTML & XHTML: The Definitive Guide)
4.5.6. The <small> Tag (HTML & XHTML: The Definitive Guide)
(HTML & XHTML: The Definitive Guide) 4.6.2. The <basefont> Tag (Deprecated)
4.6.3.1. The size attribute (HTML & XHTML: The Definitive Guide)
Extended Font Model: 4.6.1. The Extended Font Size Model (HTML & XHTML: The Definitive Guide)
text baselines: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
text entry fields: 9.5.1.1. Conventional text fields (HTML & XHTML: The Definitive Guide)
text, in pixels: 17.8.2. Specifying Text Size in Pixels (Web Design in a Nutshell)
type size: 2.2.2.2. Disadvantages (Web Design in a Nutshell)
video clip length/frame size: 25.1. Basic Digital Video Concepts (Web Design in a Nutshell)
WAP programming, screen: 32.2.3. Handheld Devices (Web Design in a Nutshell)
whitespace blocks: 14.1.1.3. Creating blocks of space (HTML & XHTML: The Definitive Guide)
size attribute: B. List of Attributes (Web Design in a Nutshell)
9.5.1.1. Conventional text fields (HTML & XHTML: The Definitive Guide)
9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
9.8.1.2. The size attribute (HTML & XHTML: The Definitive Guide)
14.1.1.1. Creating horizontal space (HTML & XHTML: The Definitive Guide)
SIZE attribute of HTML tag: 18.5.4. <FONT> (Font Control) (ActionScript: The Definitive Guide)
size attribute, using tags: 10.5. The <font> Tag (Web Design in a Nutshell)
sizefmt attribute (config command): 18.6. SSI Commands (Web Design in a Nutshell)
sketches, design: 8.6. Design Sketches (Information Architecture for the World Wide Web)
skins
creating: 8.3.4. Skins (Designing Web Audio)
templates: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
slanted text: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
slash (/): 8.2.1. Containers (Web Design in a Nutshell)
in ending tags: 2.3.1. Start and End Tags (HTML & XHTML: The Definitive Guide)
relative pathnames, using: 4.2.2.1. Using relative pathnames in HTML (Web Design in a Nutshell)
in URLs: 4.1.2.2. Index files (Web Design in a Nutshell)
4.2. Unix Directory Structures (Web Design in a Nutshell)
15.3.3. Encoding (Web Design in a Nutshell)
6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
slash syntax and _target property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
slice( )
Array class: 5.4.2. Composite Datatype Equality (ActionScript: The Definitive Guide)
Method (ActionScript: The Definitive Guide) 11.9.3. The slice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String class: function (ActionScript: The Definitive Guide) 4.6.6.3. The slice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
slide-show effects: 9.4.1.1. Meta tags for client-pull (Web Design in a Nutshell)
slide value (marquee behavior): 5.5.1.2. The behavior, direction, and loop attributes (HTML & XHTML: The Definitive Guide)
sliding tabs: 29.5.3. Sliding Tabs (Web Design in a Nutshell)
small caps: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
small-caps text: 5.4.2. Font Variations (Cascading Style Sheets: The Definitive Guide)
Smart Clips: 13.2.3. Smart Clips (ActionScript: The Definitive Guide)
16.8. Packaging Components as Smart Clips (ActionScript: The Definitive Guide)
adding custom interfaces to: 16.8.2.2. Adding a custom interface to a Smart Clip (ActionScript: The Definitive Guide)
building customized interfaces for: 16.8.2. Building a Smart Clip with a Customized Interface (ActionScript: The Definitive Guide)
building standard interfaces for: 16.8.1. Building a Smart Clip with a Standard Interface (ActionScript: The Definitive Guide)
clip parameters
configuring: 16.8.1.2. Configuring standard clip parameters (ActionScript: The Definitive Guide)
removing/reordering: 16.8.1.3. Removing and reordering standard clip parameters (ActionScript: The Definitive Guide)
using in movies: 16.8.3. Using Smart Clips (ActionScript: The Definitive Guide)
xch (exchange) instances and: 16.8.2. Building a Smart Clip with a Customized Interface (ActionScript: The Definitive Guide)
Smart-Shockwave: 1.5. Audio challenges and limitations (Designing Web Audio)
SMFs (standard MIDI files): 10.3.1. MIDI editors (Designing Web Audio)
SMIL (Synchronized Multimedia Integration Language): 5.2. Streaming media formats (Designing Web Audio)
6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
27. Introduction to SMIL (Web Design in a Nutshell)
applications supporting: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
authoring tools: 27.3. SMIL Authoring Tools (Web Design in a Nutshell)
Composer and Allaire authoring tools: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
content display, controlling: 27.4.6. Controlling Content Display (Web Design in a Nutshell)
display area: 7.2.1. SMIL syntax (Designing Web Audio)
document structure of: 27.4.2. Document Structure (Web Design in a Nutshell)
layout, controlling: 27.4.3. Controlling Layout (Web Design in a Nutshell)
media elements and: 27.4.4. Media Elements (Web Design in a Nutshell)
players: 27.2. SMIL Players (Web Design in a Nutshell)
presentations, timing: 27.4.5. Timing the Presentation (Web Design in a Nutshell)
RealFlash file, sourcing into: 7.5. RealFlash (Designing Web Audio)
RealSystem G2, use with: 7.2. SMIL (Designing Web Audio)
syntax: 7.2.1. SMIL syntax (Designing Web Audio)
time control attributes: 27.4.5.2. Time control attributes (Web Design in a Nutshell)
timeline: 7.2.2. Establishing a timeline (Designing Web Audio)
using Flash and RelPlayers: 26.5.2. Flash and RealPlayer (Web Design in a Nutshell)
smil tag, SMIL: 7.2.1. SMIL syntax (Designing Web Audio)
SND files, converting to RealMedia formats: 6.3.2. Using the RealEncoder (Designing Web Audio)
soft value for wrap attribute: 15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
softkeys in handheld devices: 32.2.3. Handheld Devices (Web Design in a Nutshell)
programming: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
software: 2.1. Writing Tools (HTML & XHTML: The Definitive Guide)
(see also text editors)
for designers: 1.7. Tools for the Web Designer (HTML & XHTML: The Definitive Guide)
formatting code: 4.4.4. The <code> Tag (HTML & XHTML: The Definitive Guide)
for writing HTML documents: 2.1. Writing Tools (HTML & XHTML: The Definitive Guide)
Sol, Selena: 15.7. Demystifying CGI (Web Design in a Nutshell)
Solaris: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
6.3.3.2. RealServer system requirements (Designing Web Audio)
6.5. Live broadcasting with RealAudio (Designing Web Audio)
remote encoding: 6.6.5.1. Remote encoding and management (Designing Web Audio)
solid borders: 8.4.6.5. The border-style property (HTML & XHTML: The Definitive Guide)
Sonic Foundry: 4. Optimizing Your Sound Files (Designing Web Audio)
24.3.2.1. Windows audio tools (Web Design in a Nutshell)
sonic realism: 1.7.3. Designing music loops (Designing Web Audio)
Sonic Studio: A.2.4.1. Pro option (Designing Web Audio)
Sonicopia: 11.3.5. Lesson 5: Putting it all together (Designing Web Audio)
sonifying web sites, Beatnik System: 11.2.4. Authoring with Beatnik (Designing Web Audio)
adding background music: 11.3.3. Lesson 3: Adding simple background music (Designing Web Audio)
mouseover, simple: 11.3.1. Lesson 1: A simple mouseover (Designing Web Audio)
multiple Music Object instances on page: 11.3.4. Lesson 4: Creating multiple Music Object instances on a page (Designing Web Audio)
navbar, building: 11.3.2. Lesson 2: Building a sonified navbar (Designing Web Audio)
putting together audio behaviors: 11.3.5. Lesson 5: Putting it all together (Designing Web Audio)
Sony Memory Stick players: 8.8. MP3 resources (Designing Web Audio)
Sony Walkman: 8.4.3.1. Selecting tracks (Designing Web Audio)
Sorenson codec: 25.2.3. Video Codecs (Web Design in a Nutshell)
sort( ) (Array class): Method (ActionScript: The Definitive Guide) 11.9.2. The sort( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sorting (see organizing information)
sorting (cascade rules): 2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
sound (see audio)
5.4. Background Audio (HTML & XHTML: The Definitive Guide)
attached sounds: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
playing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
silencing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
controlling with ActionScript: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
digital audio, converting to: 2.2. Digital audio demystified (Designing Web Audio)
editing: 4. Optimizing Your Sound Files (Designing Web Audio)
envelope: 12. Glossary (Designing Web Audio)
exporting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
left/right channels
determining balance: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
determining distribution to left/right speakers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
distributing between left/right speakers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting balance: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
muting
Sound.setVolume( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound.stop( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
stopAllSounds( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ornamental: 1.7.3.2. Good ambient loop mixing (Designing Web Audio)
panning: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
producing: 2.1. The science of sound (Designing Web Audio)
silencing (see sound, muting)
specifying streaming sound to preload: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sweetening: 4.2. Digital effects (Designing Web Audio)
types of: 1.7. Designing web audio (Designing Web Audio)
volume
retrieving current setting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
wet versus dry: 2.1.5. Reverberation and delay (Designing Web Audio)
sound cards
better, analog to digitial conversion: 6.6.2. Capturing live audio with the RealEncoder (Designing Web Audio)
input levels: 6.3. Professional webcasting (Designing Web Audio)
Sound class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sound design
colors: 1.7.2. Using sound effects (Designing Web Audio)
frequencies, selecting: 1.9.1. Selecting sounds (Designing Web Audio)
history: 1.6. Solid sound design (Designing Web Audio)
interactive, case study: 1.9. Interactive sound design case study (Designing Web Audio)
interactive sound effects and buttons: 1.8. Interactive sound effects and buttons (Designing Web Audio)
principles of: 1.6. Solid sound design (Designing Web Audio)
techniques: 1.5. Audio challenges and limitations (Designing Web Audio)
web audio: 1.7. Designing web audio (Designing Web Audio)
mistakes to avoid: 1.7.1. Easy-to-use narration (Designing Web Audio)
music loops: 1.7.3. Designing music loops (Designing Web Audio)
narration: 1.7.1. Easy-to-use narration (Designing Web Audio)
sound effects: 1.7.2. Using sound effects (Designing Web Audio)
sound effects: 1.4. Adding sound effects (Designing Web Audio)
1.7. Designing web audio (Designing Web Audio)
ambient loops, compared to: 1.7.3.1. Sound loops versus repetitive sound effects (Designing Web Audio)
event-driven: 9.2.1. Flash audio: event-driven sound versus streaming sound (Designing Web Audio)
Flash intro screen: 1.7.2. Using sound effects (Designing Web Audio)
free (and samples), web sites: A.4.3. Sound effects and samples (Designing Web Audio)
interactive: 1.8. Interactive sound effects and buttons (Designing Web Audio)
JavaScript example: 1.4. Adding sound effects (Designing Web Audio)
libraries: 1.7.3. Designing music loops (Designing Web Audio)
sonic realism: 1.7.3. Designing music loops (Designing Web Audio)
using: 1.7.2. Using sound effects (Designing Web Audio)
Sound Forge: 4. Optimizing Your Sound Files (Designing Web Audio)
9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
Appendix A.2.4.2. Budget option (Designing Web Audio)
Acid looping tool: 1.7.3. Designing music loops (Designing Web Audio)
pitch shift: 4.2.3. Pitch shift (Designing Web Audio)
Sound Forge (Sonic Foundry): 24.3.2.1. Windows audio tools (Web Design in a Nutshell)
sound libraries: A.3.3. Sound libraries (Designing Web Audio)
sound loops
length: 1.7.3.3. Optimum loop length (Designing Web Audio)
repeating: 1.9.2. Timing loops (Designing Web Audio)
seamless loops, creating: 1.7.3.4. Sound loop tutorial: creating seamless loops with a sound editor (Designing Web Audio)
Sound objects
attached sounds: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
playing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
silencing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sound peaks, reducing: 4.3.2. Compression: reducing sound peaks and spikes (Designing Web Audio)
sound waves: 2.1.4. Sound propagation and acoustics (Designing Web Audio)
Sound.attachSound( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
SoundBlaster AWE32: 10.3. Creating your own MIDI files (Designing Web Audio)
SoundBlaster Pro sound card: 6.6.1. Capturing high-quality live sound (Designing Web Audio)
_soundbuftime global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
SoundEdit 16: 3.2.1.3. Desktop audio recording (Designing Web Audio)
4. Optimizing Your Sound Files (Designing Web Audio)
9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
Appendix A.2.4.2. Budget option (Designing Web Audio)
bender effect: 4.2.4. Bender (Designing Web Audio)
digital effects: 4.2.1. Reverb (Designing Web Audio)
normalization: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
pitch shift: 4.2.3. Pitch shift (Designing Web Audio)
SoundEdit Pro, reverberation: 4.2.1. Reverb (Designing Web Audio)
SoundFX PageTunes: 10.2.2. Add a bit of spice to your site (Designing Web Audio)
Sound.getPan( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound.getTransform( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound.getVolume( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
SoundJam: 8.3. Playing MP3 files (Designing Web Audio)
8.8. MP3 resources (Designing Web Audio)
SoundMachine program: 24.4. Streaming Audio (Web Design in a Nutshell)
SoundPlay: 8.6.2.1. An easier way? (Designing Web Audio)
Sound.setPan( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound.setTransform( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound.setVolume( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound.start( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound.stop( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
soundtracks
looping: 1.3.2. Adding a looping music soundtrack (Designing Web Audio)
web: 1.2. What you can do with sound on the Web (Designing Web Audio)
space (see whitespace)
space character (&nbsp;): 10.7.1. Preformatted Text (Web Design in a Nutshell)
10.8. Character Entity References (Web Design in a Nutshell)
space characters in code: 14.1. Whitespace (ActionScript: The Definitive Guide)
SPACE property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
<spacer> tag: 14.1.1. The <spacer> Tag (HTML & XHTML: The Definitive Guide)
spaces (see whitespace)
spaces separating keywords: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
spacing: 4.1.4. Word Spacing and Letterspacing (Cascading Style Sheets: The Definitive Guide)
alignment and: 4.1.4.3. Spacing, alignment, and font size (Cascading Style Sheets: The Definitive Guide)
letter: 4.1.4.2. Letterspacing (Cascading Style Sheets: The Definitive Guide)
span attribute: B. List of Attributes (Web Design in a Nutshell)
10.3.7.1. The span attribute (HTML & XHTML: The Definitive Guide)
10.3.8.1. The span attribute (HTML & XHTML: The Definitive Guide)
tag: 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.1. Summary of Table Tags (Web Design in a Nutshell)
spanning table rows/columns: 13.3.2. Spanning Rows and Columns (Web Design in a Nutshell)
13.5.7. Column Span Problems (Web Design in a Nutshell)
Spark (TCWorks): 24.3.2.2. Mac audio tools (Web Design in a Nutshell)
spatial frequency, image: 20.2. JPEG Compression (Web Design in a Nutshell)
spatial (intraframe) compression: 25.2.2. Spatial Versus Temporal Compression (Web Design in a Nutshell)
speak properties: 10.7. Tables (Cascading Style Sheets: The Definitive Guide)
special characters: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
3.5.2. Character Entities (HTML & XHTML: The Definitive Guide)
4.10. Special Character Encoding (HTML & XHTML: The Definitive Guide)
6.2.1. Writing a URL (HTML & XHTML: The Definitive Guide)
6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
JavaScript entities: 12.3.5. JavaScript Entities (HTML & XHTML: The Definitive Guide)
in URLs: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
XHTML, handling in: 16.3.7. Handling Special Characters (HTML & XHTML: The Definitive Guide)
special characters, creating: function (ActionScript: The Definitive Guide) 4.6.9.1. The fromCharCode( )
special effects
background colors: 6.1.3. Special Effects (Cascading Style Sheets: The Definitive Guide)
perfect alignment of backgrounds: 6.2.5.1. Interesting effects (Cascading Style Sheets: The Definitive Guide)
text shadow: 10.3.2. text-shadow (Cascading Style Sheets: The Definitive Guide)
special keys
capturing: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
keycodes for: B. Latin 1 Character Repertoire and Keycodes (ActionScript: The Definitive Guide)
special processing directives, XML: 16.2.1. Declaring Document Types (HTML & XHTML: The Definitive Guide)
specificity: 2.7. Specificity (Cascading Style Sheets: The Definitive Guide)
inheritance and: 2.7.1. Inheritance and Specificity (Cascading Style Sheets: The Definitive Guide)
specificity sorting: 2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
speech
microphones for recording: 6.6.1. Capturing high-quality live sound (Designing Web Audio)
RealAudio file, encoding from AIFF or WAV: 5.1.1. Lossy compression (Designing Web Audio)
speech displays (see accessibility)
speech-synthesis browsers: 1.1.1. What a Mess (Cascading Style Sheets: The Definitive Guide)
1.1.1. What a Mess (Cascading Style Sheets: The Definitive Guide)
10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
speed: 13.6.2. Waiting for Tables to Display (Web Design in a Nutshell)
(see also performance)
audio sampling rate: 24.1. Basic Digital Audio Concepts (Web Design in a Nutshell)
24.3.3. Optimizing for the Web (Web Design in a Nutshell)
GIF animation: 23.5.1. Frame Delay (Web Design in a Nutshell)
video data/frame rates: 25.1. Basic Digital Video Concepts (Web Design in a Nutshell)
speed of display: 4.5.2.3. Display speed (Information Architecture for the World Wide Web)
spikes
reducing: 4.3.2. Compression: reducing sound peaks and spikes (Designing Web Audio)
removing: 4.1.3.1. Deleting a spike (Designing Web Audio)
Spinner: 5.3.4. Learning curve and documentation support (Designing Web Audio)
splice( ) (Array class): method (ActionScript: The Definitive Guide) 11.7.3.3. The splice( )
method (ActionScript: The Definitive Guide) 11.8.3.3. The splice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
split( ) (String class): function (ActionScript: The Definitive Guide) 4.6.6.4. The split( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sprite event handlers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sqrt( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
SQRT1_2 property (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
square attribute: 10.6.1.1. Changing the bullet shape (Web Design in a Nutshell)
square bullets: 7.3.1.1. The type attribute (HTML & XHTML: The Definitive Guide)
square root of 2: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
src attribute: NaN. List of Attributes (Web Design in a Nutshell)
SSI (Server Side Includes): 18. Server Side Includes (Web Design in a Nutshell)
commands for: 18.3. Adding SSI Commands to a Document (Web Design in a Nutshell)
environment variables: 18.4. Using Environment Variables (Web Design in a Nutshell)
18.7. Include Variables (Web Design in a Nutshell)
extended (XSSI): 18.5. XSSI (Web Design in a Nutshell)
servers and: 18.2. SSI and the Server (Web Design in a Nutshell)
stacking context: 9.5. Stacking Positioned Elements (Cascading Style Sheets: The Definitive Guide)
stacking layers (see layers)
stacking order: 17.6.2. Z-Order (Web Design in a Nutshell)
stacking positioned elements: 9.5. Stacking Positioned Elements (Cascading Style Sheets: The Definitive Guide)
stacks
document: 13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
internal layer: 13.4.1. The Internal Layer Stack (ActionScript: The Definitive Guide)
order of execution: 13.4.4. Stacks and Order of Execution (ActionScript: The Definitive Guide)
pop( )/push() and: method (ActionScript: The Definitive Guide) 11.7.3.1. The push( )
programmatically generated: 13.4.2. The Programmatically Generated Clip Stack (ActionScript: The Definitive Guide)
stacking order: 13.4. Movie and Instance Stacking Order (ActionScript: The Definitive Guide)
Stage: 13. Movie Clips (ActionScript: The Definitive Guide)
(see also main movies)
detecting collisions: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
globalToLocal( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
height of: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
localToGlobal( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
updates and timeline loops: 8.7. Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
width of: 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Stage in Flash: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
standalone Player
disabling menu commands: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
fscommand( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
standalone Projector, running fullscreen in: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
standalone tags: Tags (Web Design in a Nutshell) 8.2.2. Empty ("Standalone")
Standard Generalized Markup Language (see SGML)
Standard Generalized Markup Language (SGML): 8.1.1. Keeping Style Separate from Content (Web Design in a Nutshell)
30.1. Background (Web Design in a Nutshell)
standard MIDI files (SMFs): 10.3.1. MIDI editors (Designing Web Audio)
standardizing HTML: 1.2.4. Standards Organizations (HTML & XHTML: The Definitive Guide)
3.6. HTML Document Elements (HTML & XHTML: The Definitive Guide)
XHTML standard: 16. XHTML (HTML & XHTML: The Definitive Guide)
standards
digital audio encoding: 2.2. Digital audio demystified (Designing Web Audio)
lack of: 1.5. Audio challenges and limitations (Designing Web Audio)
MPEG: 8.2. What is MP3? (Designing Web Audio)
standards for the Internet: 1.6. The Importance of Standards (Web Design in a Nutshell)
standby attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
12.2.1.11. The standby attribute (HTML & XHTML: The Definitive Guide)
Stanford University MedNET: 6.1.3. RealPlayer (Designing Web Audio)
star field, generating with a load event: 10.10.2. load (ActionScript: The Definitive Guide)
start attribute: 10.6.2.2. Setting the first number (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
5.2.7.4. The start attribute (HTML & XHTML: The Definitive Guide)
7.2.1.1. The start attribute (HTML & XHTML: The Definitive Guide)
for tag: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
25.5.4. The dynsrc Attribute (Web Design in a Nutshell)
start( ) (Sound class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
startDrag( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
target parameter and: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
starting tags: 2.3.1. Start and End Tags (HTML & XHTML: The Definitive Guide)
3.3.3. Starting and Ending Tags (HTML & XHTML: The Definitive Guide)
state, hyperlink: 8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
statement block delimiters ({}): 1.2.4. Modular Code (Functions) (ActionScript: The Definitive Guide)
6.2.1. Statement Blocks (ActionScript: The Definitive Guide)
statement block delimiters, 14.2. Statement Terminators (Semicolons) (ActionScript: The Definitive Guide)
statement blocks: 6.2.1. Statement Blocks (ActionScript: The Definitive Guide)
conditional statements and: 7.5. Compact Conditional Syntax (ActionScript: The Definitive Guide)
creating functions: 9.1. Creating Functions (ActionScript: The Definitive Guide)
statements: 6. Statements (ActionScript: The Definitive Guide)
adding code to Actions panel: 1.1.2. Say Hi to Flash (ActionScript: The Definitive Guide)
conditionals: 6.3.1. Loops and Conditionals (ActionScript: The Definitive Guide)
expression: 6.3.2. Expression Statements (ActionScript: The Definitive Guide)
function calls: 6.3.2. Expression Statements (ActionScript: The Definitive Guide)
function scope: 9.7. Function Scope (ActionScript: The Definitive Guide)
loops: 6.3.1. Loops and Conditionals (ActionScript: The Definitive Guide)
substatements: 6.2.1. Statement Blocks (ActionScript: The Definitive Guide)
syntax of: 6.2. Statement Syntax (ActionScript: The Definitive Guide)
terminating with semicolons: 1.1.4. The Wizard Behind the Curtain (the Interpreter) (ActionScript: The Definitive Guide)
types of: 6.1. Types of Statements (ActionScript: The Definitive Guide)
vs. Actions: 6.4. Statements Versus Actions (ActionScript: The Definitive Guide)
static encoding: 6.1.1. RealEncoder and RealPublisher (Designing Web Audio)
static keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
static positioning: 17.6.1.3. Static positioning (Web Design in a Nutshell)
statistics, for browser usage: 1.2. Browser Usage Statistics (Web Design in a Nutshell)
statistics on site usage: 9.6.4. Usage Tracking (Information Architecture for the World Wide Web)
status bar text: 11.4.5. Changing Status Bar Text with JavaScript (Web Design in a Nutshell)
status codes, XML parsing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
status property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Steinberg: 24.3.2.3. Tools for both Mac and Windows systems (Web Design in a Nutshell)
steps: 4.2.4. Bender (Designing Web Audio)
stereo ISDN: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
stereo playback: 9.2.1. Flash audio: event-driven sound versus streaming sound (Designing Web Audio)
stereo sound: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sticky notes: 9.3. Absolute Positioning (Cascading Style Sheets: The Definitive Guide)
stop( )
global function: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Sound class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
stopAllSounds( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
stopDrag( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
straddle heads (tables): 17.4.1.2. Straddle heads (HTML & XHTML: The Definitive Guide)
strategy games: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
streaming
audio: 24.4. Streaming Audio (Web Design in a Nutshell)
video: 25.5.2. Streaming Video (Web Design in a Nutshell)
streaming formats: 5.2. Streaming media formats (Designing Web Audio)
advantages and disadvantages: 5.3. Selecting the right format (Designing Web Audio)
audio fidelity: 5.3.5. Audio fidelity and compression (Designing Web Audio)
costs: 5.3.3. Cost for streaming audio (Designing Web Audio)
Director Shockwave: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
documentation and support: 5.3.4. Learning curve and documentation support (Designing Web Audio)
Flash: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
Liquid Audio: 5.2.7. Liquid Audio (Designing Web Audio)
low-bandwidth environments: 5.3.6. Low bandwidth performance overall (Designing Web Audio)
MIDI: 5.2.8. MIDI (Designing Web Audio)
MP3: 5.2.6. MP3 (Designing Web Audio)
Quicktime: 5.2.3. QuickTime (Designing Web Audio)
RealMedia: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
Rich Music Format: (Designing Web Audio) 5.2.5. Beatnik's Rich Music Format (RMF)
Windows Media: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
streaming sound: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
event sounds vs.: 9.2.1. Flash audio: event-driven sound versus streaming sound (Designing Web Audio)
stress property: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
strict document type declaration: 9.2.1. The Document Type Declaration (Web Design in a Nutshell)
STRIKE element: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
strike-through: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
strike-through text style: 4.5.7. The <strike> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
8.4.5.4. The text-decoration property (HTML & XHTML: The Definitive Guide)
strikethrough (see line-through)
String class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
string datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
4.5. The String Type (ActionScript: The Definitive Guide)
converting
datatypes to: 3.4.1. Automatic Type Conversion (ActionScript: The Definitive Guide)
values to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
equality rules for: 5.4.1. Primitive Datatype Equality (ActionScript: The Definitive Guide)
String( ) global function: function (ActionScript: The Definitive Guide) 3.4.2.2. Converting to a string with the String( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
string literals: 4.5.2. String Literals (ActionScript: The Definitive Guide)
string operators: 5.6. The String Operators (ActionScript: The Definitive Guide)
String.charAt( ): function (ActionScript: The Definitive Guide) 4.6.5.2. The charAt( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.charCodeAt( ): function (ActionScript: The Definitive Guide) 4.6.9.2. The charCodeAt( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.concat( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vs. += operator: function (ActionScript: The Definitive Guide) 4.6.1.1. The concat( )
String.fromCharCode( ): 4.5.2.3. Unicode-style escape sequences (ActionScript: The Definitive Guide)
function (ActionScript: The Definitive Guide) 4.6.9.1. The fromCharCode( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.indexOf( ): function (ActionScript: The Definitive Guide) 4.6.5.3. The indexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
substring( ) and: 4.6.7. Combining String Examination with Substring Extraction (ActionScript: The Definitive Guide)
String.lastIndexOf( ): Function (ActionScript: The Definitive Guide) 4.6.5.4. The lastIndexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.length property: 4.6.5.1. The length property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
strings
calculating number of characters: 4.6.5.1. The length property (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
character indexing in: 4.6.4. Character Indexing (ActionScript: The Definitive Guide)
comparing: 4.6.2. Comparing Strings (ActionScript: The Definitive Guide)
5.5. The Comparison Operators (ActionScript: The Definitive Guide)
case sensitivity issues: 4.6.8. Character Case Conversion (ActionScript: The Definitive Guide)
concatenating: 4.6.1. Joining Strings Together (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
converting
to arrays: function (ActionScript: The Definitive Guide) 4.6.6.4. The split( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
arrays to: Method (ActionScript: The Definitive Guide) 11.9.4. The join( )
Method (ActionScript: The Definitive Guide) 11.9.5. The toString( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
to identifiers: 4.6.10. Executing Code in a String with eval (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
values of Boolean objects to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
values of Number objects to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML node objects to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating from code points: function (ActionScript: The Definitive Guide) 4.6.9.1. The fromCharCode( )
decoding: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
describing objects as: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
empty: 4.5.2.1. The empty string (ActionScript: The Definitive Guide)
encoding: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
equality/inequality operators: operators (ActionScript: The Definitive Guide) 4.6.2.1. Using the equality (==) and inequality (!=)
examining: 4.6.5. Examining Strings (ActionScript: The Definitive Guide)
combined with substring extraction: 4.6.7. Combining String Examination with Substring Extraction (ActionScript: The Definitive Guide)
executing code with eval( ): 4.6.10. Executing Code in a String with eval (ActionScript: The Definitive Guide)
extracting
combined with string examination: 4.6.7. Combining String Examination with Substring Extraction (ActionScript: The Definitive Guide)
floating-point numbers from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
integers from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
extracting substrings based on
positive character positions: function (ActionScript: The Definitive Guide) 4.6.6.1. The substring( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
positive or negative positions: function (ActionScript: The Definitive Guide) 4.6.6.3. The slice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
starting position and length: function (ActionScript: The Definitive Guide) 4.6.6.2. The substr( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
generating from code points: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
line breaks in: 4.5.2.2. Escape sequences (ActionScript: The Definitive Guide)
lowercase versions of, creating: function (ActionScript: The Definitive Guide) 4.6.8.2. The toLowerCase( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
performance issues for string extraction functions: 4.6.6.5. String extraction performance issues (ActionScript: The Definitive Guide)
quotation marks in: 4.5.2. String Literals (ActionScript: The Definitive Guide)
problems with: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
retrieving
characters from specific positions: function (ActionScript: The Definitive Guide) 4.6.5.2. The charAt( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
code points for specified characters: function (ActionScript: The Definitive Guide) 4.6.9.2. The charCodeAt( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
searching for substrings
first occurrence of: function (ActionScript: The Definitive Guide) 4.6.5.3. The indexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
last occurrence of: Function (ActionScript: The Definitive Guide) 4.6.5.4. The lastIndexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
uppercase versions of, creating: function (ActionScript: The Definitive Guide) 4.6.8.1. The toUpperCase( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.slice( ): function (ActionScript: The Definitive Guide) 4.6.6.3. The slice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.split( ): function (ActionScript: The Definitive Guide) 4.6.6.4. The split( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.substr( ): function (ActionScript: The Definitive Guide) 4.6.6.2. The substr( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.substring( ): function (ActionScript: The Definitive Guide) 4.6.6.1. The substring( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
indexOf( ) and: 4.6.7. Combining String Examination with Substring Extraction (ActionScript: The Definitive Guide)
String.toLowerCase( ): function (ActionScript: The Definitive Guide) 4.6.8.2. The toLowerCase( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String.toUpperCase( ): function (ActionScript: The Definitive Guide) 4.6.8.1. The toUpperCase( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
<strong> tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
structural HTML tags: 9. Structural HTML Tags (Web Design in a Nutshell)
misusing: 6.1.3. The Techniques (Web Design in a Nutshell)
structural languages: 1.2.6. Preparing for the Future (Cascading Style Sheets: The Definitive Guide)
structural markup: 1.1.1. What a Mess (Cascading Style Sheets: The Definitive Guide)
structural tags: 2.6.2. Text Structures (HTML & XHTML: The Definitive Guide)
structure of information: 3.2.2. Organization Structures (Information Architecture for the World Wide Web)
structure of rules: 2.1.1. Rule Structure (Cascading Style Sheets: The Definitive Guide)
studio recordings: 3.2.1. Studio recording (Designing Web Audio)
acoustics: 3.2.1.1. Proper room acoustics: capturing a "dry" signal (Designing Web Audio)
condenser microphones: 3.1.1.3. Condenser microphones (Designing Web Audio)
desktop: 3.2.1.3. Desktop audio recording (Designing Web Audio)
isolation: 3.2.1.2. Optimizing your recording environment (Designing Web Audio)
studio reference headphones: 3.1.7. Headphones (Designing Web Audio)
studio reference speakers: 3.1.5. Studio reference speakers (Designing Web Audio)
Appendix A.2.9. Studio reference monitors (Designing Web Audio)
studio voice-overs, dynamic microphones: 3.1.1.2. Dynamic microphones (Designing Web Audio)
style, text (see text)
STYLE attribute: 1.4.6. Inline Styles (Cascading Style Sheets: The Definitive Guide)
2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
quotation marks and: 5.1.3. Using Quotation Marks (Cascading Style Sheets: The Definitive Guide)
specificity and: 2.7.1. Inheritance and Specificity (Cascading Style Sheets: The Definitive Guide)
style declarations: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
STYLE element: 1.4.2. The STYLE Element (Cascading Style Sheets: The Definitive Guide)
style guides: 9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
style sheets: 17. Cascading Style Sheets (Web Design in a Nutshell)
accessibility features (CSS2): 6.2.2. CSS2 Features (Web Design in a Nutshell)
alternate, defining: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
cascading (see CSS)
conflict resolution: 17.2.4. Conflicting Style Sheets: The Cascade (Web Design in a Nutshell)
consistency, achieving with: 11.1.1. Case 1: Consistent Look and Feel (Cascading Style Sheets: The Definitive Guide)
CSS2 features: 17.7. What's New in CSS2 (Web Design in a Nutshell)
document: 1.4.2. The STYLE Element (Cascading Style Sheets: The Definitive Guide)
embedded: 1.4.2. The STYLE Element (Cascading Style Sheets: The Definitive Guide)
external (see external style sheets)
fixed page width: 2.2.2.3. Creating fixed pages (Web Design in a Nutshell)
ignored when not recognized: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
imported: 1.2.3. Using Your Styles on Multiple Pages (Cascading Style Sheets: The Definitive Guide)
overriding styles in: 7.6.1.3. No floating at all (Cascading Style Sheets: The Definitive Guide)
link color specifications: 11.4.3. Setting Global Link Colors with Style Sheets (Web Design in a Nutshell)
linking to HTML documents: 1.4.1. The LINK Tag (Cascading Style Sheets: The Definitive Guide)
making concise through grouping: 2.2. Grouping (Cascading Style Sheets: The Definitive Guide)
naming: 1.4.1. The LINK Tag (Cascading Style Sheets: The Definitive Guide)
positioning with: 17.5.2. Box Properties (Web Design in a Nutshell)
17.6. Positioning with Style Sheets (Web Design in a Nutshell)
properties: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.5. Properties (Web Design in a Nutshell)
background: 17.5.3. Background Properties (Web Design in a Nutshell)
box: 17.5.2. Box Properties (Web Design in a Nutshell)
classification: 17.5.4. Classification Properties (Web Design in a Nutshell)
CSS2: 17.7.2. New Properties (Web Design in a Nutshell)
type-related: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
reader: 1.2.4. Cascading (Cascading Style Sheets: The Definitive Guide)
selectors: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.3. Selectors (Web Design in a Nutshell)
17.7.1. New Selectors (Web Design in a Nutshell)
values for rules: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.4. Specifying Values (Web Design in a Nutshell)
XML and: 30.2.2. Style Sheets and XML (Web Design in a Nutshell)
XSL vs.: 30.6. Where to Learn More (Web Design in a Nutshell)
<style> tags: 3.3.7. Ignored or Redundant Tags (HTML & XHTML: The Definitive Guide)
styles: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
8. Cascading Style Sheets (HTML & XHTML: The Definitive Guide)
for borders: 7.4.1. Borders with Style (Cascading Style Sheets: The Definitive Guide)
box properties: 8.4.6. Box Properties (HTML & XHTML: The Definitive Guide)
classes for: 8.3. Style Classes (HTML & XHTML: The Definitive Guide)
12.4.1.4. Defining style classes (HTML & XHTML: The Definitive Guide)
classification properties: 8.4.8. Classification Properties (HTML & XHTML: The Definitive Guide)
color and background properties: 8.4.4. Color and Background Properties (HTML & XHTML: The Definitive Guide)
contextual selectors: 8.2.3. Contextual Selectors (HTML & XHTML: The Definitive Guide)
12.4.1.5. Using contextual styles (HTML & XHTML: The Definitive Guide)
CSS properties for: 8.4. Style Properties (HTML & XHTML: The Definitive Guide)
disappearing with Netscape Navigator: 11.2.10. Disappearing Styles (Cascading Style Sheets: The Definitive Guide)
document-level: 8.1.2. Document-Level Style Sheets (HTML & XHTML: The Definitive Guide)
8.6.2.2. The pros and cons of document-level styles (HTML & XHTML: The Definitive Guide)
12.4.1.1. External, document-level, and inline JSS (HTML & XHTML: The Definitive Guide)
external style sheets: 8.1.3. External Style Sheets (HTML & XHTML: The Definitive Guide)
8.6.2.1. The pros and cons of external styles (HTML & XHTML: The Definitive Guide)
font style properties: 8.4.3. Font Properties (HTML & XHTML: The Definitive Guide)
how to use: 8.6. Applying Styles to Documents (HTML & XHTML: The Definitive Guide)
inline: 1.4.6. Inline Styles (Cascading Style Sheets: The Definitive Guide)
8.1.1. Inline Styles: The style Attribute (HTML & XHTML: The Definitive Guide)
12.4.1.1. External, document-level, and inline JSS (HTML & XHTML: The Definitive Guide)
JavaScript style sheets (JSS): 12.4. JavaScript Style Sheets (HTML & XHTML: The Definitive Guide)
properties with CSS equivalents: 12.4.2. JavaScript Style Sheet Properties (HTML & XHTML: The Definitive Guide)
list properties: 8.4.7. List Properties (HTML & XHTML: The Definitive Guide)
media-specific: 8.1.4. Media-Specific Styles (HTML & XHTML: The Definitive Guide)
precedence: 8.1.9. Style Precedence (HTML & XHTML: The Definitive Guide)
pseudo-classes for: 8.3.4. Pseudo-Classes (HTML & XHTML: The Definitive Guide)
pseudo-elements for: 8.2.5. Pseudo-Elements (HTML & XHTML: The Definitive Guide)
style sheets: 2.12. Style Sheets and JavaScript (HTML & XHTML: The Definitive Guide)
linked vs. imported: 8.1.5. Linked Versus Imported Style Sheets (HTML & XHTML: The Definitive Guide)
XML documents: 15.1.1. Creation Versus Display (HTML & XHTML: The Definitive Guide)
tag-less styles ( ): 8.5. Tag-less Styles: The <span> Tag (HTML & XHTML: The Definitive Guide)
text style properties: 8.4.5. Text Properties (HTML & XHTML: The Definitive Guide)
using on multiple pages: 1.2.3. Using Your Styles on Multiple Pages (Cascading Style Sheets: The Definitive Guide)
web browser limitations: 8.1.8. Handling Style-less Browsers (HTML & XHTML: The Definitive Guide)
styling common elements: 11.2.4. Styling Common Elements (Cascading Style Sheets: The Definitive Guide)
stylistic languages: 1.2.6. Preparing for the Future (Cascading Style Sheets: The Definitive Guide)
sub-sites: 4.4.3. Local Navigation Systems (Information Architecture for the World Wide Web)
10.2.2. Sub-Site Record Pages (Information Architecture for the World Wide Web)
(subscript) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.2. Physical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
subdomains (see domains)
subject-oriented organization: 3.2.1.2.1. Topical (Information Architecture for the World Wide Web)
6.5.2.3. Drilling down: Indexing by subject (Information Architecture for the World Wide Web)
Submit button for Flash forms: 17.2.1. Building the Frontend (ActionScript: The Definitive Guide)
submit buttons: 9.5.4.1. Submission buttons (HTML & XHTML: The Definitive Guide)
submit buttons on forms: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.6. Submit and reset buttons (type=submit; type=reset)
subroutines, local variables in: 2.5.8.1. Local variables in subroutines (ActionScript: The Definitive Guide)
subscript (SUB) element: 4.1.3. Vertical Alignment (Cascading Style Sheets: The Definitive Guide)
subscripting: 4.1.3.2. Superscripting and subscripting (Cascading Style Sheets: The Definitive Guide)
subscripts and superscripts: 4.5.8. The <sub> Tag (HTML & XHTML: The Definitive Guide)
subsonic sound: 2.1. The science of sound (Designing Web Audio)
substatements: 6.2.1. Statement Blocks (ActionScript: The Definitive Guide)
in for-in loops: 8.5. The for-in Loop (ActionScript: The Definitive Guide)
in if statement: 7.1. The if Statement (ActionScript: The Definitive Guide)
in while loops: 8.1. The while Loop (ActionScript: The Definitive Guide)
substr( ) (String class): function (ActionScript: The Definitive Guide) 4.6.6.2. The substr( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
substring( ) (String class): function (ActionScript: The Definitive Guide) 4.6.6.1. The substring( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
indexOf( ) and: 4.6.7. Combining String Examination with Substring Extraction (ActionScript: The Definitive Guide)
substrings
extracting from strings based on
positive character positions: function (ActionScript: The Definitive Guide) 4.6.6.1. The substring( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
positive or negative positions: function (ActionScript: The Definitive Guide) 4.6.6.3. The slice( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
starting position and length: function (ActionScript: The Definitive Guide) 4.6.6.2. The substr( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
searching for
first occurrence of: function (ActionScript: The Definitive Guide) 4.6.5.3. The indexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
last occurrence of: Function (ActionScript: The Definitive Guide) 4.6.5.4. The lastIndexOf( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
subtraction ( ) operator: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
4.4.1. Using Operators (ActionScript: The Definitive Guide)
5.3.3. Subtraction (ActionScript: The Definitive Guide)
subwindows (see frames)
success, measuring: 7.2.1. Measuring Success (Information Architecture for the World Wide Web)
suffixes, filename: 4.3. File Naming Conventions (Web Design in a Nutshell)
Types (Web Design in a Nutshell) 4.5. File (MIME)
Suggestions area: 9.6.3. Questions and Suggestions (Information Architecture for the World Wide Web)
summary attribute: B. List of Attributes (Web Design in a Nutshell)
tag: 13.1. Summary of Table Tags (Web Design in a Nutshell)
summary attribute ( ): 10.2.1.12. The summary attribute (HTML & XHTML: The Definitive Guide)
Sun OS 4.1.x: 6.3.3.2. RealServer system requirements (Designing Web Audio)
(superscript) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.2. Physical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
<sup> tags: 4.5.9. The <sup> Tag (HTML & XHTML: The Definitive Guide)
super keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
superclass of XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
superclasses
checking if objects belong: 12.5.4.3. Determining whether an object belongs to a superclass (ActionScript: The Definitive Guide)
creating: 12.5.4.1. Making a superclass (ActionScript: The Definitive Guide)
superscript (SUP) element: 4.1.3. Vertical Alignment (Cascading Style Sheets: The Definitive Guide)
superscripting: 4.1.3.2. Superscripting and subscripting (Cascading Style Sheets: The Definitive Guide)
supplemental navigation systems: 4.6. Remote Navigation Elements (Information Architecture for the World Wide Web)
SureStream: 7.1. SureStream (Designing Web Audio)
SVCD (MPEG-1 supervideo): 8.4.3.1. Selecting tracks (Designing Web Audio)
SVG (Scalable Vector Graphics): 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
SWA Export Xtra: 9.3.4. Exporting Shockwave audio files (Designing Web Audio)
SWA files: 9.3.1. Using Shockwave "internal" sounds: embedded cast members versus streamed SWA sounds (Designing Web Audio)
swapDepths( ) (MovieClip class): 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
assigning instance depths in programmatically generated clip stacks: 13.4.2.3. Assigning depths to instances in the programmatically generated clip stack (ActionScript: The Definitive Guide)
swapping instances in internal layer stacks: 13.4.1. The Internal Layer Stack (ActionScript: The Definitive Guide)
swatches (Photoshop): 3.3.3.2. Photoshop swatches (Web Design in a Nutshell)
SWF file format
backward compatibility: C. Backward Compatibility (ActionScript: The Definitive Guide)
resources for: A.4. SWF File Format (ActionScript: The Definitive Guide)
SWF files: 6.4.4. Creating RealFlash content (Designing Web Audio)
adding custom interface SWF files to Smart Clips: 16.8.2.2. Adding a custom interface to a Smart Clip (ActionScript: The Definitive Guide)
creating custom interface SWF files: 16.8.2.1. Creating a custom interface .swf file (ActionScript: The Definitive Guide)
data event handlers and: 10.10.4.2. Using a data event handler with loadMovie( ) (ActionScript: The Definitive Guide)
externalizing ActionScript code: 16.7. Externalizing ActionScript Code (ActionScript: The Definitive Guide)
_leveln global property: 13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
13.5.4.2. Referencing other documents in the Player using _leveln (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
loading into document levels
via loadMovie( ): 13.4.3. The .swf Document "_level" Stack (ActionScript: The Definitive Guide)
13.5.4.2. Referencing other documents in the Player using _leveln (ActionScript: The Definitive Guide)
via loadMovieNum( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
loading into Player: 13.3.4. Importing External Movies (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
movie clip unload events and: 10.10.3. unload (ActionScript: The Definitive Guide)
_url property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
.swf files (Flash movies): 5.5. Flash Printing (Web Design in a Nutshell)
26. Flash and Shockwave (Web Design in a Nutshell)
26.3.1. File Formats (Web Design in a Nutshell)
swftune utility: 6.4.4. Creating RealFlash content (Designing Web Audio)
element: 27.4.6. Controlling Content Display (Web Design in a Nutshell)
switch keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
switch statement, simulating: 7.4. Simulating the switch Statement (ActionScript: The Definitive Guide)
switches (bits): 15.2. Bitwise Programming (ActionScript: The Definitive Guide)
swLiveConnect attribute: 26.4.2.1. The <embed> tag (Web Design in a Nutshell)
.swt files, creating Generator templates: 26.2.2. Macromedia Generator 2 (Web Design in a Nutshell)
symbols, movie clip: 13.3.1. Movie Clip Symbols and Instances (ActionScript: The Definitive Guide)
exporting from Library: 13.3.2.3. Creating instances with attachMovie( ) (ActionScript: The Definitive Guide)
synchronized keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
Synchronized Multimedia Integration Language (see SMIL)
27. Introduction to SMIL (Web Design in a Nutshell)
synchronized multimedia presentations: 5.2.1. RealMedia and RealAudio (Designing Web Audio)
synchronous code execution: 10.1. Synchronous Code Execution (ActionScript: The Definitive Guide)
16.2. Adding Scripts to Frames (ActionScript: The Definitive Guide)
syntax
automatic literal typing and: 3.3.1. Automatic Literal Typing (ActionScript: The Definitive Guide)
event handler: 10.5. Event Handler Syntax (ActionScript: The Definitive Guide)
statement: 6.2. Statement Syntax (ActionScript: The Definitive Guide)
variable addressing: 2.5.6.3. Flash 4 versus Flash 5 variable access syntax (ActionScript: The Definitive Guide)
syntax of HTML tags: 8.2.1. Containers (Web Design in a Nutshell)
style, guidelines for: 8.5. Tips on Good HTML Style (Web Design in a Nutshell)
synthesizers: 10.3. Creating your own MIDI files (Designing Web Audio)
Appendix A.2.6. Synthesizers and tone generators (Designing Web Audio)
Syntrillium: 24.3.2.1. Windows audio tools (Web Design in a Nutshell)
system events: 10.3. Types of Events (ActionScript: The Definitive Guide)
system noise: 4.1.2. Avoiding gaps between edited sections (Designing Web Audio)
System Palette: 3.3.1.2. Palettes (Web Design in a Nutshell)
22.2. Converting to the Web Palette (Web Design in a Nutshell)
for GIF animation: 23.5.4. Color Palette (Web Design in a Nutshell)
systems, exchanging data with XML: 15.8.3. Connecting Systems (HTML & XHTML: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: T

tab characters in code: 14.1. Whitespace (ActionScript: The Definitive Guide)
Tab key
navigating form controls: 9.9.4. The tabindex, taborder, and notab Attributes (HTML & XHTML: The Definitive Guide)
navigating hyperlinks: 6.3.1.12. The accesskey and tabindex attributes (HTML & XHTML: The Definitive Guide)
navigating objects: 12.2.1.12. The tabindex and notab attributes (HTML & XHTML: The Definitive Guide)
Tab keypresses, capturing: 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
tab order
HTML anchor tag not added to: 18.5.8. Anchor Tag Tab Order (ActionScript: The Definitive Guide)
setting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
of text fields, customizing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
TAB property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
tabindex attribute: 11.1. Summary of Tags Related to Linking (Web Design in a Nutshell)
15.5. New Form Attributes in HTML 4.01 (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
6.3.1.12. The accesskey and tabindex attributes (HTML & XHTML: The Definitive Guide)
6.5.4.5. The notab, taborder, and tabindex attributes (HTML & XHTML: The Definitive Guide)
9.9.4. The tabindex, taborder, and notab Attributes (HTML & XHTML: The Definitive Guide)
12.2.1.12. The tabindex and notab attributes (HTML & XHTML: The Definitive Guide)
table cells
setting text color: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
suppressing wrapping in: 4.1.1.3. Handling whitespace (Cascading Style Sheets: The Definitive Guide)
table elements: 8.4. Inline Elements (Cascading Style Sheets: The Definitive Guide)
table of contents: 4.6.1. The Table of Contents (Information Architecture for the World Wide Web)
<table> tags: 2.10. Tables (HTML & XHTML: The Definitive Guide)
tables: 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
10.7. Tables (Cascading Style Sheets: The Definitive Guide)
2.2.1.3. Creating flexible pages (Web Design in a Nutshell)
13. Tables (Web Design in a Nutshell)
2.10. Tables (HTML & XHTML: The Definitive Guide)
10.1. The Standard Table Model (HTML & XHTML: The Definitive Guide)
14.2. Multicolumn Layout (HTML & XHTML: The Definitive Guide)
17.4. Tricks with Tables (HTML & XHTML: The Definitive Guide)
accessibility issues: 6.2.1. HTML 4.01 Features (Web Design in a Nutshell)
alignment: 10.2.1.1. The align attribute (deprecated) (HTML & XHTML: The Definitive Guide)
10.2.1.10. The valign and nowrap attributes (HTML & XHTML: The Definitive Guide)
10.2.3.1. The align and valign attributes (HTML & XHTML: The Definitive Guide)
avoiding: 7. Boxes and Borders (Cascading Style Sheets: The Definitive Guide)
borders: 10.2.1.3. The border attribute (HTML & XHTML: The Definitive Guide)
10.2.3.4. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
10.2.4.9. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
browsers incompatible with: 17.4.2.1. When tables aren't implemented (HTML & XHTML: The Definitive Guide)
captions: 10.2.5. The <caption> Tag (HTML & XHTML: The Definitive Guide)
cells: 10.2.4. The <th> and <td> Tags (HTML & XHTML: The Definitive Guide)
cell alignment: 10.2.4.1. The align and valign attributes (HTML & XHTML: The Definitive Guide)
cell size: 10.2.4.2. The width attribute (HTML & XHTML: The Definitive Guide)
cell spacing: 10.2.1.6. The cellspacing attribute (HTML & XHTML: The Definitive Guide)
colors in: 10.2.1.2. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
10.2.3.3. The bgcolor attribute (HTML & XHTML: The Definitive Guide)
10.2.4.8. The bgcolor and background attributes (HTML & XHTML: The Definitive Guide)
borders: 10.2.1.5. The bordercolor, bordercolorlight, and bordercolordark attributes (HTML & XHTML: The Definitive Guide)
columns: 10.2.1.9. The cols attribute (HTML & XHTML: The Definitive Guide)
10.2.4.4. The colspan attribute (HTML & XHTML: The Definitive Guide)
defining column groups: 10.3.6. Defining Column Groups (HTML & XHTML: The Definitive Guide)
controlling page layout with: 10.4. Beyond Ordinary Tables (HTML & XHTML: The Definitive Guide)
deleting whitespace in: 13.5.4. Unwanted White Space (Web Design in a Nutshell)
example of basic structure: 10.1.2. An Example Table (HTML & XHTML: The Definitive Guide)
fonts and: 13.6.1. <font> and Tables (Web Design in a Nutshell)
formatting appearance: 13.4. Affecting Table Appearance (Web Design in a Nutshell)
forms
aligning: 15.6.2.2. Using tables for form alignment (Web Design in a Nutshell)
elements in: 13.5.3. Form Elements in Tables (Web Design in a Nutshell)
header/footer of: 10.7. Tables (Cascading Style Sheets: The Definitive Guide)
headers and footers: 10.3.2. The <thead> Tag (HTML & XHTML: The Definitive Guide)
HTML v4.0 tags for: 10.3. Newest Table Tags (HTML & XHTML: The Definitive Guide)
multipart images in: 13.2. Introduction to Tables (Web Design in a Nutshell)
13.8. Multipart Images in Tables (Web Design in a Nutshell)
nesting: 17.4.3.2. Building forms with nested tables (HTML & XHTML: The Definitive Guide)
rows: 2.10. Tables (HTML & XHTML: The Definitive Guide)
10.2.3. The <tr> Tag (HTML & XHTML: The Definitive Guide)
10.2.4.5. The rowspan attribute (HTML & XHTML: The Definitive Guide)
sectioning: 10.3.1. Defining Table Sections (HTML & XHTML: The Definitive Guide)
side heads: 17.4.2. Side Heads (HTML & XHTML: The Definitive Guide)
size: 10.2.1.11. The width and height attributes (HTML & XHTML: The Definitive Guide)
sizing: 13.4.4. Sizing Tables (Web Design in a Nutshell)
13.7.4. Creating a Box Rule (Web Design in a Nutshell)
straddle heads: 17.4.1.2. Straddle heads (HTML & XHTML: The Definitive Guide)
structure of: 13.3. Basic Table Structure (Web Design in a Nutshell)
templates for: 13.7. Standard Table Templates (Web Design in a Nutshell)
text styles in: 13.5.2. Text in Tables (Web Design in a Nutshell)
troubleshooting: 13.5. Table Troubleshooting (Web Design in a Nutshell)
ways to use: 13.2. Introduction to Tables (Web Design in a Nutshell)
web browsers incompatible with: 17.4.2.1. When tables aren't implemented (HTML & XHTML: The Definitive Guide)
WML: 32.3.5. Tables (Web Design in a Nutshell)
wrapping text in cells: 10.2.1.10. The valign and nowrap attributes (HTML & XHTML: The Definitive Guide)
10.2.3.5. The nowrap attribute (HTML & XHTML: The Definitive Guide)
10.2.4.7. The nowrap attribute (HTML & XHTML: The Definitive Guide)
tables of contents: 6.3.3. Linking Within a Document (HTML & XHTML: The Definitive Guide)
taborder attribute: 6.5.4.5. The notab, taborder, and tabindex attributes (HTML & XHTML: The Definitive Guide)
9.9.4. The tabindex, taborder, and notab Attributes (HTML & XHTML: The Definitive Guide)
tabs (see whitespace)
tags
audio via client-pull: 24.7.2. Background Sound (Web Design in a Nutshell)
background control (see background)
centered content and: 4.7.6. The <center> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
color and font for: 9.3.1. Colors (Web Design in a Nutshell)
custom image buttons (forms): 9.5.4.3. Custom image buttons (HTML & XHTML: The Definitive Guide)
dummy option items: 15.6.3. Working with Menus (Web Design in a Nutshell)
emulating spacers with: 14.1.2. Mimicking the <spacer> Tag (HTML & XHTML: The Definitive Guide)
extra whitespace and: 13.5.4.1. Returns and spaces within <td> tags (Web Design in a Nutshell)
faking in Navigator: 14.7.5. Faking an <iframe> (Web Design in a Nutshell)
Flash content with: 26.4.2.2. The <object> tag (Web Design in a Nutshell)
26.8. Adding Shockwave Movies to a Web Page (Web Design in a Nutshell)
formatting with: 10.3.2. Physical Styles (Web Design in a Nutshell)
forms alignment with: 15.6.2.2. Using tables for form alignment (Web Design in a Nutshell)
framed documents and: 14.5.1. The <base> tag (Web Design in a Nutshell)
frames and: 14.7.3. Helping Search Engines (Web Design in a Nutshell)
horizontal rules in menus: 15.6.3. Working with Menus (Web Design in a Nutshell)
image maps and: 12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
@import function: 17.2.2.3. External style sheets (Web Design in a Nutshell)
media files and: 12.5.2. The <embed> Tag (Web Design in a Nutshell)
in sections: 14.3.1. <noframes> content (Web Design in a Nutshell)
paragraphs and line breaks, using: 10.2.1. Paragraphs and Line Breaks (Web Design in a Nutshell)
paragraphs and line breaks, using for: 10.2.1. Paragraphs and Line Breaks (Web Design in a Nutshell)
for PNG images: 21.3. Platform/Browser Support (Web Design in a Nutshell)
in menus: 15.6.3. Working with Menus (Web Design in a Nutshell)
SMIL: 27.4.2. Document Structure (Web Design in a Nutshell)
specifying character encoding: 7.1.3. Specifying Character Encoding (Web Design in a Nutshell)
specifying fonts with: 10.5.2. Specifying Fonts with <font> (Web Design in a Nutshell)
style sheets, connecting: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
in table cells: 13.5.5.3. Using <spacer> (Web Design in a Nutshell)
tables and: 13.6.1. <font> and Tables (Web Design in a Nutshell)
text and link color specifications: 11.4.1. Setting Colors in <body> (Web Design in a Nutshell)
type=button: 15.1. Summary of Form Tags (Web Design in a Nutshell)
type=checkbox: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.4. Checkbox (type=checkbox)
type=file: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.9. File selection (type=file)
type=hidden: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.3. Hidden entry (type=hidden)
type=image: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.8. Image button (type=image)
type=password: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.2. Password text entry (type=password)
type=radio: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.5. Radio button (type=radio)
type=reset: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.6. Submit and reset buttons (type=submit; type=reset)
type=submit: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.6. Submit and reset buttons (type=submit; type=reset)
type=text: 15.1. Summary of Form Tags (Web Design in a Nutshell)
(Web Design in a Nutshell) 15.4.1.1. Text entry (type=text)
using: 9.4. Using <meta> Tags (Web Design in a Nutshell)
video extensions: 5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
for video plug-ins: 25.5.3. Embedded QuickTime Movies (Web Design in a Nutshell)
WML: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
word wrap with graphics: 12.3.5.2. Stopping text wrap (Web Design in a Nutshell)
tag-less styles ( ): 8.5. Tag-less Styles: The <span> Tag (HTML & XHTML: The Definitive Guide)
tag, RealPix: 7.3.1. RealPix syntax (Designing Web Audio)
aspect ration of image, maintaining: 7.3.1. RealPix syntax (Designing Web Audio)
example of use: 7.7.2. Synchronizing media types (Designing Web Audio)
image transition effects: 7.3.1. RealPix syntax (Designing Web Audio)
tag, SMIL: 7.2.1. SMIL syntax (Designing Web Audio)
tags
action buttons: 9.5.4. Action Buttons (HTML & XHTML: The Definitive Guide)
avoiding: 6.1.3. The Techniques (Web Design in a Nutshell)
bug with: 1.6.3. Beyond Extensions: Exploiting Bugs (HTML & XHTML: The Definitive Guide)
checkboxes (type=checkbox): 9.5.2. Checkboxes (HTML & XHTML: The Definitive Guide)
color extensions: 5.3. Document Colors and Background Images (HTML & XHTML: The Definitive Guide)
comments in: 8.1.7. Style Comments (HTML & XHTML: The Definitive Guide)
tags vs.: 4.4.6. The <em> Tag (HTML & XHTML: The Definitive Guide)
file-selection (type=file): 9.5.1.3. File-selection controls (HTML & XHTML: The Definitive Guide)
filenames, use with: 7.7.1. The <dir> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
hidden fields (type=hidden): 9.5.5. Hidden Fields (HTML & XHTML: The Definitive Guide)
hyperlink states: 8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
@import command: 8.1.3.2. Imported external style sheets (HTML & XHTML: The Definitive Guide)
linking external documents: 5.6.1. Embedded Versus Referenced Content (HTML & XHTML: The Definitive Guide)
masked text entry (type=password): 9.5.1.2. Masked text controls (HTML & XHTML: The Definitive Guide)
radio buttons (type=radio): 9.5.3. Radio Buttons (HTML & XHTML: The Definitive Guide)
text entry (type=text): 9.5.1.1. Conventional text fields (HTML & XHTML: The Definitive Guide)
tags (HTML): 8. HTML Overview (Web Design in a Nutshell)
8.2. HTML Tags (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
containers: 8.2.1. Containers (Web Design in a Nutshell)
deprecated: C. Deprecated Tags (Web Design in a Nutshell)
indents in text, creating with: 10.7.5. Creating Indents with HTML (Web Design in a Nutshell)
lists: 10.1.4. Lists (Web Design in a Nutshell)
nesting: 8.2.4. Nesting HTML Tags (Web Design in a Nutshell)
spacing and positioning: 10.1.3. Spacing and Positioning (Web Design in a Nutshell)
standalone: Tags (Web Design in a Nutshell) 8.2.2. Empty ("Standalone")
structural: 9. Structural HTML Tags (Web Design in a Nutshell)
text, formatting: 10. Formatting Text (Web Design in a Nutshell)
and tags: 10.4. <div> and <span> (Web Design in a Nutshell)
tags: 10.5. The <font> Tag (Web Design in a Nutshell)
tags, ignored when not recognized: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
tags property (JavaScript): 12.4.1.3. Defining styles for tags (HTML & XHTML: The Definitive Guide)
tags, RealPix: 7.3.1. RealPix syntax (Designing Web Audio)
7.3.1. RealPix syntax (Designing Web Audio)
tags, RealText, setting window type: 7.4.2. Window types (Designing Web Audio)
tags[object tags>: 3.7.3. Related Header Tags (HTML & XHTML: The Definitive Guide)
takes, multiple: 4.1.1. Choosing takes and removing artifacts (Designing Web Audio)
tan( ) (Math object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
tangent, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
target attribute: NaN. List of Attributes (Web Design in a Nutshell)
target audience, determining: 1.7. Designing web audio (Designing Web Audio)
target connection speeds, codecs: 6.3.1. Selecting the right RealAudio codecs (Designing Web Audio)
target parameter and global functions: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
_target property (MovieClip class): 13.5.6.5. The _target property (ActionScript: The Definitive Guide)
13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
targeting frames: 14.5. Targeting Frames (Web Design in a Nutshell)
multiple from one link: 14.7.4. Loading Two Frames from One Link (Web Design in a Nutshell)
targetPath( ) global function: function (ActionScript: The Definitive Guide) 13.5.6.6. The targetPath( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
task-oriented organization: 3.2.1.2.2. Task-oriented (Information Architecture for the World Wide Web)
<tbody> tag: 10.3.4. The <tbody> Tag (HTML & XHTML: The Definitive Guide)
Tcl for CGI scripting: 15.7. Demystifying CGI (Web Design in a Nutshell)
TCP streaming
firewalls: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
TCP (Transmission Control Protocol): 5.1. Streaming protocols (Designing Web Audio)
TCWorks: 24.3.2.2. Mac audio tools (Web Design in a Nutshell)
TechWeb Today, RealSystem G2 case study: 7.7. Case study: TechWeb Today (Designing Web Audio)
teleprompter window type, RealText: 7.4.2. Window types (Designing Web Audio)
teletype text ( ) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.2. Physical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
television browsers (see WebTV)
television, sound design examples: 1.6. Solid sound design (Designing Web Audio)
television talk shows, microphones: 3.1.1.4. Lavaliere clip-on microphones (Designing Web Audio)
Tell Target tool: 13.5.7. Whither Tell Target? (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
tellTarget( ) global function: 13.5.7. Whither Tell Target? (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
telnet protocol
links for: 11.7.3. Other Links (Web Design in a Nutshell)
telnet URLs: 6.2.9. The telnet URL (HTML & XHTML: The Definitive Guide)
temperature converter, example of: 2.6. Some Applied Examples (ActionScript: The Definitive Guide)
templates for HTML documents: 17.1.2. Boilerplate Documents (HTML & XHTML: The Definitive Guide)
templates for tables: 13.7. Standard Table Templates (Web Design in a Nutshell)
templates, RealEncoder: 6.3.2. Using the RealEncoder (Designing Web Audio)
tempo, adjusting in delay: 4.2.2. Delay (Designing Web Audio)
temporal masking: 8.2.1. MP3 technical details (Designing Web Audio)
temporary conversions: 3.4.3. Conversion Duration (ActionScript: The Definitive Guide)
temporary variables: 9.7. Function Scope (ActionScript: The Definitive Guide)
tension, creating and relieving: 1.6. Solid sound design (Designing Web Audio)
term rotation: 4.6.2. The Index (Information Architecture for the World Wide Web)
terminals: 15.4.2. Multiple Grammar Rules (HTML & XHTML: The Definitive Guide)
terminology consistency: 5.3.4. Labels as Headings (Information Architecture for the World Wide Web)
terms, definition lists: 7.5.2. The <dt> Tag (HTML & XHTML: The Definitive Guide)
ternary operators: 5.1.2. Number of Operands (ActionScript: The Definitive Guide)
test expressions in loops: 8.2. Loop Terminology (ActionScript: The Definitive Guide)
Test Movie mode: 19.1. Debugging Tools (ActionScript: The Definitive Guide)
testing audience approval: 9.6. Learning from Users (Information Architecture for the World Wide Web)
testing web sites: 1.5. Test, Test, Test! (Web Design in a Nutshell)
text: 2.5.2. Text (HTML & XHTML: The Definitive Guide)
addresses: 4.9. Addresses (HTML & XHTML: The Definitive Guide)
aligning
horizontally: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
vertically: 4.1.3. Vertical Alignment (Cascading Style Sheets: The Definitive Guide)
alignment: 8.4.5.3. The text-align property (HTML & XHTML: The Definitive Guide)
8.4.5.7. The vertical-align property (HTML & XHTML: The Definitive Guide)
and tags, formatting with[text
div and span tags, formatting with: 10.4. <div> and <span> (Web Design in a Nutshell)
animating: 5.5. Animated Text (HTML & XHTML: The Definitive Guide)
anti-aliased: 3.4.4.3. Use anti-aliased text (Web Design in a Nutshell)
appearance of (inline styles): 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
appearance tags for: 2.6.1. Appearance of Text (HTML & XHTML: The Definitive Guide)
content-based style tags: 4.4. Content-Based Style Tags (HTML & XHTML: The Definitive Guide)
physical style: 4.5. Physical Style Tags (HTML & XHTML: The Definitive Guide)
audio transcripts/descriptions: 6.1.3. The Techniques (Web Design in a Nutshell)
blinking: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
17.5.1. Type-Related Properties (Web Design in a Nutshell)
accessibility problems: 6.1.3. The Techniques (Web Design in a Nutshell)
block quotes: 4.8. Block Quotes (HTML & XHTML: The Definitive Guide)
bold: 5.2.2. Getting Bolder (Cascading Style Sheets: The Definitive Guide)
11.2.7. Preserving Boldness (Cascading Style Sheets: The Definitive Guide)
capitalization and small caps: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
17.5.1. Type-Related Properties (Web Design in a Nutshell)
capitalizing: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
centering elements: 10.7.3. Centering Text Elements (Web Design in a Nutshell)
color of (see colors)
5.3.1.4. The text attribute (HTML & XHTML: The Definitive Guide)
cursive: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
embedding in PNG images: 21.6.4. Embedded Text (Web Design in a Nutshell)
floating: 7.6.1. Floated Elements (Cascading Style Sheets: The Definitive Guide)
8.3. Floated Elements (Cascading Style Sheets: The Definitive Guide)
flow (see wrapping text)
flowing around images: 4.7.1.1. The clear attribute (HTML & XHTML: The Definitive Guide)
tag: 10.5. The <font> Tag (Web Design in a Nutshell)
form fields for: 9.5.1. Text Fields in Forms (HTML & XHTML: The Definitive Guide)
formatting: 10. Formatting Text (Web Design in a Nutshell)
in graphics: 3.2.2. Text in Graphics (Web Design in a Nutshell)
heading: 10.2.2. Headings (Web Design in a Nutshell)
headings (see headings)
HTML, working with: 10.2. Working with HTML Text (Web Design in a Nutshell)
inclined: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
indented: 4.1.1.1. Indenting text (Cascading Style Sheets: The Definitive Guide)
11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
indents, creating for: 10.7.5. Creating Indents with HTML (Web Design in a Nutshell)
inline references in: 6.4.2. Inline References (HTML & XHTML: The Definitive Guide)
inline type styles: 10.3. Inline Type Styles (Web Design in a Nutshell)
instead of images: 5.2.3. When to Use Text (HTML & XHTML: The Definitive Guide)
5.2.6.3. The alt and longdesc attributes (HTML & XHTML: The Definitive Guide)
international character sets: 7.1. Character Sets (Web Design in a Nutshell)
italic: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
justified: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
kursiv: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
layout of (see layout)
layout techniques with HTML: 10.7. Text Layout Techniques with HTML (Web Design in a Nutshell)
lighter: 5.2.3. Lightening Weights (Cascading Style Sheets: The Definitive Guide)
line breaks
handling: 17.6.4. Overflow (Web Design in a Nutshell)
preventing: 10.7.2. Preventing Line Breaks (Web Design in a Nutshell)
line length and window size: 2.2.1.2. Disadvantages (Web Design in a Nutshell)
line/word/character spacings: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
lists: 10.1.4. Lists (Web Design in a Nutshell)
lowercase: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
margins for body content: 5.3.1.6. The leftmargin attribute (HTML & XHTML: The Definitive Guide)
monospaced (see monospaced text)
multicolumn layout: 14.2. Multicolumn Layout (HTML & XHTML: The Definitive Guide)
17.4.1. Multicolumn Pages (HTML & XHTML: The Definitive Guide)
multiline text entry areas (forms): 9.7. Multiline Text Areas (HTML & XHTML: The Definitive Guide)
oblique: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
overlapping, preventing: 8.4.3. Managing the Line Height of Inline Elements (Cascading Style Sheets: The Definitive Guide)
overlining: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
paragraph identation: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
paragraphs (see paragraphs)
pixels to specify size: 17.8.2. Specifying Text Size in Pixels (Web Design in a Nutshell)
preformatted: 2.6.2.4. Preformatted text (HTML & XHTML: The Definitive Guide)
right and left alignment of: 10.7.4. Right and Left Alignment (Web Design in a Nutshell)
scrolling marquees: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
shadow, adding to: 10.3.2. text-shadow (Cascading Style Sheets: The Definitive Guide)
shrinking: 11.2.6. The Incredible Shrinking Text! (Cascading Style Sheets: The Definitive Guide)
size of (see text size)
slanted: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
small-caps: 5.4.2. Font Variations (Cascading Style Sheets: The Definitive Guide)
spacing and positioning: 10.1.3. Spacing and Positioning (Web Design in a Nutshell)
special characters: 2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
2.6.1.3. Special text characters (HTML & XHTML: The Definitive Guide)
3.5.2. Character Entities (HTML & XHTML: The Definitive Guide)
4.10. Special Character Encoding (HTML & XHTML: The Definitive Guide)
JavaScript entities: 12.3.5. JavaScript Entities (HTML & XHTML: The Definitive Guide)
URL encodings for: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
in status bar: 11.4.5. Changing Status Bar Text with JavaScript (Web Design in a Nutshell)
structural tags: 2.6.2. Text Structures (HTML & XHTML: The Definitive Guide)
style properties for: 8.4.5. Text Properties (HTML & XHTML: The Definitive Guide)
style sheet properties for: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
in tables: 13.5.2. Text in Tables (Web Design in a Nutshell)
text-only browsers: 1.2.1. Clients, Servers, and Browsers (HTML & XHTML: The Definitive Guide)
5.2.6.3. The alt and longdesc attributes (HTML & XHTML: The Definitive Guide)
text/plain encoding: 9.2.2.3. The text/plain encoding (HTML & XHTML: The Definitive Guide)
transforming: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
type size: 2.2.2.2. Disadvantages (Web Design in a Nutshell)
underlining: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
turned off by browsers: 4.1.6.1. Weird decorations (Cascading Style Sheets: The Definitive Guide)
uppercase: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
upright: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
WAP programming and: 32.2.3. Handheld Devices (Web Design in a Nutshell)
whitespace (see whitespace)
whitespace in: 4.1.1.3. Handling whitespace (Cascading Style Sheets: The Definitive Guide)
WML programming and: 32.3.2. Formatting Text (Web Design in a Nutshell)
word wrap
graphics and: 12.3.5.2. Stopping text wrap (Web Design in a Nutshell)
multiline text entry fields: 15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
text-align property: 4.1.1.2. Aligning text (Cascading Style Sheets: The Definitive Guide)
8.4.5.3. The text-align property (HTML & XHTML: The Definitive Guide)
effect on word/letter spacing: 4.1.4.3. Spacing, alignment, and font size (Cascading Style Sheets: The Definitive Guide)
tables and: 10.7. Tables (Cascading Style Sheets: The Definitive Guide)
text attribute ( ): 9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.3.1. Colors (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
5.3.1.4. The text attribute (HTML & XHTML: The Definitive Guide)
text-bottom alignment: 4.1.3.3. Bottom feeding (Cascading Style Sheets: The Definitive Guide)
text/css value: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
1.4.2. The STYLE Element (Cascading Style Sheets: The Definitive Guide)
text decoration: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
changing color of: 4.1.6.1. Weird decorations (Cascading Style Sheets: The Definitive Guide)
combining decorations: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
turned off by browsers: 4.1.6.1. Weird decorations (Cascading Style Sheets: The Definitive Guide)
text-decoration property (CSS): 11.4.4. Turning Off Underlines (Web Design in a Nutshell)
17.5.1. Type-Related Properties (Web Design in a Nutshell)
text editors: 1.7.1.1. Word processor or WYSIWYG editor? (HTML & XHTML: The Definitive Guide)
2.1. Writing Tools (HTML & XHTML: The Definitive Guide)
text entry fields: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.1. Text entry (type=text) (Web Design in a Nutshell)
hidden fields: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.3. Hidden entry (type=hidden) (Web Design in a Nutshell)
multiline: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
password fields: 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.1.2. Password text entry (type=password) (Web Design in a Nutshell)
text entry fields (forms): 9.5.1.1. Conventional text fields (HTML & XHTML: The Definitive Guide)
text fields: 18. On-Screen Text Fields (ActionScript: The Definitive Guide)
antialiasing: 18.4.3. Typical Text-Scrolling Code (ActionScript: The Definitive Guide)
embedded fonts in: 18.3.7. Embed Fonts (ActionScript: The Definitive Guide)
bad data in: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
Border/Bg option: 18.3.3. Border/Bg (ActionScript: The Definitive Guide)
_changed event: 18.4.4. The _changed Event (ActionScript: The Definitive Guide)
character indexes in: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
converting to numbers: function (ActionScript: The Definitive Guide) 3.4.2.4. Converting to a number with the Number( )
device fonts and: 18.3.7. Embed Fonts (ActionScript: The Definitive Guide)
dynamic text fields
changing content of: 18.1.2. Changing the Content of a Dynamic Text Field (ActionScript: The Definitive Guide)
creating: 18.1.1. Creating a Dynamic Text Field (ActionScript: The Definitive Guide)
retrieving values of: 18.1.3. Retrieving the Value of a Dynamic Text Field (ActionScript: The Definitive Guide)
Embed Fonts option: 18.3.7. Embed Fonts (ActionScript: The Definitive Guide)
18.5.11. Using HTML as Output (ActionScript: The Definitive Guide)
event handling for: 18.4.4. The _changed Event (ActionScript: The Definitive Guide)
hard returns in: 18.3.1. Line Display (ActionScript: The Definitive Guide)
HTML support: 18.5. HTML Support (ActionScript: The Definitive Guide)
largest allowed scroll value: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Line Display options: 18.3.1. Line Display (ActionScript: The Definitive Guide)
locating keyboard focus: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Max Characters option: 18.3.6. Max Characters (ActionScript: The Definitive Guide)
maxscroll property: 18.4.2. The maxscroll Property (ActionScript: The Definitive Guide)
Multiline option: 18.3.1. Line Display (ActionScript: The Definitive Guide)
options: 18.3. Text Field Options (ActionScript: The Definitive Guide)
Password option: 18.3.1. Line Display (ActionScript: The Definitive Guide)
properties: 18.4. Text Field Properties (ActionScript: The Definitive Guide)
quoting HTML attributes correctly: 18.5.9. Quoting Attribute Values (ActionScript: The Definitive Guide)
retrieving index of
first selected character: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
insertion point: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
last selected character: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
scroll property: 18.4.1. The scroll Property (ActionScript: The Definitive Guide)
scrolling: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Selectable option: 18.3.5. Selectable (ActionScript: The Definitive Guide)
selecting characters with focus: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Selection object: 18.6. Working with Text Field Selections (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting keyboard focus for: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Single Line option: 18.3.1. Line Display (ActionScript: The Definitive Guide)
tab order, customizing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
text not appearing: 18.3.7. Embed Fonts (ActionScript: The Definitive Guide)
18.5.11. Using HTML as Output (ActionScript: The Definitive Guide)
undefined text fields and for-in loops: 18.7. Empty Text Fields and the for-in Statement (ActionScript: The Definitive Guide)
unrecognized tags and attributes: 18.5.10. Unrecognized Tags and Attributes (ActionScript: The Definitive Guide)
user-input text fields
adding to Flash forms: 17.2.1. Building the Frontend (ActionScript: The Definitive Guide)
changing content of: 18.2.2. Changing the Content of an Input Text Field (ActionScript: The Definitive Guide)
creating: 18.2.1. Creating a User-Input Text Field (ActionScript: The Definitive Guide)
retrieving/using values of: 18.2.3. Retrieving and Using the Value of an Input Text Field (ActionScript: The Definitive Guide)
using with fill-in forms: 18.2.4. User-Input Text Fields and Forms (ActionScript: The Definitive Guide)
Variable option: 18.3.2. Variable (ActionScript: The Definitive Guide)
variables, creating: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
Word Wrap option: 18.3.4. Word Wrap (ActionScript: The Definitive Guide)
text files, converting to Cevent files: 6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
text-indent property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
text navigation bars: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
text nodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
raw XML source code in: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
whitespace in: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.nodeValue property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Text Options panel: 18.3. Text Field Options (ActionScript: The Definitive Guide)
text-shadow property: 10.3.2. text-shadow (Cascading Style Sheets: The Definitive Guide)
text size
tags: 4.5.2. The <big> Tag (HTML & XHTML: The Definitive Guide)
4.5.6. The <small> Tag (HTML & XHTML: The Definitive Guide)
4.6.2. The <basefont> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
4.6.3.1. The size attribute (HTML & XHTML: The Definitive Guide)
Extended Font Model: 4.6.1. The Extended Font Size Model (HTML & XHTML: The Definitive Guide)
heading tags for: 4.2.3. Using Headings for Smaller Text (HTML & XHTML: The Definitive Guide)
text, streaming in RealSystem G2 presentations: 7.4. RealText (Designing Web Audio)
text tag, SMIL: 7.2.1. SMIL syntax (Designing Web Audio)
text-top alignment: 4.1.3.4. Getting on top (Cascading Style Sheets: The Definitive Guide)
text-transform property: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
8.4.5.9. The text-transform property (HTML & XHTML: The Definitive Guide)
vs. font-variant property: 5.4.2. Font Variations (Cascading Style Sheets: The Definitive Guide)
text/css encoding: 8.1.2.1. The type attribute (HTML & XHTML: The Definitive Guide)
TEXT_NODE (XML node type): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
texttop value: 5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
(see also alignment)
texttop value (align): 12.3.4. Vertical Alignment (Web Design in a Nutshell)
textual labels: 4.5.1. Navigation Bars (Information Architecture for the World Wide Web)
<th> tags: 2.10. Tables (HTML & XHTML: The Definitive Guide)
<thead> tags: 10.3.2. The <thead> Tag (HTML & XHTML: The Definitive Guide)
theater performances: 6.6.1. Capturing high-quality live sound (Designing Web Audio)
thesauri as source for labels: 5.4.1.3. Controlled vocabularies and thesauri (Information Architecture for the World Wide Web)
5.5.1. The Basics (Information Architecture for the World Wide Web)
this keyword
customizing object properties during object creation: 12.5.2.2. Assigning custom properties to the objects of a class (ActionScript: The Definitive Guide)
explicitly referring to
current instances: 13.5.2.1. Self-references with the this keyword (ActionScript: The Definitive Guide)
objects using: 10.7.1. Movie Clip Event Handler Scope (ActionScript: The Definitive Guide)
passing unnamed clips as references to functions: 10.7.1. Movie Clip Event Handler Scope (ActionScript: The Definitive Guide)
throws keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
thumbnail images: 12.3.6.1. Link to large images (Web Design in a Nutshell)
tickertape window type, RealText: 7.4.2. Window types (Designing Web Audio)
Tidy utility for HTML to XHTML conversions: 16.4.2. Automatic Conversion (HTML & XHTML: The Definitive Guide)
~ (tilde) in URLs: 6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
tilde (~) in selectors: 10.2.2.3. Matching single attribute values (Cascading Style Sheets: The Definitive Guide)
tilde (~) in URLs: 6.2.2.3. The http path (HTML & XHTML: The Definitive Guide)
tiling background graphics: 9.3.2. Tiling Background Graphics (Web Design in a Nutshell)
tiling images: 6.2.1. Background Images (Cascading Style Sheets: The Definitive Guide)
6.2.4. Repeats with Direction (Revisited) (Cascading Style Sheets: The Definitive Guide)
tiling with images: 8.4.4.5. The background-repeat property (HTML & XHTML: The Definitive Guide)
timbre: 2.1. The science of sound (Designing Web Audio)
2.1.3. Timbre (Designing Web Audio)
time
elapsed, determining: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
working with: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
time and date, SSI for: 18.4.1. Example: Printing the Date and Time (Web Design in a Nutshell)
formatting: 18.8. Time Formats for SSI Output (Web Design in a Nutshell)
time control attributes for SMIL: 27.4.5.2. Time control attributes (Web Design in a Nutshell)
time correction button, sound editing: 4.2.3. Pitch shift (Designing Web Audio)
Time-Out Preference, Live Encoder: 6.6.4. Using the time-out preferences to avoid crashes (Designing Web Audio)
time values: 3.5. CSS2 Units (Cascading Style Sheets: The Definitive Guide)
timed animation: 8.7.3. Frame Rate's Effect on Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
timefmt attribute (config command): 18.6. SSI Commands (Web Design in a Nutshell)
18.8. Time Formats for SSI Output (Web Design in a Nutshell)
timeline in flash: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
timeline loops: 8.7. Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
creating empty-clip: 8.7.1. Creating an Empty-Clip Timeline Loop (ActionScript: The Definitive Guide)
creating process clips: 13.2.4. Process Clips (ActionScript: The Definitive Guide)
frame rate effect on: 8.7.3. Frame Rate's Effect on Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
vs. ordinary loops: 8.7. Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
timeline variables
accessibility of: 9.7.1. The Scope Chain (ActionScript: The Definitive Guide)
creating: 9.7.2. Local Variables (ActionScript: The Definitive Guide)
initializing: 9.13.1. Organizing the Quiz Code into Functions (ActionScript: The Definitive Guide)
using local variables to avoid name conflicts: 9.7.2. Local Variables (ActionScript: The Definitive Guide)
timelines
accessing variables on different: 2.5.6. Accessing Variables on Different Timelines (ActionScript: The Definitive Guide)
adding frame labels: 1.3.5. Adding Frame Labels (ActionScript: The Definitive Guide)
checking for hidden layers: 16.5. Where's All the Code? (ActionScript: The Definitive Guide)
creating variables: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
2.5. Variable Scope (ActionScript: The Definitive Guide)
layer structure and: 1.3.2. Building the Layer Structure (ActionScript: The Definitive Guide)
13.4.1. The Internal Layer Stack (ActionScript: The Definitive Guide)
number of frames in: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
playing from a given frame: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
references, absolute/relative: 2.5.6.1. The _root and _ parent properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
stopping at a given frame: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
variables: 2.5.5. Movie Clip Variables (ActionScript: The Definitive Guide)
timeouts, simulating: 8.7. Timeline and Clip Event Loops (ActionScript: The Definitive Guide)
D. Differences from ECMA-262 and JavaScript (ActionScript: The Definitive Guide)
TimeToLive (TTL) settings: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
timing loops: 1.9.2. Timing loops (Designing Web Audio)
TITLE attribute: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
title, stylized: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
tags, indexing labels in: 5.3.2. Labels as Indexing Terms (Information Architecture for the World Wide Web)
titles
bibliographic: 4.4.3. The <cite> Tag (HTML & XHTML: The Definitive Guide)
choosing: 3.7.2.1. What's in a title? (HTML & XHTML: The Definitive Guide)
document: 2.4. HTML Skeleton (HTML & XHTML: The Definitive Guide)
3.7.2. The <title> Tag (HTML & XHTML: The Definitive Guide)
4.2.2. Appropriate Use of Headings (HTML & XHTML: The Definitive Guide)
forms: 9.2.6. The id, name, and title Attributes (HTML & XHTML: The Definitive Guide)
frames: 11.4.1.7. The title and longdesc attributes (HTML & XHTML: The Definitive Guide)
hyperlinked documents: 6.3.1.9. The title attribute (HTML & XHTML: The Definitive Guide)
6.7.2.3. The title attribute (HTML & XHTML: The Definitive Guide)
image map area: 6.5.4.9. The title attribute (HTML & XHTML: The Definitive Guide)
sections: 4.1.1.5. The title attribute (HTML & XHTML: The Definitive Guide)
table captions: 10.2.5. The <caption> Tag (HTML & XHTML: The Definitive Guide)
titles (document): 9.2.2.1. Titles (Web Design in a Nutshell)
14.7.3. Helping Search Engines (Web Design in a Nutshell)
toc document relationship: 6.3.1.5. The rel and rev attributes (HTML & XHTML: The Definitive Guide)
toggleHighQuality( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
toLowerCase( ) (String class): function (ActionScript: The Definitive Guide) 4.6.8.2. The toLowerCase( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
tone generators: A.2.6. Synthesizers and tone generators (Designing Web Audio)
toolbox in Flash: 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
Toolbox list (Actions panel): 1.1.1. Creating Code (ActionScript: The Definitive Guide)
Toolbox pane (Actions panel): 16.1. The Actions Panel (ActionScript: The Definitive Guide)
tools (web authoring): 1.3.5. Take Advantage of Tools (Web Design in a Nutshell)
8.6. HTML Tools (Web Design in a Nutshell)
creating accessible page content: 6.3.1. Content Creation (Web Design in a Nutshell)
Appendix C.2. Deprecated Attributes (Web Design in a Nutshell)
top alignment: 4.1.3.4. Getting on top (Cascading Style Sheets: The Definitive Guide)
top attribute: 14.3.1.2. The left and top attributes (HTML & XHTML: The Definitive Guide)
14.3.2.1. The top and left attributes (HTML & XHTML: The Definitive Guide)
top-down organization: 3.2.2.1. The hierarchy: A top-down approach (Information Architecture for the World Wide Web)
navigation and: 4.3. Improving Flexibility (Information Architecture for the World Wide Web)
table of contents: 4.6.1. The Table of Contents (Information Architecture for the World Wide Web)
top property: 9.1.2. Side Offsets (Cascading Style Sheets: The Definitive Guide)
top property (CSS): 17.6.1. The position Property (Web Design in a Nutshell)
_top target: 14.5.2. Reserved target names (Web Design in a Nutshell)
11.7.2. Special Targets (HTML & XHTML: The Definitive Guide)
top value: 2.8.1. Inline Images (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
(see also alignment)
top value (align): 12.3.4. Vertical Alignment (Web Design in a Nutshell)
topical organization: 3.2.1.2.1. Topical (Information Architecture for the World Wide Web)
6.5.2.3. Drilling down: Indexing by subject (Information Architecture for the World Wide Web)
topmargin attribute ( ): 9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.3.3. Adjusting Browser Margins (Web Design in a Nutshell)
5.3.1.7. The topmargin attribute (HTML & XHTML: The Definitive Guide)
toString( ): method (ActionScript: The Definitive Guide) 3.4.2.1. Converting to a string with the toString( )
Array class: Method (ActionScript: The Definitive Guide) 11.9.5. The toString( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Boolean class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Number class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Object class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_totalframes property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
use instead of ifFrameLoaded statement: 6.3.10. The ifFrameLoaded Statement (ActionScript: The Definitive Guide)
toUpperCase( ) (String class): function (ActionScript: The Definitive Guide) 4.6.8.1. The toUpperCase( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
tours (see guided tours)
trace( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
ActionScript interpreter and: 1.1.4. The Wizard Behind the Curtain (the Interpreter) (ActionScript: The Definitive Guide)
as debugging tool: Function (ActionScript: The Definitive Guide) 19.1.1. The trace( )
used in loops: 1.2.3.2. Repeating tasks using loops (ActionScript: The Definitive Guide)
8.1. The while Loop (ActionScript: The Definitive Guide)
track numbers: 8.4.2.4. Working with ID3 tags (Designing Web Audio)
tracking search engine queries: 9.6.4. Usage Tracking (Information Architecture for the World Wide Web)
tracking site usage: 9.6.4. Usage Tracking (Information Architecture for the World Wide Web)
tracks, compact discs: 8.4.2.5. CDDB database support (Designing Web Audio)
transducers: 3.1.1. Microphones (Designing Web Audio)
transformations (color adjustments): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transforming text: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
transformobject, properties of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transient keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
transients: 2.1.3. Timbre (Designing Web Audio)
transitional document type declaration: 9.2.1. The Document Type Declaration (Web Design in a Nutshell)
transitions, screen: 1.9.2. Timing loops (Designing Web Audio)
Transmission Control Protocol (see TCP)
transparency: 19.7. Transparency (Web Design in a Nutshell)
5.2.1.2. Interlacing, transparency, and animation (HTML & XHTML: The Definitive Guide)
17.5. Transparent Images (HTML & XHTML: The Definitive Guide)
editing with alpha channel: 21.6.3.1. Alpha channel transparency (Web Design in a Nutshell)
GIFs
animation: 23.5.2. Transparency (Web Design in a Nutshell)
format for: 19.4. When to Use GIFs (Web Design in a Nutshell)
GIF87a vs. GIF89a formats: 19.1. GIF87a Versus GIF89a (Web Design in a Nutshell)
PNG format for: 21.6.3. Transparency (Web Design in a Nutshell)
preventing unwanted: 19.7.2. Preventing Unwanted Transparent Areas (Web Design in a Nutshell)
Transparency Index Color: 19.7. Transparency (Web Design in a Nutshell)
transparency in movie clips: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
specifying: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transparent keyword: 6.1.2. Background Color (Cascading Style Sheets: The Definitive Guide)
trapallkeys command (standalone Player): 10.11.4.1. Handling special keys (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
treble: 2.1.2. Pitch (Designing Web Audio)
tree view of HTML documents: 2.5. Structure (Cascading Style Sheets: The Definitive Guide)
trigonometry
arc cosine, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
arc sine, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
arc tangent, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
cosine, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sine, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
tangent, computing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
troubleshooting
disappearing styles: 11.2.10. Disappearing Styles (Cascading Style Sheets: The Definitive Guide)
Java applets: 12.6.5.2. Adding applets with <applet> (Web Design in a Nutshell)
style sheets displayed in browsers: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
tables: 13.5. Table Troubleshooting (Web Design in a Nutshell)
troubleshooting background images/colors: 5.3.2.1. Problems with background images (HTML & XHTML: The Definitive Guide)
troubleshooting tools: 19. Debugging (ActionScript: The Definitive Guide)
true color images: 17.5.1. Colors, Maps, and Indexes (HTML & XHTML: The Definitive Guide)
true color space: 3.3.1.1. RGB color (Web Design in a Nutshell)
truecolor images: 21.4.3. Truecolor (Web Design in a Nutshell)
TrueDoc Dynamic fonts: 3.2.4. Embedded Fonts (Web Design in a Nutshell)
TrueType fonts (Microsoft): 3.2.3.3. Core fonts for the Web from Microsoft (Web Design in a Nutshell)
truncating decimal portion of numbers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
try keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
<tt> (teletype) tag: 2.6.1.2. Physical styles (HTML & XHTML: The Definitive Guide)
10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.2. Physical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
TTL (TimeToLive) settings: 6.4.1. Broadcasting through firewalls (Designing Web Audio)
tty media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
tty value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
turnOn( ) JavaScript function: 28.2.2. Event Handlers (Web Design in a Nutshell)
TV Guide Entertainment Network: 6.4.5. Creating synchronized RealAudio presentations with RealSystem 5.0 (Designing Web Audio)
tv media type, connecting style sheets and HTML: 5.3.2. Connecting the Style Sheets and HTML (Web Design in a Nutshell)
tv value (style media): 8.1.2.2. The media attribute (HTML & XHTML: The Definitive Guide)
tweening (Flash): 26.3.2. Flash Interface Basics (Web Design in a Nutshell)
Twiddly Bits: 10.3.4.1. Creating your own MIDI file (Designing Web Audio)
two-column layouts: 13.7.5. Two-Column Page Layouts (Web Design in a Nutshell)
two-dimensional arrays: 11.10. Multidimensional Arrays (ActionScript: The Definitive Guide)
TYPE attribute: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
type declarations: 9.2.1. The Document Type Declaration (Web Design in a Nutshell)
type, Gopher URLs: 6.2.10.2. The gopher path (HTML & XHTML: The Definitive Guide)
type selectors (style sheets): 17.3.1. Type Selector (Web Design in a Nutshell)
type size: 2.2.2.2. Disadvantages (Web Design in a Nutshell)
specifying: 3.2.3.1. Type size (Web Design in a Nutshell)
typecodes in ftp URLs: 6.2.4.3. The ftp path and transfer type (HTML & XHTML: The Definitive Guide)
typeof operator: 1.1.6. ActionScript's Glue (Operators) (ActionScript: The Definitive Guide)
2.4.3. Determining the Type Manually (ActionScript: The Definitive Guide)
5.11.2. The typeof Operator (ActionScript: The Definitive Guide)
resolving unexpected type conversions: 19.2.3. Common Sources of Bugs (ActionScript: The Definitive Guide)
return values of: 3.4.5. Determining the Type of an Existing Datum (ActionScript: The Definitive Guide)
types of nodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
typography (fonts): 3.1.1. Designing for the Unknown (Web Design in a Nutshell)
13.6.1. <font> and Tables (Web Design in a Nutshell)
(see also text)
CSS2 descriptors for: 17.7.3. Font Descriptors (Web Design in a Nutshell)
cursive joining behavior: 7.2.3. Cursive Joining Behavior (Web Design in a Nutshell)
embedding: 3.2.4. Embedded Fonts (Web Design in a Nutshell)
in graphics: 3.2.2. Text in Graphics (Web Design in a Nutshell)
internationalization: 7.1. Character Sets (Web Design in a Nutshell)
style sheet properties: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
tables and: 13.6.1. <font> and Tables (Web Design in a Nutshell)
text size (see type size)
types specifying: 3.2.3. Why Specifying Type Is Problematic (Web Design in a Nutshell)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: U

U element: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
(underline) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.2. Physical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
WML: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
UA (see user agent)
UDP (User Datagram Protocol): 5.1. Streaming protocols (Designing Web Audio)
(unordered list) tag: 10.1.4. Lists (Web Design in a Nutshell)
Lists (Web Design in a Nutshell) 10.6.1. Unordered (Bulleted)
Appendix A. HTML Elements (Web Design in a Nutshell)
Ulead
GIF Animator: 23.4.2. GIF Animation Utilities (Web Design in a Nutshell)
GifSmartsaver: 19.5. Tools Overview (Web Design in a Nutshell)
Ultrashock.com: A.1. ActionScript and Programming (ActionScript: The Definitive Guide)
ultrasonic sound: 2.1. The science of sound (Designing Web Audio)
unary negation ( ) operator: 5.3.8. Unary Negation (ActionScript: The Definitive Guide)
unary operators: 5.1.2. Number of Operands (ActionScript: The Definitive Guide)
undefined datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
4.8. Undefined (ActionScript: The Definitive Guide)
equality rules for: 5.4.1. Primitive Datatype Equality (ActionScript: The Definitive Guide)
underflow conditions: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
underline ( ) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.2. Physical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
underlined text
in CSS: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
hyperlinks: 11.4.4. Turning Off Underlines (Web Design in a Nutshell)
underlined text (HTML support in text fields): 18.5.3. <U> (Underline) (ActionScript: The Definitive Guide)
underlining: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
changing color of: 4.1.6.1. Weird decorations (Cascading Style Sheets: The Definitive Guide)
removing from hyperlinks: 4.1.6. Text Decoration (Cascading Style Sheets: The Definitive Guide)
turned off by browsers: 4.1.6.1. Weird decorations (Cascading Style Sheets: The Definitive Guide)
underscore ( _ ): 8.2.3. Attributes (Web Design in a Nutshell)
underscores in built-in clip properties: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
underscoring: 4.5.11. The <u> Tag (Deprecated) (HTML & XHTML: The Definitive Guide)
8.4.5.4. The text-decoration property (HTML & XHTML: The Definitive Guide)
unescape( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Unicode
escape sequences: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
4.5.2.3. Unicode-style escape sequences (ActionScript: The Definitive Guide)
B. Latin 1 Character Repertoire and Keycodes (ActionScript: The Definitive Guide)
not supported in ActionScript: 4.5.1. Character Encoding (ActionScript: The Definitive Guide)
unicode-bidi property in CSS2 for multilingualism: 7.3. Style Sheets Language Features (Web Design in a Nutshell)
Unicode character set: 7.1.2. 16-Bit Encoded Character Sets (Web Design in a Nutshell)
Uniform Palette: 22.2. Converting to the Web Palette (Web Design in a Nutshell)
Uniform Resource Identifier (URI): 3.5. CSS2 Units (Cascading Style Sheets: The Definitive Guide)
Uniform Resource Locators (see URLs)
unique identifiers (IDs)
articles in newsgroups: 6.2.7.2. The nntp newsgroup and article (HTML & XHTML: The Definitive Guide)
messages on news servers: 6.2.6.2. Accessing single messages (HTML & XHTML: The Definitive Guide)
Unisys company: 19.3. GIF Compression (Web Design in a Nutshell)
units: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
(see also length units; CSS2 units)
for aural style sheets: 3.5. CSS2 Units (Cascading Style Sheets: The Definitive Guide)
avoiding mixing: 11.1.3. Case 3: Putting a Magazine Article Online (Cascading Style Sheets: The Definitive Guide)
color: 3.6. Summary (Cascading Style Sheets: The Definitive Guide)
units attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.2.4.8. The units attribute (HTML & XHTML: The Definitive Guide)
Unity DS-1 software: 10.1.1. Advantages to using the MIDI format (Designing Web Audio)
universal child selectors: 8.2.4. Universal, Child, and Adjacent Selectors (HTML & XHTML: The Definitive Guide)
universal selector: 10.2.1.1. Universal selector (Cascading Style Sheets: The Definitive Guide)
Unix: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
RealServer, installing: 6.3.3.1. RealServer installation (Designing Web Audio)
Unix systems
Flash movies (unsupported): 26.1.2. Disadvantages (Web Design in a Nutshell)
web palette for: 3.3.2. Color in Browsers ( The Web Palette) (Web Design in a Nutshell)
unknown value for WML attribute: 32.3.6. Programming Softkeys (Web Design in a Nutshell)
unload movie clip event: 10.10.3. unload (ActionScript: The Definitive Guide)
unload movie clip event handler: 10.10.3. unload (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
order of execution: 10.12. Order of Execution (ActionScript: The Definitive Guide)
unloadMovie( )
global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
target parameter and: 13.8.3.1. Method versus global function overlap issues (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
removing contents of clip instances: with instances (ActionScript: The Definitive Guide) 13.6.1.2. Using unloadMovie( )
removing levels in document stacks: with Instances and Levels (ActionScript: The Definitive Guide) 13.6.1. Using unloadMovie( )
unloadMovieNum( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
unnamed form parameters: 9.12.2.2. Using unnamed parameters with GET applications (HTML & XHTML: The Definitive Guide)
unordered (bulleted) lists: Lists (Web Design in a Nutshell) 10.6.1. Unordered (Bulleted)
7.1. Unordered Lists (HTML & XHTML: The Definitive Guide)
bullet shape: 7.3.1.1. The type attribute (HTML & XHTML: The Definitive Guide)
custom list item markers: 17.3. Custom Bullets (HTML & XHTML: The Definitive Guide)
list marker style properties: 8.4.7.1. The list-style-image property (HTML & XHTML: The Definitive Guide)
nesting: 10.6.4.1. Nesting unordered lists (Web Design in a Nutshell)
7.4.1. Nested Unordered Lists (HTML & XHTML: The Definitive Guide)
tag and: 10.1.4. Lists (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
using appropriately: 7.6. Appropriate List Usage (HTML & XHTML: The Definitive Guide)
unordered lists: 7.7.1. Types of Lists (Cascading Style Sheets: The Definitive Guide)
2.9.1. Unordered, Ordered, and Definition Lists (HTML & XHTML: The Definitive Guide)
directory lists: 7.7. Directory Lists (HTML & XHTML: The Definitive Guide)
unordered lists, CSS properties: 17.5.4. Classification Properties (Web Design in a Nutshell)
unsafe characters in URLs: 6.2.1.1. Handling reserved and unsafe characters (HTML & XHTML: The Definitive Guide)
unshift( ) (Array class): method (ActionScript: The Definitive Guide) 11.7.3.2. The unshift( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
unsigned right shift assignment (>>>=) operator: 5.1.3. Operator Precedence (ActionScript: The Definitive Guide)
unsigned right shift (>>>) operator: 15.2.5.2. Unsigned right shift (ActionScript: The Definitive Guide)
Unspecified disposal method: 23.5.3. Disposal Methods (Web Design in a Nutshell)
unvisited anchors: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
unvisited link state: 8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
UP property (Key object): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
update statements in loops: 8.1. The while Loop (ActionScript: The Definitive Guide)
8.2. Loop Terminology (ActionScript: The Definitive Guide)
updateAfterEvent( ) global function: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
refreshing the screen with: 10.14. Refreshing the Screen with updateAfterEvent (ActionScript: The Definitive Guide)
simulating a custom mouse pointer: 10.17. Event Handlers Applied (ActionScript: The Definitive Guide)
uploading documents via FTP: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
uppercase text: 4.1.5. Text Transformation (Cascading Style Sheets: The Definitive Guide)
uppercase versions of strings, creating: function (ActionScript: The Definitive Guide) 4.6.8.1. The toUpperCase( )
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
upright text: 5.4.1. Fonts with Style (Cascading Style Sheets: The Definitive Guide)
URI (Uniform Resource Identifier): 3.5. CSS2 Units (Cascading Style Sheets: The Definitive Guide)
_url property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
URLs (uniform resource locators): 2.7.1. URLs (HTML & XHTML: The Definitive Guide)
6.2. Referencing Documents: The URL (HTML & XHTML: The Definitive Guide)
absolute vs. relative: 6.2.11. Absolute and Relative URLs (HTML & XHTML: The Definitive Guide)
tag: 6.7.1. The <base> Header Element (HTML & XHTML: The Definitive Guide)
character encodings in: 6.2.1. Writing a URL (HTML & XHTML: The Definitive Guide)
file URLs: 6.2.5. The file URL (HTML & XHTML: The Definitive Guide)
form parameters in: 9.2.4.2. Passing parameters explicitly (HTML & XHTML: The Definitive Guide)
9.12.2.1. Using named parameters with GET applications (HTML & XHTML: The Definitive Guide)
ftp URLs: 6.2.4. The ftp URL (HTML & XHTML: The Definitive Guide)
generating randomly: 13.2.4.1. A random URL generator (HTML & XHTML: The Definitive Guide)
gopher URLs: 6.2.10. The gopher URL (HTML & XHTML: The Definitive Guide)
http URLs: 6.2.2. The http URL (HTML & XHTML: The Definitive Guide)
JavaScript pseudo-protocol: 6.2.3. The javascript URL (HTML & XHTML: The Definitive Guide)
javascript pseudo-URLs: 12.3.4. JavaScript URLs (HTML & XHTML: The Definitive Guide)
mailto URLs: 6.2.8. The mailto URL (HTML & XHTML: The Definitive Guide)
9.2.2. The enctype Attribute (HTML & XHTML: The Definitive Guide)
9.4. Using Email to Collect Form Data (HTML & XHTML: The Definitive Guide)
defining mail header fields: 6.2.8.1. Defining mail header fields (HTML & XHTML: The Definitive Guide)
news and nntp URLs: 6.2.6. The news URL (HTML & XHTML: The Definitive Guide)
query URLs: 6.6.1.2. The query URL (HTML & XHTML: The Definitive Guide)
as style property values: 8.4.1.4. URL property values (HTML & XHTML: The Definitive Guide)
telnet URLs: 6.2.9. The telnet URL (HTML & XHTML: The Definitive Guide)
usability of sites: 1.2.2.3. Utility (Information Architecture for the World Wide Web)
ability to find information: 1.2.1.1. Can't find it (Information Architecture for the World Wide Web)
1.2.2.4. "Findability" (Information Architecture for the World Wide Web)
testing: 9.6. Learning from Users (Information Architecture for the World Wide Web)
usability engineering: 2.2.3.4. Usability engineering (Information Architecture for the World Wide Web)
usage analysis reporting: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
usage tracking: 9.6.4. Usage Tracking (Information Architecture for the World Wide Web)
usemap attribute: B. List of Attributes (Web Design in a Nutshell)
2.8.2. Image Maps (HTML & XHTML: The Definitive Guide)
5.2.6.14. The ismap and usemap attributes (HTML & XHTML: The Definitive Guide)
6.5.2. Client-Side Image Maps (HTML & XHTML: The Definitive Guide)
12.2.1.10. The shapes and usemap attributes (HTML & XHTML: The Definitive Guide)
Usenet news system: 6.2.6. The news URL (HTML & XHTML: The Definitive Guide)
user agent strings: 1.2.1.1. Server log analysis (Web Design in a Nutshell)
user agent (UA): 2.2.2. Grouping Declarations (Cascading Style Sheets: The Definitive Guide)
2.2.2. Grouping Declarations (Cascading Style Sheets: The Definitive Guide)
(see also browsers)
user and password, telnet URLs: 6.2.9.1. The telnet user and password (HTML & XHTML: The Definitive Guide)
User Datagram Protocol (see UDP)
user events: 10.3. Types of Events (ActionScript: The Definitive Guide)
adding code to buttons: 16.3. Adding Scripts to Buttons (ActionScript: The Definitive Guide)
user-input movie clip events: 10.11. The User-Input Movie Clip Events (ActionScript: The Definitive Guide)
updateAfterEvent( ) and: 10.14. Refreshing the Screen with updateAfterEvent (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
user interface design: 9.11.3. User Interface Considerations (HTML & XHTML: The Definitive Guide)
user-related event handlers: 12.3.3.1. Standard event handler attributes (HTML & XHTML: The Definitive Guide)
users (see audiences)
users, selecting alternate style sheets: 1.4.1.2. Alternate style sheets (Cascading Style Sheets: The Definitive Guide)
UTC (Coordinated Universal Time): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getTimezoneOffset( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCDate( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCDay( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCFullYear( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCHours( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCMilliseconds( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCMinutes( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCMonth( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
getUTCSeconds( ) and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC( ) (Date class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: V

valid XML documents: 15.2. Documents and DTDs (HTML & XHTML: The Definitive Guide)
valign attribute: B. List of Attributes (Web Design in a Nutshell)
10.2.1.10. The valign and nowrap attributes (HTML & XHTML: The Definitive Guide)
10.2.5.1. The align and valign attributes (HTML & XHTML: The Definitive Guide)
and: 10.2.4.1. The align and valign attributes (HTML & XHTML: The Definitive Guide)
and tags: 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.4.3. Aligning Text in Cells (Web Design in a Nutshell)
13.6.3. Baseline Alignment Trick (Web Design in a Nutshell)
value attribute: B. List of Attributes (Web Design in a Nutshell)
7.3.1.2. The value attribute (HTML & XHTML: The Definitive Guide)
9.8.2.1. The value attribute (HTML & XHTML: The Definitive Guide)
12.2.2.1. The name and value attributes (HTML & XHTML: The Definitive Guide)
set command: 18.6. SSI Commands (Web Design in a Nutshell)
valueOf( )
Boolean class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Date class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
MovieClip class: 13.8.3. Built-in Movie Clip Methods (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Object class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
values: 2.1.1. Rule Structure (Cascading Style Sheets: The Definitive Guide)
matching: 10.2.2.2. Value matching (Cascading Style Sheets: The Definitive Guide)
new with CSS2: 10.9. Summary (Cascading Style Sheets: The Definitive Guide)
replication: 7.4.1.1. Multiple styles (Cascading Style Sheets: The Definitive Guide)
tag: 1.4.1.1. LINK attributes (Cascading Style Sheets: The Definitive Guide)
unrecognized: 2.1.3. Declarations (Cascading Style Sheets: The Definitive Guide)
values in style sheet rules: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.4. Specifying Values (Web Design in a Nutshell)
valuetype attribute ( ): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
12.2.2.2. The type and valuetype attributes (HTML & XHTML: The Definitive Guide)
var attribute
echo command: 18.6. SSI Commands (Web Design in a Nutshell)
set command: 18.6. SSI Commands (Web Design in a Nutshell)
var keyword: 1.1.3.1. Official variable nomenclature (ActionScript: The Definitive Guide)
local variables and: 2.5.8. Local Variables (ActionScript: The Definitive Guide)
var statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
inside vs. outside functions: 6.3.3. The var Statement (ActionScript: The Definitive Guide)
<var> tags: 2.6.1.1. Content-based text styles (HTML & XHTML: The Definitive Guide)
4.4.10. The <var> Tag (HTML & XHTML: The Definitive Guide)
(variable) tag: 10.1.2. Text Appearance (Inline Styles) (Web Design in a Nutshell)
10.3.1. Logical Styles (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
Variable option for text fields: 18.3.2. Variable (ActionScript: The Definitive Guide)
variables: 2. Variables (ActionScript: The Definitive Guide)
accessing on different timelines: 2.5.6. Accessing Variables on Different Timelines (ActionScript: The Definitive Guide)
appearing on screen: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
assigning values: 1.1.3.1. Official variable nomenclature (ActionScript: The Definitive Guide)
1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
2.2. Assigning Variables (ActionScript: The Definitive Guide)
attaching to document levels: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
automatic datatyping: 2.4.1. Automatic Typing (ActionScript: The Definitive Guide)
3.3.1. Automatic Literal Typing (ActionScript: The Definitive Guide)
automatic value conversion: 2.4.2. Automatic Value Conversion (ActionScript: The Definitive Guide)
code examples: 2.6. Some Applied Examples (ActionScript: The Definitive Guide)
concatenating: 4.6.1. Joining Strings Together (ActionScript: The Definitive Guide)
creating: 2.1. Creating Variables (Declaration) (ActionScript: The Definitive Guide)
text field: 1.3.7. Building the Quiz End (ActionScript: The Definitive Guide)
timeline variables: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
2.5. Variable Scope (ActionScript: The Definitive Guide)
declaring: 2.1. Creating Variables (Declaration) (ActionScript: The Definitive Guide)
dot syntax and: 2.5.6. Accessing Variables on Different Timelines (ActionScript: The Definitive Guide)
dynamic datatyping: 2.4.1. Automatic Typing (ActionScript: The Definitive Guide)
dynamically-named: 2.1.2.1. Creating dynamically named variables (ActionScript: The Definitive Guide)
as expressions: 1.2.2. Expressions (ActionScript: The Definitive Guide)
global
not supported: 2.5.4. Variable Accessibility (Scope) (ActionScript: The Definitive Guide)
simulating: 2.5.5.1. Scenario 4 (ActionScript: The Definitive Guide)
12.5.4.4. The end of the inheritance chain (ActionScript: The Definitive Guide)
importing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
initializing: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
Smart Clips as alternative to: 16.8. Packaging Components as Smart Clips (ActionScript: The Definitive Guide)
List Variables command: 19.1.2. The List Variables Command (ActionScript: The Definitive Guide)
local: 2.5.4. Variable Accessibility (Scope) (ActionScript: The Definitive Guide)
2.5.8. Local Variables (ActionScript: The Definitive Guide)
creating: 9.7.2. Local Variables (ActionScript: The Definitive Guide)
nonlocal and: 2.5.8. Local Variables (ActionScript: The Definitive Guide)
manually determining datatype: 2.4.3. Determining the Type Manually (ActionScript: The Definitive Guide)
movie clip, life span of: 2.5.7. Movie Clip Variable Life Span (ActionScript: The Definitive Guide)
multiple-level addressing: 2.5.6.2. Accessing variables on different document levels (ActionScript: The Definitive Guide)
naming: 1.3.4. Initializing the Quiz (ActionScript: The Definitive Guide)
2.1.2. Legal Variable Names (ActionScript: The Definitive Guide)
official nomenclature: 1.1.3. Keeping Track of Things ( Variables) (ActionScript: The Definitive Guide)
reassigning values: 2.3. Changing and Retrieving Variable Values (ActionScript: The Definitive Guide)
references
absolute/relative: 2.5.6.1. The _root and _ parent properties (ActionScript: The Definitive Guide)
resolving using scope chain: 9.7.1. The Scope Chain (ActionScript: The Definitive Guide)
scope of: 2.5. Variable Scope (ActionScript: The Definitive Guide)
sending to server-side scripts: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
temporary: 9.7. Function Scope (ActionScript: The Definitive Guide)
timeline
accessibility of: 9.7.1. The Scope Chain (ActionScript: The Definitive Guide)
creating: 9.7.2. Local Variables (ActionScript: The Definitive Guide)
using local variables to avoid name conflicts: 9.7.2. Local Variables (ActionScript: The Definitive Guide)
types of values: 2.4. Types of Values (ActionScript: The Definitive Guide)
undefined datatype: 3.2.1. The ActionScript Datatypes (ActionScript: The Definitive Guide)
4.8. Undefined (ActionScript: The Definitive Guide)
vs. literals: 3.3. Creating and Categorizing Data (ActionScript: The Definitive Guide)
variables (JavaScript): 28.2.1. Functions (Web Design in a Nutshell)
variants, font (see fonts, variants)
VBR (variable bitrate): 8.4.1. Encoding MP3 files (Designing Web Audio)
vbscript protocol (getURL( )): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
VCD (MPEG-1 video): 8.4.3.1. Selecting tracks (Designing Web Audio)
vector animation: 5.2.4. Flash and Director Shockwave (Designing Web Audio)
vector-based graphics: 9.2. Introduction to Flash (Designing Web Audio)
vector graphics: 19.5. Tools Overview (Web Design in a Nutshell)
26. Flash and Shockwave (Web Design in a Nutshell)
vectors
printing document level frames: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
printing movie clip frames: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
VeonStudio: 7. Designing Multimedia Presentations with SMIL and RealSystem G2 (Designing Web Audio)
version attribute: B. List of Attributes (Web Design in a Nutshell)
version attribute ( ): 3.6.1.3. The version attribute (HTML & XHTML: The Definitive Guide)
$version global property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
versions (browsers), designing for current: 1.3.2. Current Version Design (Web Design in a Nutshell)
versions, detecting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vertical: 14.1.1.1. Creating horizontal space (HTML & XHTML: The Definitive Guide)
(see also height attribute)
alignment (see alignment)
margins (see margins)
whitespace: 14.1.1.2. Creating vertical space (HTML & XHTML: The Definitive Guide)
vertical-align property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
vertical alignment (see alignment)
12.3.4. Vertical Alignment (Web Design in a Nutshell)
percentage values and: 4.1.3.6. Percentages (Cascading Style Sheets: The Definitive Guide)
vertical formatting: 8.2.1. Vertical Formatting (Cascading Style Sheets: The Definitive Guide)
vertical location
of clips/movies: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
of mouse pointer: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
vertical rules: 13.7.3. Creating a Vertical Rule (Web Design in a Nutshell)
vertical spacing (see margins positioning vspace attribute whitespace)
VGA colors: 3.1.1. Named Colors (Cascading Style Sheets: The Definitive Guide)
vibration: 2.1. The science of sound (Designing Web Audio)
vibrato effect: 4.2.4. Bender (Designing Web Audio)
video: 25. Video on the Web (Web Design in a Nutshell)
5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
5.6.2. Referencing Audio, Video, and Images (HTML & XHTML: The Definitive Guide)
adding to HTML documents: 25.5. Adding Video to an HTML Document (Web Design in a Nutshell)
client-pull feature for: 13.2.3. Pulling Non-HTML Content (HTML & XHTML: The Definitive Guide)
compression: 25.2. Compression (Web Design in a Nutshell)
file formats: 25.3. Video File Formats (Web Design in a Nutshell)
Flash movies: 26. Flash and Shockwave (Web Design in a Nutshell)
extensions: 5.2.7. Video Extensions (HTML & XHTML: The Definitive Guide)
inline: 5.2.7.1. The dynsrc attribute (HTML & XHTML: The Definitive Guide)
Shockwave: 26.7. Shockwave for Director (Web Design in a Nutshell)
video cards for monitor resolutions: 2.1.1. Standard Monitor Sizes and Resolutions (Web Design in a Nutshell)
video conferencing: 8.6. Start your own MP3 radio station (Designing Web Audio)
video playback buttons, JavaScript code example: 6.4.2.1. Creating custom controls with JavaScript (Designing Web Audio)
video shoots, microphones: 3.1.1.4. Lavaliere clip-on microphones (Designing Web Audio)
virtual attribute
flastmod command: 18.6. SSI Commands (Web Design in a Nutshell)
fsize command: 18.6. SSI Commands (Web Design in a Nutshell)
include command: 18.6. SSI Commands (Web Design in a Nutshell)
virtual includes (example): 18.3.1. Example: Virtual Includes (Web Design in a Nutshell)
virtual parameter (SSI): 18.3.1. Example: Virtual Includes (Web Design in a Nutshell)
virtual reality formats: 5.2.3. QuickTime (Designing Web Audio)
virtual text wrapping: 9.7.1.2. The wrap attribute (HTML & XHTML: The Definitive Guide)
virtual value for wrap attribute: 15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
viscolor.txt, Winamp: 8.3.4.1. Skin-making tutorial (Designing Web Audio)
visibility: 9.1.5. Element Visibility (Cascading Style Sheets: The Definitive Guide)
visibility attribute ( ): 14.3.1.5. The visibility attribute (HTML & XHTML: The Definitive Guide)
visibility property: 9.1.5. Element Visibility (Cascading Style Sheets: The Definitive Guide)
tables and: 10.7. Tables (Cascading Style Sheets: The Definitive Guide)
visibility property (CSS): 17.6.3. Visibility (Web Design in a Nutshell)
_visible property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Vision: 10.2.1. Making a MIDI jukebox (Designing Web Audio)
10.3.4.1. Creating your own MIDI file (Designing Web Audio)
vision of site: 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
visited anchors: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
visited hyperlink color: 11.4.1. Setting Colors in <body> (Web Design in a Nutshell)
visited link state: 8.3.4.1. Hyperlink pseudo-classes (HTML & XHTML: The Definitive Guide)
visited pseudo-class: 17.3.4.2. Pseudo-classes (Web Design in a Nutshell)
Visual Basic for CGI scripting: 15.7. Demystifying CGI (Web Design in a Nutshell)
visual formatting: 8. Visual Formatting (Cascading Style Sheets: The Definitive Guide)
block-level elements: 8.2. Block-Level Elements (Cascading Style Sheets: The Definitive Guide)
element boxes: 8.1. Basic Boxes (Cascading Style Sheets: The Definitive Guide)
floated elements: 8.3. Floated Elements (Cascading Style Sheets: The Definitive Guide)
visual rendering model: 1.3.1. Limited Initial Scope (Cascading Style Sheets: The Definitive Guide)
visualization plug-ins: 8.3.5. Plug-ins (Designing Web Audio)
VLINK attribute: 2.4.1. Pseudo-Class Selectors (Cascading Style Sheets: The Definitive Guide)
vlink attribute ( ): 9.1. Summary of Structural Tags (Web Design in a Nutshell)
9.3.1. Colors (Web Design in a Nutshell)
11.4.1. Setting Colors in <body> (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
5.3.1.5. The link, vlink, and alink attributes (HTML & XHTML: The Definitive Guide)
vocabulary, controlled: 3.2.2.5. Designing databases (Information Architecture for the World Wide Web)
taking label text from: 5.4.1.3. Controlled vocabularies and thesauri (Information Architecture for the World Wide Web)
5.5.1. The Basics (Information Architecture for the World Wide Web)
vocal performance, recording: 3.1.1.5. Directionality and pick-up patterns (Designing Web Audio)
voice content: 1.2. What you can do with sound on the Web (Designing Web Audio)
voice-family property: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
voice-over narration: 1.2. What you can do with sound on the Web (Designing Web Audio)
3.2.1.2. Optimizing your recording environment (Designing Web Audio)
voice recordings: 3.1.1.3. Condenser microphones (Designing Web Audio)
3.1.3. Mixers (Designing Web Audio)
voice-related properties: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
void operator: 5.10. The void Operator (ActionScript: The Definitive Guide)
volatile keyword (potential reserved word): 14.4. Reserved Words (ActionScript: The Definitive Guide)
volume
delay, adjusting in: 4.2.2. Delay (Designing Web Audio)
inconsistent: 1.7.1. Easy-to-use narration (Designing Web Audio)
loudness: 2.1.1. Loudness (Designing Web Audio)
retrieving current setting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
setting: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
volume, audio clips: 9.2.1. Flash audio: event-driven sound versus streaming sound (Designing Web Audio)
volume levels, consistency: 4.3.1. Normalization: maximizing the dynamic range (Designing Web Audio)
volume property: 10.8.2. The Spoken Word (Cascading Style Sheets: The Definitive Guide)
VRML (Virtual Reality Markup Language): 1.4. Knowing Your Audience (Web Design in a Nutshell)
VSPACE attribute: 8.1. Basic Boxes (Cascading Style Sheets: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: W

WAI (Web Accessibility Initiative): 6.1. The Web Accessibility Initiative (WAI) (Web Design in a Nutshell)
browsing devices: 6.3.2. Browsing Devices (Web Design in a Nutshell)
techniques for: 6.1.3. The Techniques (Web Design in a Nutshell)
wallpapering (style sheets for): 17.5.3. Background Properties (Web Design in a Nutshell)
WAP (Wireless Application Protocol): 32. WAP and WML (Web Design in a Nutshell)
applications, creating: 32.2. Creating WAP Applications (Web Design in a Nutshell)
browsers: 32.2.2. WAP Browsers (Web Design in a Nutshell)
compiling: 32.1.2. How WAP Works (Web Design in a Nutshell)
emulators: 32.2.5. WAP Emulators (Web Design in a Nutshell)
MIME types for: 32.1.3. Serving WAP Content (Web Design in a Nutshell)
War, FTP server software: 8.5.1. Creating your own MP3 site (Designing Web Audio)
warning text
boldface, setting: 2.3. Class and ID Selectors (Cascading Style Sheets: The Definitive Guide)
color, setting: 6.1.1. Foreground Colors (Cascading Style Sheets: The Definitive Guide)
WaSP (Web Standards Project): 1.6. The Importance of Standards (Web Design in a Nutshell)
8.1.3. The Web Standards Movement (Web Design in a Nutshell)
watermarking: 5.2.7. Liquid Audio (Designing Web Audio)
8.7.1. Is MP3 legal? (Designing Web Audio)
WAV, capabilties overview: NaN.10. WAV and AIFF (Designing Web Audio)
.wav files: 1.3. Two easy ways to add sound (Designing Web Audio)
Wave Convert Pro: 6.3.2. Using the RealEncoder (Designing Web Audio)
Appendix A.3.5. Audio plug-ins and utilities (Designing Web Audio)
WAVE (.wav) file format: 24.5.1. WAV/AIFF (.wav, .aif, .aiff) (Web Design in a Nutshell)
waveforms: 2.1. The science of sound (Designing Web Audio)
WaveLab: 6.3. Professional webcasting (Designing Web Audio)
WBMP files: 32.3.4. Images (Web Design in a Nutshell)
(word-break) tag: 10.1.3. Spacing and Positioning (Web Design in a Nutshell)
10.7.2. Preventing Line Breaks (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
WBXML (WAP Binary XML): 32.1.2. How WAP Works (Web Design in a Nutshell)
W3C (World Wide Web Consortium): 1.2. CSS to the Rescue (Cascading Style Sheets: The Definitive Guide)
1.6. The Importance of Standards (Web Design in a Nutshell)
1.2.4.1. The World Wide Web Consortium (HTML & XHTML: The Definitive Guide)
HTML standards and: 8.1. The HTML Standard (Web Design in a Nutshell)
Web: 1.1.2. HTML and the World Wide Web (HTML & XHTML: The Definitive Guide)
HTML/XHTML resources, web sites: 1.7.2. An Extended Toolkit (HTML & XHTML: The Definitive Guide)
information on: 1.2.2. The Flow of Information (HTML & XHTML: The Definitive Guide)
navigating with hyperlinks: 2.7.3. Hyperlink Names and Navigation (HTML & XHTML: The Definitive Guide)
Web Accessibility Initiative (WAI): 6.1. The Web Accessibility Initiative (WAI) (Web Design in a Nutshell)
browsing devices: 6.3.2. Browsing Devices (Web Design in a Nutshell)
techniques for: 6.1.3. The Techniques (Web Design in a Nutshell)
web audio, designing music loops: 1.7.3. Designing music loops (Designing Web Audio)
Web browser navigation features: 4.1. Browser Navigation Features (Information Architecture for the World Wide Web)
web browsers: 1.4.4. Actual Styles (Cascading Style Sheets: The Definitive Guide)
1.3. Design Strategies (Web Design in a Nutshell)
1.2.1. Clients, Servers, and Browsers (HTML & XHTML: The Definitive Guide)
2.1. Writing Tools (HTML & XHTML: The Definitive Guide)
applet rendering: 12.2.3.1. Applet rendering (HTML & XHTML: The Definitive Guide)
character entities, rendering: 3.5.2. Character Entities (HTML & XHTML: The Definitive Guide)
client-pull documents: 13.2. Client-Pull Documents (HTML & XHTML: The Definitive Guide)
client-side image maps and: 6.5.6. Handling Other Browsers (HTML & XHTML: The Definitive Guide)
executable content: 12. Executable Content (HTML & XHTML: The Definitive Guide)
form limitations: 9.11.1. Browser Constraints (HTML & XHTML: The Definitive Guide)
fullscreen in: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
handling missing HTML tags: 3.3.6. Omitting Tags (HTML & XHTML: The Definitive Guide)
ignoring HTML tags: 3.3.7. Ignored or Redundant Tags (HTML & XHTML: The Definitive Guide)
image borders: 5.2.6.8. The border attribute (HTML & XHTML: The Definitive Guide)
image presentation: 5.2.6. The <img> Tag (HTML & XHTML: The Definitive Guide)
incompatible with embedded objects: 12.2.5. The <noembed> Tag (HTML & XHTML: The Definitive Guide)
incompatible with executable content: 12.2.1.15. Supporting incompatible browsers (HTML & XHTML: The Definitive Guide)
incompatible with frames: 11.5. The <noframes> Tag (HTML & XHTML: The Definitive Guide)
incompatible with tables: 17.4.2.1. When tables aren't implemented (HTML & XHTML: The Definitive Guide)
Internet Explorer (see Internet Explorer)
JavaScript (see JavaScript language)
launching windows from Flash: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
leniency in data acceptance: 16.4.3. Lenient Browsers and Lazy Authors (HTML & XHTML: The Definitive Guide)
tag and: 6.7.2.5. How browsers might use <link> (HTML & XHTML: The Definitive Guide)
Mosaic browser: 1.1.2. HTML and the World Wide Web (HTML & XHTML: The Definitive Guide)
Netscape Navigator (see Netscape Navigator)
obtaining: 1.7.1.2. Browser software (HTML & XHTML: The Definitive Guide)
rendering images: 6.3.1.2. The href attribute (HTML & XHTML: The Definitive Guide)
styles (see styles)
text-only: 1.2.1. Clients, Servers, and Browsers (HTML & XHTML: The Definitive Guide)
5.2.6.3. The alt and longdesc attributes (HTML & XHTML: The Definitive Guide)
Web Design Group: 8.5. Tips on Good HTML Style (Web Design in a Nutshell)
Web Embedding Font Tool (WEFT): 3.2.4.2. OpenType (for Internet Explorer) (Web Design in a Nutshell)
Web mastering: 4. Optimizing Your Sound Files (Designing Web Audio)
web page inventory: 9.3. Web Page Inventory (Information Architecture for the World Wide Web)
web pages
audio with: 24. Audio on the Web (Web Design in a Nutshell)
bookmarking, frames and: 14.2.2. Disadvantages (Web Design in a Nutshell)
cascading style sheets: 17. Cascading Style Sheets (Web Design in a Nutshell)
accessibility features (CSS2): 6.2.2. CSS2 Features (Web Design in a Nutshell)
conflict resolution: 17.2.4. Conflicting Style Sheets: The Cascade (Web Design in a Nutshell)
CSS2 features: 17.7. What's New in CSS2 (Web Design in a Nutshell)
fixed page width: 2.2.2.3. Creating fixed pages (Web Design in a Nutshell)
positioning with: 17.5.2. Box Properties (Web Design in a Nutshell)
17.6. Positioning with Style Sheets (Web Design in a Nutshell)
properties: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.5. Properties (Web Design in a Nutshell)
17.7.2. New Properties (Web Design in a Nutshell)
selectors: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.3. Selectors (Web Design in a Nutshell)
17.7.1. New Selectors (Web Design in a Nutshell)
values for rules: 17.2.1. Rule Syntax (Web Design in a Nutshell)
17.4. Specifying Values (Web Design in a Nutshell)
XSL vs.: 30.6. Where to Learn More (Web Design in a Nutshell)
date and time on: 18.4.1. Example: Printing the Date and Time (Web Design in a Nutshell)
18.8. Time Formats for SSI Output (Web Design in a Nutshell)
distributing sound evenly across: 1.9.2. Timing loops (Designing Web Audio)
dynamic content (see SSI)
embedding objects in
alternate content: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.5.2.2. <noembed> (Web Design in a Nutshell)
tag: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.5.1. The <object> Tag (Web Design in a Nutshell)
12.5.2. The <embed> Tag (Web Design in a Nutshell)
object parameters: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.6.5.2. Adding applets with <applet> (Web Design in a Nutshell)
Flash, adding to: 26.4. Adding Flash to a Web Page (Web Design in a Nutshell)
flexible vs. fixed design: 2.2. Fixed Versus Flexible Web Page Design (Web Design in a Nutshell)
interactivity
Flash content (Macromedia): 26. Flash and Shockwave (Web Design in a Nutshell)
Java applets on: 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
12.6. Java Applets (Web Design in a Nutshell)
JavaScript-enabled buttons: 11.6.4.2. Rollover buttons (Web Design in a Nutshell)
Shockwave movies: 26.7. Shockwave for Director (Web Design in a Nutshell)
internationalization: 7. Internationalization (Web Design in a Nutshell)
marking as searchable: 15.1. Summary of Form Tags (Web Design in a Nutshell)
printing from the Web: 5. Printing from the Web (Web Design in a Nutshell)
structural tags: 9.2. Setting Up an HTML Document (Web Design in a Nutshell)
system colors in: 3.3.4. System Colors in Web Pages (Web Design in a Nutshell)
tables as templates: 13.2. Introduction to Tables (Web Design in a Nutshell)
titles for: 14.7.3. Helping Search Engines (Web Design in a Nutshell)
uploading via FTP: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
video with: 25.5. Adding Video to an HTML Document (Web Design in a Nutshell)
Web Palette: 2.4. Monitor Color Issues (Web Design in a Nutshell)
3.3.1.2. Palettes (Web Design in a Nutshell)
3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
22. Designing Graphics with the Web Palette (Web Design in a Nutshell)
color blenders: 22.4. Color Blenders (Web Design in a Nutshell)
color names vs.: 16.2.2. Color Name Cautions (Web Design in a Nutshell)
designing with: 3.3.3. Designing with the Web Palette (Web Design in a Nutshell)
designing with web-safe colors: 22.1. Designing with Web-Safe Colors (Web Design in a Nutshell)
GIF animation and: 23.5.4. Color Palette (Web Design in a Nutshell)
hexadecimal values for colors: 16.1.3. Hexadecimal Values for Web Palette Colors (Web Design in a Nutshell)
in numbers: 3.3.2.2. The web palette in numbers (Web Design in a Nutshell)
strategies: 22.3. Web Palette Strategies (Web Design in a Nutshell)
web-safe colors: 3.1.2.6. Web-safe colors (Cascading Style Sheets: The Definitive Guide)
Web Scrubber (Furbo Filters): 22.2.2.3. Web Scrubber plug-in filter (Furbo Filters) (Web Design in a Nutshell)
web servers: 4. A Beginner's Guide to the Server (Web Design in a Nutshell)
6.2.2.1. The http server (HTML & XHTML: The Definitive Guide)
Flash files, configuring for files: 26.3.4. Configuring the Server (Web Design in a Nutshell)
RealServer, working with: 6.3.3.2. RealServer system requirements (Designing Web Audio)
server-push documents: 13.3. Server -Push Documents (HTML & XHTML: The Definitive Guide)
tags: 12.3.6. The <server> Tag (HTML & XHTML: The Definitive Guide)
Shockwave, configuring for files: 26.7.4. Configuring the Server (Web Design in a Nutshell)
software for: 4.1.1. Popular Server Software (Web Design in a Nutshell)
streaming RealAudio from: 6.2. Streaming RealAudio from a web server (Designing Web Audio)
web sites
accessibility (see accessibility)
audiences of (see audiences)
browser-aware designing: 1.3. Design Strategies (Web Design in a Nutshell)
browsing (see navigation)
conforming search engine with: 6.3.3. Searching Should Conform to the Site's Look and Feel (Information Architecture for the World Wide Web)
content of (see information)
context: 4.2. Building Context (Information Architecture for the World Wide Web)
defining: 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
developing: 7. Research (Information Architecture for the World Wide Web)
blueprints: 8.4. High-Level Architecture Blueprints (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
conceptual design for: 8. Conceptual Design (Information Architecture for the World Wide Web)
content/function requirements: 7.4. Identifying Content and Function Requirements (Information Architecture for the World Wide Web)
defining goals: 7.2. Defining Goals (Information Architecture for the World Wide Web)
design sketches: 8.6. Design Sketches (Information Architecture for the World Wide Web)
grouping (chunking) content: 7.5. Grouping Content (Information Architecture for the World Wide Web)
9.1. Detailed Architecture Blueprints (Information Architecture for the World Wide Web)
9.2. Content Mapping (Information Architecture for the World Wide Web)
initial phase of: 7.1. Getting Started (Information Architecture for the World Wide Web)
learning about audiences: 7.3. Learning About the Intended Audiences (Information Architecture for the World Wide Web)
page mockups: 8.5. Architectural Page Mockups (Information Architecture for the World Wide Web)
scenarios: 8.3. Scenarios (Information Architecture for the World Wide Web)
site prototypes: 8.7. Web-Based Prototypes (Information Architecture for the World Wide Web)
style guides: 9.5. Architecture Style Guides (Information Architecture for the World Wide Web)
different versions of: 1.3.4. Something for Everyone (Web Design in a Nutshell)
display-aware designing: 2. Designing for a Variety of Displays (Web Design in a Nutshell)
documents for (see web pages)
growth of (see dynamic content)
heterogeneity of: 3.1.2. Heterogeneity (Information Architecture for the World Wide Web)
identifying content in existing sites: 7.4.1. Identifying Content in Existing Web Sites (Information Architecture for the World Wide Web)
indexing (see indexes)
layout (see graphic design and layout)
likes and dislikes: 1.2. If You Don't Like to Exercise... (Information Architecture for the World Wide Web)
critiquing sites: 7.1.2. Web Site Critiques (Information Architecture for the World Wide Web)
determining: 1.1. Consumer Sensitivity Boot Camp (Information Architecture for the World Wide Web)
labels and: 5.1.2. Making Bad Impressions (Information Architecture for the World Wide Web)
measuring site's success: 7.2.1. Measuring Success (Information Architecture for the World Wide Web)
navigating (see navigation)
operating: 9.6. Learning from Users (Information Architecture for the World Wide Web)
organizing (see organizing information)
page inventory of: 9.3. Web Page Inventory (Information Architecture for the World Wide Web)
preparing for dynamic content: 2.1. The Role of the Information Architect (Information Architecture for the World Wide Web)
producing: 2.1.2. The Producer's Perspective (Information Architecture for the World Wide Web)
9. Production and Operations (Information Architecture for the World Wide Web)
evaluating architecture during: 9.4. Point-of-Production Architecture (Information Architecture for the World Wide Web)
rating (kid appropriateness): 9.4.2.2. Other uses (Web Design in a Nutshell)
searching (see searching)
site maps: 4.6.3. The Site Map (Information Architecture for the World Wide Web)
site-wide navigation system: 4.4.2. Global Navigation Systems (Information Architecture for the World Wide Web)
sub-sites: 4.4.3. Local Navigation Systems (Information Architecture for the World Wide Web)
10.2.2. Sub-Site Record Pages (Information Architecture for the World Wide Web)
taking label text from: 5.4.1.1. The labels currently in place (Information Architecture for the World Wide Web)
testing: 1.5. Test, Test, Test! (Web Design in a Nutshell)
tracking usage of: 9.6.4. Usage Tracking (Information Architecture for the World Wide Web)
under construction: 1.2.1.6. Under construction (Information Architecture for the World Wide Web)
usability of (see usability of sites)
usability testing: 9.6. Learning from Users (Information Architecture for the World Wide Web)
using ActionScript: 0.3. Showcase (ActionScript: The Definitive Guide)
when to make searchable: 6.1.2. When To Make Your Site Searchable (Information Architecture for the World Wide Web)
web sound
benefits of: 1.2. What you can do with sound on the Web (Designing Web Audio)
design mistakes, avoiding: 1.7.1. Easy-to-use narration (Designing Web Audio)
designing: 1.7. Designing web audio (Designing Web Audio)
narration: 1.7.1. Easy-to-use narration (Designing Web Audio)
sound effects: 1.7.2. Using sound effects (Designing Web Audio)
interactive, design case study: 1.9. Interactive sound design case study (Designing Web Audio)
interactive sound effects and buttons: 1.8. Interactive sound effects and buttons (Designing Web Audio)
web sound studio: A. Creating the Ultimate Web Sound Studio: Buyers Guide and Web Resources (Designing Web Audio)
accessories: A.3. Sound studio accessories (Designing Web Audio)
audio plug-ins and utilities: A.3.5. Audio plug-ins and utilities (Designing Web Audio)
cables: A.3.2. High-quality cables (Designing Web Audio)
disk repair and optimization utilities: A.3.4. Disk repair and optimization utilities (Designing Web Audio)
headphones: A.3.1. Headphones (Designing Web Audio)
pop screens: A.3.6. Pop screens (Designing Web Audio)
sound libraries: A.3.3. Sound libraries (Designing Web Audio)
creating the ultimate: A.1. Creating the ultimate web sound studio (Designing Web Audio)
designing with proper acoustics: A.2. Designing a studio with proper acoustics (Designing Web Audio)
budget option: A.2. Designing a studio with proper acoustics (Designing Web Audio)
compressors: A.2.3. Compressor/limiters (Designing Web Audio)
digital audio tape (DAT) recorders: recorders (Designing Web Audio) A.2.11. DAT (digital audio tape)
digital audio workstations: A.2.4. Digital audio workstation/recording editing software (Designing Web Audio)
effects processors: A.2.10. Effects processors (Designing Web Audio)
microphone pre-amps: A.2.2. Mic pre-amps (Designing Web Audio)
microphones: A.2.1. Microphones (Designing Web Audio)
mixers: A.2.7. Mixers (Designing Web Audio)
pro option: A.2. Designing a studio with proper acoustics (Designing Web Audio)
sequencers: A.2.5. Sequencers: MIDI and digital audio recording and editing applications (Designing Web Audio)
studio reference monitors: A.2.9. Studio reference monitors (Designing Web Audio)
syntesizers and tone generators: A.2.6. Synthesizers and tone generators (Designing Web Audio)
shareware and freeware, web resources: A.4. Web resources (Designing Web Audio)
web soundtracks: 1.2. What you can do with sound on the Web (Designing Web Audio)
web standards: 1.6. The Importance of Standards (Web Design in a Nutshell)
8.1.3. The Web Standards Movement (Web Design in a Nutshell)
webcasting: 1.2. What you can do with sound on the Web (Designing Web Audio)
8.6.2.2. Complying with copyright laws (Designing Web Audio)
WebFont Wizard, creating Dynamic fonts: 3.2.4.1. TrueDoc Technology ("Dynamic Fonts") (Web Design in a Nutshell)
Webmasters, responsibilities of: 2.3. Collaboration and Communication (Information Architecture for the World Wide Web)
webs, private: 1.2.3. Beneath the World Wide Web (HTML & XHTML: The Definitive Guide)
WebSnap Adaptive Palette: 22.2. Converting to the Web Palette (Web Design in a Nutshell)
WebStar
FTP server software: 8.5.1. Creating your own MP3 site (Designing Web Audio)
HTTP server software: 8.5.1. Creating your own MP3 site (Designing Web Audio)
WebTV: 1.1.2.3. WebTV (Web Design in a Nutshell)
2.5.1. WebTV (Web Design in a Nutshell)
frames in: 14.7.8. Frames in WebTV (Web Design in a Nutshell)
monitor size and: 2.2.4.3. The conventional wisdom (Web Design in a Nutshell)
WEFT (Web Embedding Font Tool): 3.2.4.2. OpenType (for Internet Explorer) (Web Design in a Nutshell)
weight, font: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
8.4.3.7. The font-weight property (HTML & XHTML: The Definitive Guide)
weight sorting: 2.8. The Cascade (Cascading Style Sheets: The Definitive Guide)
weighted optimization function in Photoshop 6: 20.6.6. Weighted Optimization (Photoshop 6/ImageReady 3) (Web Design in a Nutshell)
Weinman, Lynda: 22.1.2.2. CLUT files for other graphics programs (Web Design in a Nutshell)
22.5. Where to Learn More (Web Design in a Nutshell)
well-formed documents, XHTML and: 3.4. Well-Formed Documents and XHTML (HTML & XHTML: The Definitive Guide)
well-formed XML documents: 15.2. Documents and DTDs (HTML & XHTML: The Definitive Guide)
16.3. HTML Versus XHTML (HTML & XHTML: The Definitive Guide)
wet sounds: 2.1.5. Reverberation and delay (Designing Web Audio)
Which Browser site: 1.2.1.3. General statistics listings (Web Design in a Nutshell)
while loop: 1.2.3.2. Repeating tasks using loops (ActionScript: The Definitive Guide)
6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
8.1. The while Loop (ActionScript: The Definitive Guide)
substatements in: 8.1. The while Loop (ActionScript: The Definitive Guide)
white boards for brainstorming: 8.1. Brainstorming with White Boards and Flip Charts (Information Architecture for the World Wide Web)
White Pine Software: 8.6. Start your own MP3 radio station (Designing Web Audio)
white-space property: 4.1.1.3. Handling whitespace (Cascading Style Sheets: The Definitive Guide)
8.4.8.2. The white-space property (HTML & XHTML: The Definitive Guide)
whitespace: 14.1. Creating Whitespace (HTML & XHTML: The Definitive Guide)
around graphics: 12.3.5.1. Adding space around aligned images (Web Design in a Nutshell)
between columns (gutters): 14.2.1.2. The gutter attribute (HTML & XHTML: The Definitive Guide)
between table cells: 13.4.5. Table Cell Spacing (Web Design in a Nutshell)
blocks of: 14.1.1. The <spacer> Tag (HTML & XHTML: The Definitive Guide)
blocks of ( tag): 12.1. Summary of Object Placement Tags (Web Design in a Nutshell)
in code: 14.1. Whitespace (ActionScript: The Definitive Guide)
encoding in URLs: 15.3.3. Encoding (Web Design in a Nutshell)
in filenames: 4.3. File Naming Conventions (Web Design in a Nutshell)
frames and: 11.3.1.2. Controlling frame borders and spacing (HTML & XHTML: The Definitive Guide)
graphics for: 12.2.1. Inline Graphic Uses (Web Design in a Nutshell)
->">
)"> (>): 10.2.1.2. Child selector (Cascading Style Sheets: The Definitive Guide)
handling: 4.1.1.3. Handling whitespace (Cascading Style Sheets: The Definitive Guide)
handling in block tags: 8.4.8.2. The white-space property (HTML & XHTML: The Definitive Guide)
hanging indents: 8.4.5.5. The text-indent property (HTML & XHTML: The Definitive Guide)
around horizontal rules: 5.1.1. The <hr> Tag (HTML & XHTML: The Definitive Guide)
HTML tags for: 4.7. Precise Spacing and Layout (HTML & XHTML: The Definitive Guide)
ignored in style sheets: 2.2.2. Grouping Declarations (Cascading Style Sheets: The Definitive Guide)
tag for: 14.1.2. Mimicking the <spacer> Tag (HTML & XHTML: The Definitive Guide)
indentation (see indentation)
indentation in lists: 17.5.4. Classification Properties (Web Design in a Nutshell)
letter spacing: 8.4.5.1. The letter-spacing property (HTML & XHTML: The Definitive Guide)
line breaks (see line breaks)
line height: 8.4.5.2. The line-height property (HTML & XHTML: The Definitive Guide)
margins
body content: 5.3.1.6. The leftmargin attribute (HTML & XHTML: The Definitive Guide)
images: 5.2.6.13. The hspace and vspace attributes (HTML & XHTML: The Definitive Guide)
marquee areas: 5.5.1.5. The hspace and vspace attributes (HTML & XHTML: The Definitive Guide)
tags: 4.7.2. The <nobr> Tag (HTML & XHTML: The Definitive Guide)
nonbreaking space: 13.5.5.1. Nonrendering text (Web Design in a Nutshell)
padding: 17.5.2. Box Properties (Web Design in a Nutshell)
17.8.5. Making Backgrounds Behave in Navigator 4.x (Web Design in a Nutshell)
paragraph indentation: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
paragraphs (see paragraphs)
readability and: 3.3.1. The Syntax of a Tag (HTML & XHTML: The Definitive Guide)
removing from XML documents: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
tag: 14.1.1. The <spacer> Tag (HTML & XHTML: The Definitive Guide)
around table cells: 10.2.1.6. The cellspacing attribute (HTML & XHTML: The Definitive Guide)
in tables, removing: 13.5.4. Unwanted White Space (Web Design in a Nutshell)
tabs in preformatted text: 4.7.5. The <pre> Tag (HTML & XHTML: The Definitive Guide)
text line/word/character spacing: 17.5.1. Type-Related Properties (Web Design in a Nutshell)
white-space property (CSS): 17.5.4. Classification Properties (Web Design in a Nutshell)
word spacing: 8.4.5.8. The word-spacing property (HTML & XHTML: The Definitive Guide)
widows property: 10.8.1. Paged Media (Cascading Style Sheets: The Definitive Guide)
width
block-level elements: 8.2.2. Horizontal Formatting (Cascading Style Sheets: The Definitive Guide)
borders: 7.4.2. Border Widths (Cascading Style Sheets: The Definitive Guide)
elements: 7.1. Basic Element Boxes (Cascading Style Sheets: The Definitive Guide)
floating text, declaring for: 7.6.1. Floated Elements (Cascading Style Sheets: The Definitive Guide)
limiting via min-max properties: 9.1.3.2. Limiting width and height (Cascading Style Sheets: The Definitive Guide)
positioning and: 9.1.3. Width and Height (Cascading Style Sheets: The Definitive Guide)
width attribute: 12.5.2. The <embed> Tag (Web Design in a Nutshell)
Appendix B. List of Attributes (Web Design in a Nutshell)
5.1.1.3. The width attribute (HTML & XHTML: The Definitive Guide)
5.2.6.10. The height and width attributes (HTML & XHTML: The Definitive Guide)
5.5.1.4. The height and width attributes (HTML & XHTML: The Definitive Guide)
10.2.1.11. The width and height attributes (HTML & XHTML: The Definitive Guide)
11.6.1.2. The height and width attributes (HTML & XHTML: The Definitive Guide)
12.2.3.7. The height, hspace, vspace, and width attributes (HTML & XHTML: The Definitive Guide)
12.2.4.1. The align, border, height, width, hspace, and vspace attributes (HTML & XHTML: The Definitive Guide)
14.1.1.3. Creating blocks of space (HTML & XHTML: The Definitive Guide)
14.2.1.3. The width attribute (HTML & XHTML: The Definitive Guide)
14.3.1.6. The width attribute (HTML & XHTML: The Definitive Guide)
and: 10.2.4.2. The width attribute (HTML & XHTML: The Definitive Guide)
and tags: 13.1. Summary of Table Tags (Web Design in a Nutshell)
13.4.4.2. Cell dimensions (Web Design in a Nutshell)
width of clips/movies
as percentage: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
in pixels: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
width property: 7.1. Basic Element Boxes (Cascading Style Sheets: The Definitive Guide)
9.1.3.1. Setting width and height (Cascading Style Sheets: The Definitive Guide)
8.4.6.12. The width property (HTML & XHTML: The Definitive Guide)
width property (CSS): 17.5.2. Box Properties (Web Design in a Nutshell)
17.8.3. Creating a Drop Cap (Web Design in a Nutshell)
_width property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Winamp: 8.3. Playing MP3 files (Designing Web Audio)
controls: 8.3.2. Basic MP3 player controls (Designing Web Audio)
Easter Eggs: 8.3.2. Basic MP3 player controls (Designing Web Audio)
graphic equalizer: 8.3.3. Using the equalizer (Designing Web Audio)
home page: 8.8. MP3 resources (Designing Web Audio)
Liquid Audio in: 8.8. MP3 resources (Designing Web Audio)
playlists: 8.3.1. Playlists (Designing Web Audio)
SHOUTcast: 8.6. Start your own MP3 radio station (Designing Web Audio)
8.6.1. Running your own station (Designing Web Audio)
skin files, creating for: 8.3.4. Skins (Designing Web Audio)
wind noise, avoiding: 3.2.2.3. Capturing ambient sounds (Designing Web Audio)
window, browser
centering object in (example): 13.7.2. Centering an Object in the Browser Window (Web Design in a Nutshell)
frames (see frames)
status bar text: 11.4.5. Changing Status Bar Text with JavaScript (Web Design in a Nutshell)
targeting with links: 11.5. Targeting Windows (Web Design in a Nutshell)
two-column layouts: 13.7.5. Two-Column Page Layouts (Web Design in a Nutshell)
window.open( ) JavaScript function: 28.2.1. Functions (Web Design in a Nutshell)
windows: 2.11. Frames (HTML & XHTML: The Definitive Guide)
11.2.1. What's in a Frame? (HTML & XHTML: The Definitive Guide)
(see also frames)
browsers (see browsers)
as hyperlink targets: 6.3.1.8. The target attribute (HTML & XHTML: The Definitive Guide)
6.7.1.2. The target attribute (HTML & XHTML: The Definitive Guide)
9.2.5. The target Attribute (HTML & XHTML: The Definitive Guide)
11.7. Named Frame or Window Targets (HTML & XHTML: The Definitive Guide)
image maps and: 6.5.4.8. The target attribute (HTML & XHTML: The Definitive Guide)
print designers, designing for: 3.1.1. Designing for the Unknown (Web Design in a Nutshell)
Windows audio tools: 24.3.2.1. Windows audio tools (Web Design in a Nutshell)
windows, launching from Flash: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Windows Media: 5.1. Streaming protocols (Designing Web Audio)
capabilities overview: B.3. Windows Media (Designing Web Audio)
stream narration: 1.7.1.2. Embedding narration in a web page (Designing Web Audio)
Technologies for NT/Windows 2000: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
ASF content, information on: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
Media Player: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
Media Services: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
RealMedia, comparison to: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
T.A.G. Author: 5.2.2. Windows Media Technologies (Netshow) (Designing Web Audio)
Windows Media files: 24.7.4. Adding Windows Media (Web Design in a Nutshell)
25.5.2.2. Windows Media (Web Design in a Nutshell)
Windows VGA colors: 3.1.1. Named Colors (Cascading Style Sheets: The Definitive Guide)
Windows virtual keycode: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Wireless Application Protocol (see WAP)
Wireless Markup Language (see WML)
wish lists, content: 7.4.2. Wish Lists and Content Inventory Forms (Information Architecture for the World Wide Web)
with statement: 6.3. The ActionScript Statements (ActionScript: The Definitive Guide)
6.3.9. The with Statement (ActionScript: The Definitive Guide)
WML (Wireless Markup Language): 32. WAP and WML (Web Design in a Nutshell)
document structure: 32.3. Introduction to WML (Web Design in a Nutshell)
element and attributes: 32.4. WML Elements and Attributes (Web Design in a Nutshell)
images: 32.3.4. Images (Web Design in a Nutshell)
interactivity: 32.3.7. Interactivity (Web Design in a Nutshell)
links: 32.3.3. Adding Links (Web Design in a Nutshell)
tables: 32.3.5. Tables (Web Design in a Nutshell)
text, formatting: 32.3.2. Formatting Text (Web Design in a Nutshell)
.wmv (Windows Media) files: 25.3.3. Windows Media (.wmv or .asf) (Web Design in a Nutshell)
word-break ( ) tag: 10.1.3. Spacing and Positioning (Web Design in a Nutshell)
10.7.2. Preventing Line Breaks (Web Design in a Nutshell)
Appendix A. HTML Elements (Web Design in a Nutshell)
word processors (see text editors)
word spacing: 4.1.4. Word Spacing and Letterspacing (Cascading Style Sheets: The Definitive Guide)
word-spacing property (CSS): 17.5.1. Type-Related Properties (Web Design in a Nutshell)
word wrap (see wrapping text)
Word Wrap option for text fields: 18.3.4. Word Wrap (ActionScript: The Definitive Guide)
World Wide Web Consortium (see W3C)
World Wide Web Consortium (W3C): 1.2. CSS to the Rescue (Cascading Style Sheets: The Definitive Guide)
1.2.4.1. The World Wide Web Consortium (HTML & XHTML: The Definitive Guide)
wrap attribute ( ): 15.1. Summary of Form Tags (Web Design in a Nutshell)
15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
9.7.1.2. The wrap attribute (HTML & XHTML: The Definitive Guide)
wrapper classes
Boolean: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Number: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
String: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
wrapping text: 5.2.6.4. The align attribute (HTML & XHTML: The Definitive Guide)
(see also line breaks)
around images: 4.7.1.1. The clear attribute (HTML & XHTML: The Definitive Guide)
5.2.6.5. Wrapping text around images (HTML & XHTML: The Definitive Guide)
graphics and: 12.3.5.2. Stopping text wrap (Web Design in a Nutshell)
and: 14.2.2. Multiple Columns and Other Browsers (HTML & XHTML: The Definitive Guide)
multiline text entry fields: 15.4.2. Text Area: <textarea> (Web Design in a Nutshell)
nowrap attribute ( ): 4.1.1.2. The nowrap attribute (HTML & XHTML: The Definitive Guide)
table cell contents: 10.2.1.10. The valign and nowrap attributes (HTML & XHTML: The Definitive Guide)
10.2.3.5. The nowrap attribute (HTML & XHTML: The Definitive Guide)
10.2.4.7. The nowrap attribute (HTML & XHTML: The Definitive Guide)
in entry areas: 9.7.1.2. The wrap attribute (HTML & XHTML: The Definitive Guide)
Wright, Matt: 15.7. Demystifying CGI (Web Design in a Nutshell)
15.7.2. Using Available Scripts (Web Design in a Nutshell)
writing HTML documents
applets: 12.1.1.3. Using applets correctly (HTML & XHTML: The Definitive Guide)
dynamic documents: 13.1.1. Another Word of Caution (HTML & XHTML: The Definitive Guide)
editorial markup: 3.9. Editorial Markup (HTML & XHTML: The Definitive Guide)
forms, advice on using: 9.2.4.1. POST or GET? (HTML & XHTML: The Definitive Guide)
forms, how to use: 9.11. Creating Effective Forms (HTML & XHTML: The Definitive Guide)
17.4.3. Better Forms Layout (HTML & XHTML: The Definitive Guide)
programming: 9.12. Forms Programming (HTML & XHTML: The Definitive Guide)
hyperlinking effectively: 6.4. Creating Effective Links (HTML & XHTML: The Definitive Guide)
image maps and: 6.5.7. Effective Use of Mouse-Sensitive Images (HTML & XHTML: The Definitive Guide)
important sites for: 1.7.2. An Extended Toolkit (HTML & XHTML: The Definitive Guide)
lists, how to use: 7.6. Appropriate List Usage (HTML & XHTML: The Definitive Guide)
8.4.7. List Properties (HTML & XHTML: The Definitive Guide)
server-push documents: 13.3.4. Creating a Server-Push Document (HTML & XHTML: The Definitive Guide)
software for: 1.7. Tools for the Web Designer (HTML & XHTML: The Definitive Guide)
2.1. Writing Tools (HTML & XHTML: The Definitive Guide)
styles, how to use: 8.6. Applying Styles to Documents (HTML & XHTML: The Definitive Guide)
tables: 17.4. Tricks with Tables (HTML & XHTML: The Definitive Guide)
page layout with: 10.4. Beyond Ordinary Tables (HTML & XHTML: The Definitive Guide)
table sections: 10.3.5. Using Table Sections (HTML & XHTML: The Definitive Guide)
tips and tricks: 17. Tips, Tricks, and Hacks (HTML & XHTML: The Definitive Guide)
titles, choosing: 3.7.2.1. What's in a title? (HTML & XHTML: The Definitive Guide)
user interface design: 9.11.3. User Interface Considerations (HTML & XHTML: The Definitive Guide)
WS_FTP utility: 4.4. Uploading Documents (FTP) (Web Design in a Nutshell)
WWW (see Web)
WYSIWYG (What You See Is What You Get) tools: 8.6. HTML Tools (Web Design in a Nutshell)
designing with Web Palettes: 3.3.3.1. Web authoring tools (Web Design in a Nutshell)
editors for DHTML: 29.7.1. Advantages (Web Design in a Nutshell)
generating standard code: 1.6. The Importance of Standards (Web Design in a Nutshell)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: X

x-height: 3.2.2.1. em and ex units (Cascading Style Sheets: The Definitive Guide)
_x property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
xch (exchange) instances: 16.8.2. Building a Smart Clip with a Customized Interface (ActionScript: The Definitive Guide)
&quot; (double quote) character entity for XML: 30.3.1. Well-Formed XML (Web Design in a Nutshell)
&apos; (single quote) character entity for XML: 30.3.1. Well-Formed XML (Web Design in a Nutshell)
xDSL: 5.1.1. Lossy compression (Designing Web Audio)
9.1. Flash and Shockwave basics (Designing Web Audio)
XHTML: 1.4. XHTML: What It Is (HTML & XHTML: The Definitive Guide)
16. XHTML (HTML & XHTML: The Definitive Guide)
case sensitivity in style rule elements: 8.2.1. The Basics (HTML & XHTML: The Definitive Guide)
character entities: 31.4.7. Character Entities (Web Design in a Nutshell)
deciding to use: 16.4. Should You Use XHTML? (HTML & XHTML: The Definitive Guide)
document declarations: 31.3. XHTML Document Declarations (Web Design in a Nutshell)
documents, creating: 31.2. Creating XHTML 1.0 Documents (Web Design in a Nutshell)
documents in (see XHTML documents)
DTDs: 16.1.1. XHTML Document Type Definitions (HTML & XHTML: The Definitive Guide)
empty elements and: 31.4.4. Empty Elements (Web Design in a Nutshell)
HTML vs.: 16.3. HTML Versus XHTML (HTML & XHTML: The Definitive Guide)
standards development: 31.1. XHTML Standards Development (Web Design in a Nutshell)
tools: 31.2.1. Tools (Web Design in a Nutshell)
well-formed documents and: 3.4. Well-Formed Documents and XHTML (HTML & XHTML: The Definitive Guide)
XML, using to define: 15.8.4. Standardizing HTML (HTML & XHTML: The Definitive Guide)
XHTML documents
content, types of: 2.5. The Flesh on an HTML or XHTML Document (HTML & XHTML: The Definitive Guide)
content vs. appearance: 1.5. HTML and XHTML: What They Aren't (HTML & XHTML: The Definitive Guide)
creating: 16.2. Creating XHTML Documents (HTML & XHTML: The Definitive Guide)
DTDs, declaring: 16.2.1. Declaring Document Types (HTML & XHTML: The Definitive Guide)
example document: 16.2.3. A Minimal XHTML Document (HTML & XHTML: The Definitive Guide)
ending tags in: 3.3.5. Tags Without Ends (HTML & XHTML: The Definitive Guide)
nesting elements in: 16.3.1. Correctly Nested Elements (HTML & XHTML: The Definitive Guide)
Xing Technologies: 8.7.1. Is MP3 legal? (Designing Web Audio)
web site: 8.8. MP3 resources (Designing Web Audio)
XLR connectors: 3.1.1.6. Frequency response (Designing Web Audio)
3.1.6. DAT recorders (Designing Web Audio)
3.2.2.1. Live concerts and events (Designing Web Audio)
XML class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
attaching event handlers to: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
event handler scope: 10.7.3. Other Object Event Handler Scope (ActionScript: The Definitive Guide)
event handlers: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
internal superclass of: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
methods: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
object hierarchy: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
properties: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML documents
building: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
converting to XML source code: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
creating
element nodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
text nodes: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
deleting nodes from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
DOCTYPE tag: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
importing external: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
removing whitespace from: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
traversing object hierarchy: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML declaration tag: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML (Extensible Markup Language): 1.2.6. Preparing for the Future (Cascading Style Sheets: The Definitive Guide)
30. Introduction to XML (Web Design in a Nutshell)
1.4. XHTML: What It Is (HTML & XHTML: The Definitive Guide)
15. XML (HTML & XHTML: The Definitive Guide)
ActionScript and: 26.2.1. ActionScript (Web Design in a Nutshell)
display property and: 2.9.1. Why Does the display Property Exist? (Cascading Style Sheets: The Definitive Guide)
DTDs: 15.2. Documents and DTDs (HTML & XHTML: The Definitive Guide)
as markup metalanguage: 15.1. Languages and Metalanguages (HTML & XHTML: The Definitive Guide)
namespaces: 30.3.2. Namespaces (Web Design in a Nutshell)
selectors in: 2.1.2. Simple Selectors (Cascading Style Sheets: The Definitive Guide)
special processing directives: 16.2.1. Declaring Document Types (HTML & XHTML: The Definitive Guide)
style sheets and: 30.2.2. Style Sheets and XML (Web Design in a Nutshell)
syntax for: 30.3. XML Document Syntax (Web Design in a Nutshell)
uses for: 15.8. Using XML (HTML & XHTML: The Definitive Guide)
connecting systems: 15.8.3. Connecting Systems (HTML & XHTML: The Definitive Guide)
document exchange: 15.8.2. Document Exchange (HTML & XHTML: The Definitive Guide)
HTML, standardizing with: 15.8.4. Standardizing HTML (HTML & XHTML: The Definitive Guide)
WAP Binary: 32.1.2. How WAP Works (Web Design in a Nutshell)
XML object hierarchy (see object hierarchy)
XML source code
converting XML node objects to: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
importing from external documents: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
parsing: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
errors encountered when: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
sending to a script: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
and receiving returned XML source code: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.appendChild( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.attributes property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.childNodes property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.cloneNode( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.contentType property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.createElement( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.createTextNode( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
xmlDecl property (XML class): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.docTypeDecl property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.firstChild property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.hasChildNodes( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.ignoreWhite property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.insertBefore( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.lastChild property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.load( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.loaded property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.status property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.nextSibling property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLnode class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.nodeName property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.nodeType property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.nodeValue property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
xmlns attribute, defining namespaces with: 16.2.2. Understanding Namespaces (HTML & XHTML: The Definitive Guide)
XML.onData( ) event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.onLoad( ) event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.parentNode property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.parseXML( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.previousSibling property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.removeNode( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.send( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transmitting form-based data to web servers: 17.1.2. Transmitting Data for Server-Side Processing (ActionScript: The Definitive Guide)
XML.sendAndLoad( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
transmitting form-based data to web servers: 17.1.2. Transmitting Data for Server-Side Processing (ActionScript: The Definitive Guide)
XML.loaded property and: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket class: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
attaching event handlers to: 10.6.2. Attaching Event Handlers to Other Objects (ActionScript: The Definitive Guide)
10.16. Dynamic Movie Clip Event Handlers (ActionScript: The Definitive Guide)
chat client, creating: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
scope of event handlers: 10.7.3. Other Object Event Handler Scope (ActionScript: The Definitive Guide)
XMLSocket.close( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.connect( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.onClose event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.onConnect event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.onData event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.onXML event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XMLSocket.send( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.status property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.toString( ): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XML.xmlDecl property: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_xmouse property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
<xmp> tags: 4.7.8. The <xmp> Tag (Obsolete) (HTML & XHTML: The Definitive Guide)
_xscale property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
XSL (Extensible Style Language): 30.6. Where to Learn More (Web Design in a Nutshell)
XSSI (Extended Server Side Includes): 18.5. XSSI (Web Design in a Nutshell)
_y property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: Y

Yamakawa AVPhile 715 player: 8.4.3.1. Selecting tracks (Designing Web Audio)
years
assigning: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
relative to 1900: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
retrieving: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
relative to 1900: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
UTC time: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
Yepp Player: 8.8. MP3 resources (Designing Web Audio)
_ymouse property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
_yscale property (MovieClip class): 13.7. Built-in Movie Clip Properties (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Index: Z

z-axis: 9.5. Stacking Positioned Elements (Cascading Style Sheets: The Definitive Guide)
z-index property (CSS): 17.6.2. Z-Order (Web Design in a Nutshell)
z-index attribute ( ): 14.3.1.3. The above, below, and z-index attributes (HTML & XHTML: The Definitive Guide)
z-index property: 9.5. Stacking Positioned Elements (Cascading Style Sheets: The Definitive Guide)
z-order: 17.6.2. Z-Order (Web Design in a Nutshell)
zero byte: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
automatic execution of
callback handler (onXML property): 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
onData( ) event handler: 20.5. Alphabetical Language Reference (ActionScript: The Definitive Guide)
zero-width [non-]joiner characters: 7.2.3. Cursive Joining Behavior (Web Design in a Nutshell)
zip compression: 8.2. What is MP3? (Designing Web Audio)
zoom-in command, sound editing: 4.1.3.1. Deleting a spike (Designing Web Audio)
&zwnj; and &zwj; mnemonics: 7.2.3. Cursive Joining Behavior (Web Design in a Nutshell)

Symbols | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z