1. Trang chủ
  2. » Công Nghệ Thông Tin

Learning Web Design Third Edition- P22 ppsx

10 280 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 288,72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

For example, if you want all text elements to be rendered in the Verdana font face, you could write separate style rules for every element in the document and set the font-face to Verdan

Trang 1

p {font-size: small; font-family: sans-serif;}

html

Figure 11-7. Certain properties applied to the p element are inherited by their children.

Notice that I’ve been saying “certain” properties are inherited It’s important

to note that some style sheet properties inherit and others do not In gen-eral, properties related to the styling of text—font size, color, style, etc.—are passed down Properties such as borders, margins, backgrounds, and so on that affect the boxed area around the element tend not to be passed down This makes sense when you think about it For example, if you put a border around a paragraph, you wouldn’t want a border around every inline element (such as em, strong, or a) it contains as well

You can use inheritance to your advantage when writing style sheets For example, if you want all text elements to be rendered in the Verdana font face, you could write separate style rules for every element in the document and set the font-face to Verdana A better way would be to write a single style rule

that applies the font-face property to the body element, and let all the text elements contained in the body inherit that style (Figure 11-8)

p {font-size: small; font-family: sans-serif;}

html

If you apply a font-related property to the body element, it will be passed down to all the text elements

in the document (note that font properties do not apply

to the img element, so it is excluded).

Figure 11-8. All the elements in the document inherit certain properties applied to the

body element.

Trang 2

The Big Concepts

Any property applied to a specific element will override the inherited values

for that property Going back to the article example, we could specify that

the em element should appear in a serif font, and that would override the

inherited sans-serif setting

Conflicting styles: the cascade

Ever wonder why they are called “cascading” style sheets? CSS allows you

to apply several style sheets to the same document, which means there

are bound to be conflicts For example, what should the browser do if a

document’s imported style sheet says that h1 elements should be red, but its

embedded style sheet has a rule that makes h1s purple?

The folks who wrote the style sheet specification anticipated this problem

and devised a hierarchical system that assigns different weights to the

vari-ous sources of style information The cascade refers to what happens when

several sources of style information vie for control of the elements on a page:

style information is passed down until it is overridden by a style command

with more weight

For example, if you don’t apply any style information to a web page, it will be

rendered according to the browser’s internal style sheet (we’ve been calling

this the default rendering) However, if the web page’s author provides a style

sheet for the document, that has more weight and overrides the browser’s

styles Individual users can apply their own styles to documents as well, as

discussed in the Reader Style Sheets sidebar

As we’ve learned, there are three ways to attach style information to the source

document, and they have a cascading order as well Generally speaking, the

closer the style sheet is to the content, the more weight it is given Embedded

style sheets that appear right in the document in the style element have

more weight than external style sheets In the example that started this

sec-tion, the h1 elements would end up purple as specified in the embedded style

sheet, not red as specified in the external .css file that has less weight Inline

styles have more weight than embedded style sheets because you can’t get any

closer to the content than a style right in the element’s opening tag

To prevent a specific rule from being overridden, you can assign it

“importance” with the !important indicator, as explained in the Assigning

Importance sidebar

The sidebar, Style Sheet Hierarchy, provides an overview of the cascading

order from general to specific

Specificity

Reader Style Sheets

It is possible for users to write their own style sheets and apply them

to the pages they see with their browser The CSS Recommendation refers to these as reader style sheets

(in practice, it is more common to use the term user style sheets ).

Normally, style rules provided by

an author style sheet (external, embedded, or inline) override the reader’s style sheet However, if the user marks a style as “important,” it will trump all other styles provided

by the author and the browser (see the Assigning Importance sidebar).

So, for example, a user with impaired vision could write a style rule that makes all web text appear in extra large black text on a white background and be guaranteed to see it that way That’s precisely the W3C’s intent in allowing reader style sheets and giving them the power

to override all other styles.

Reader Style Sheets

It is possible for users to write their own style sheets and apply them

to the pages they see with their browser The CSS Recommendation refers to these as reader style sheets

(in practice, it is more common to use the term user style sheets ).

Normally, style rules provided by

an author style sheet (external, embedded, or inline) override the reader’s style sheet However, if the user marks a style as “important,” it will trump all other styles provided

by the author and the browser (see the Assigning Importance sidebar).

So, for example, a user with impaired vision could write a style rule that makes all web text appear in extra large black text on a white background and be guaranteed to see it that way That’s precisely the W3C’s intent in allowing reader style sheets and giving them the power

to override all other styles.

Trang 3

more specific the selector, the more weight it is given to override conflicting declarations

It’s a little soon to be discussing specificity because we’ve only looked at one type of selector (and the least specific type, at that) For now, put the term specificity and the concept of some selectors overriding others on your radar

We will revisit it in Chapter 12 when you have more selector types under your belt

Rule order

Finally, if there are conflicts within style rules of identical weight, whichever one comes last in the list “wins.” Take these three rules, for example:

<style type="text/css">

p { color: red; }

p { color: blue; }

p { color: green; }

</style>

In this scenario, paragraph text will be green because the last rule in the style sheet, that is, the one closest to the content in the document, overrides the earlier ones

Style Sheet

Hierarchy

Style information can come from

various sources, listed here from

general to specific Items lower in

the list will override items above

them:

Browser default settings

User style settings (set in a

browser as a “reader style sheet”)

Linked external style sheet

(added with the link element)

Imported style sheets

(added with the @import

function)

Embedded style sheets

(added with the style element)

Inline style information

(added with the style attribute

in an opening tag)

Any style rule marked !important

by the author

Any style rule marked !important

by the reader (user)

Style Sheet

Hierarchy

Style information can come from

various sources, listed here from

general to specific Items lower in

the list will override items above

them:

Browser default settings

User style settings (set in a

browser as a “reader style sheet”)

Linked external style sheet

(added with the link element)

Imported style sheets

(added with the @import

function)

Embedded style sheets

(added with the style element)

Inline style information

(added with the style attribute

in an opening tag)

Any style rule marked !important

by the author

Any style rule marked !important

by the reader (user)

Assigning Importance

If you want a rule not to be overridden by a subsequent conflicting rule, include the

!important indicator just after the property value and before the semicolon for that rule For example, to make paragraph text blue always, use the following rule:

p {color: blue !important;}

Even if the browser encounters an inline style later in the document (which should override a document-wide style sheet), like this one:

<p style="color: red">

that paragraph will still be blue, because the rule with the !important indicator cannot be overridden by other styles in the author’s style sheet

The only way an !important rule may be overridden is by a conflicting rule in a reader (user) style sheet that has also been marked !important This is to ensure that special reader requirements, such as large type for the visually impaired, are never overridden

Based on the previous examples, if the reader’s style sheet includes this rule:

p {color: black;}

the text would still be blue, because all author styles (even those not marked

!important) take precedence over the reader’s styles However, if the conflicting reader’s style is marked !important, like this:

p {color: black !important;}

the paragraphs will be black and cannot be overridden by any author-provided style

Trang 4

The Big Concepts

Note

This “last-one-listed wins” rule applies in other contexts in CSS as well For example,

later declarations in a declaration block can override earlier declarations In addition,

external style sheets listed later in the source will be given precedence over those listed

above them (even style sheets embedded with the style element).

The box model

As long as we’re talking about “big CSS concepts,” it is only appropriate

to introduce the cornerstone of the CSS visual formatting system: the box

model The easiest way to think of the box model is that browsers see every

element on the page (both block and inline) as being contained in a little

rectangular box You can apply properties such as borders, margins, padding,

and backgrounds to these boxes, and even reposition them on the page

We’re going to go into a lot more detail about the box model in Chapter 14,

but having a general feel for the box model will benefit you even as we discuss

text and backgrounds in the following two chapters

To see the elements roughly the way the browser sees them, I’ve written style

rules that add borders around every content element in our sample article

h1 { border: 1px solid blue; }

h2 { border: 1px solid blue; }

p { border: 1px solid blue; }

em { border: 1px solid blue; }

img { border: 1px solid blue; }

Figure 11-9 shows the results The borders reveal the shape of each block

ele-ment box There are boxes around the inline eleele-ments (em and img), as well

Notice that the block element boxes expand to fill the available width of the

browser window, which is the nature of block elements in the normal

docu-ment flow Inline boxes encompass just the characters or image they contain

Trang 5

Grouped Selectors

Hey! This is a good opportunity to show you a handy style rule shortcut If

you ever need to apply the same style property to a number of elements, you can group the selectors into one rule by separating them with commas This one rule has the same effect as the five rules listed previously Grouping them makes future edits more efficient and results in a smaller file size

h1, h2, p, em, img { border: 1px solid blue; }

Now you’ve got two selector types in your toolbox: a simple element selector, and grouped selectors

Moving Forward with CSS

This chapter covered all the fundamentals of Cascading Style Sheets, includ-ing rule syntax, ways to apply styles to a document, and the central concepts

of inheritance, the cascade, and the box model Style sheets should no longer

be a mystery, and from this point on, we’ll merely be building on this founda-tion by adding properties and selectors to your arsenal as well as expanding

on the concepts introduced here

CSS is a vast topic, well beyond the scope of this book The bookstores and Web are loaded with information about style sheets for all skill levels I’ve compiled a list of the resources I’ve found the most useful during my learning process I’ve also provided a list of popular tools that assist in writing style sheets in the CSS Tools sidebar

Books

There is no shortage of good books on CSS out there, but these are the ones that taught me, and I feel good recommending them

Cascading Style Sheets: The Definitive Guide, Second Edition, by Eric Meyer

(O’Reilly)

Web Standards Solutions: The Markup and Style Handbook, by Dan Cederholm

(Friends of Ed)

The Zen of CSS Design: Visual Enlightenment for the Web, by Dave Shea and

Molly E Holzschlag (New Riders)

Eric Meyer on CSS: Mastering the Language of Web Design, by Eric Meyer

(New Riders)

Online Resources

The sites on the following page are good starting points for online explora-tion of style sheets

Pop Quiz

Can you guess why I didn’t just add

the border property to the body

element and let it inherit to all the

elements in the grouped selector?

Answer:

Because

border

is one of those inherited is not ties that proper , as . earlier noted

Pop Quiz

Can you guess why I didn’t just add

the border property to the body

element and let it inherit to all the

elements in the grouped selector?

Answer:

Because

border

is one of those inherited is not ties that proper , as . earlier noted

Trang 6

Moving Forward with CSS

World Wide Web Consortium (www.w3.org/Style/CSS )

The World Wide Web Consortium oversees the development of web

tech-nologies, including CSS

A List Apart ( www.alistapart.com )

This online magazine features some of the best thinking and writing

on cutting-edge, standards-based web design It was founded in 1998 by

Jeffrey Zeldman and Brian Platz

css-discuss (www.css-discuss.org )

This is a mailing list and related site devoted to talking about CSS and

how to use it

Inspirational CSS showcase sites

If you are looking for excellent examples of what can be done with CSS, check

out these sites

CSS Zen Garden (www.cssgarden.com )

This is a showcase site for what can be done with CSS, a single XHTML

file, and the creative ideas of hundreds of designers Its creator and keeper

is standards expert Dave Shea See the companion book listed above

CSS Beauty (www.cssbeauty.com )

A showcase of excellent sites designed in CSS

Informative personal sites

Some of the best CSS resources are the blogs and personal sites of individuals

with a passion for CSS-based design These are only a few, but they provide a

good entry point into the online standards community

Stopdesign (www.stopdesign.com )

Douglas Bowman, CSS and graphic design guru, publishes articles and

trend-setting tutorials

Mezzoblue (www.mezzoblue.com )

This is the personal site of Dave Shea, creator of the CSS Zen Garden

Meyerweb (www.meyerweb.com )

This is the personal site of the king of CSS, Eric Meyer

Molly.com (www.molly.com )

This is the blog of prolific author and web-standards activist Molly E

Holzschlag

Simplebits (www.simplebits.com )

CSS Tools

The W3C maintains a list of current CSS authoring tools on the CSS home page at www.w3.org/Style/

CSS/#editors Here are a couple that I can personally recommend

Web Developer Extension

Web developers are raving about the Web Developer extension for Firefox and Mozilla browsers, written

by Chris Pederick The extension adds a toolbar to the browser with tools that enable you to analyze and manipulate any page in the window You can edit the style sheet for the page you are viewing as well as get information about the (X)HTML and graphics It also validates the CSS, (X)HTML, and accessibility of the page Get it at chrispederick.com/

work/firefox/webdeveloper or from the Addons page at mozilla.org.

Web Authoring Programs

Current WYSIWYG authoring programs such as Adobe Dreamweaver and Microsoft Expression Web can be configured

to write a style sheet for you automatically as you design the page The downside is that they are not always written in the most efficient manner (for example, they tend to overuse the class attribute

to create style rules) Still, they may give you a good head start on the style sheet that you can then edit manually.

CSS Tools

The W3C maintains a list of current CSS authoring tools on the CSS home page at www.w3.org/Style/

CSS/#editors Here are a couple that I can personally recommend

Web Developer Extension

Web developers are raving about the Web Developer extension for Firefox and Mozilla browsers, written

by Chris Pederick The extension adds a toolbar to the browser with tools that enable you to analyze and manipulate any page in the window You can edit the style sheet for the page you are viewing as well as get information about the (X)HTML and graphics It also validates the CSS, (X)HTML, and accessibility of the page Get it at chrispederick.com/

work/firefox/webdeveloper or from the Addons page at mozilla.org.

Web Authoring Programs

Current WYSIWYG authoring programs such as Adobe Dreamweaver and Microsoft Expression Web can be configured

to write a style sheet for you automatically as you design the page The downside is that they are not always written in the most efficient manner (for example, they tend to overuse the class attribute

to create style rules) Still, they may give you a good head start on the style sheet that you can then edit manually.

Trang 7

Test Yourself

Here are a few questions to test your knowledge of the CSS basics Answers are provided in Appendix A

Identify the various parts of this style rule:

blockquote { line-height: 1.5; }

selector: _ value: property: declaration: What color will paragraphs be when this embedded style sheet is applied

to a document? Why?

<style type="text/css">

p { color: purple; }

p { color: green; }

p { color: gray; }

</style>

Rewrite each of these CSS examples Some of them are completely incor-rect and some could just be written more efficiently

p {font-face: sans-serif;}

p {font-size: 1em;}

p {line-height: 1.2em;}

blockquote { font-size: 1em line-height: 150%

color: gray } body

{background-color: black;}

{color: #666;}

{margin-left: 12em;}

{margin-right: 12em;}

p {color: white;}

blockquote {color: white;}

li {color: white;}

<strong style="red">Act now!</strong>

1

2

3

a.

b.

c.

d.

e.

html

img

h2 h2 p

strong li li li

ul div id= intro div id= main

Figure 11-10. The document structure of a sample document.

Circle all the elements in the diagram that you would expect to appear in red when the following style rule is applied to an XHTML document with the structure diagrammed in Figure 11-10 This rule uses a type of selec-tor you haven’t seen yet, but common sense should serve you well

div#intro { color: red; }

4

Trang 8

IN THIS CHAPTER

The font-related properties

Text color Text line settings such

as line height, indents,

and alignment Underlines and overlines

Capitalization Letter and word spacing Descendant (contextual),

ID, and class selectors

Specificity 101

Now that you’ve gotten your feet wet formatting text, are you ready to jump

into the deep end? By the end of this chapter, you’ll pick up fourteen new CSS

properties used to manipulate the appearance of text Along the way, you’ll

also learn how to use more powerful selectors for targeting elements in a

particular context, and with a specific id or class name

Throughout this chapter, we’ll be sprucing up the Black Goose Bistro online

menu that we marked up back in Chapter 5, Marking Up Text I encourage

you to work along with the exercises to get a feel for how the properties

work Figure 12-1 shows how the menu looked the last time we saw it and

how it will look when we’re done It’s not a masterpiece, but it is certainly an

improvement

Before

After

Figure 12-1. Before and after views of the Black Goose Bistro menu that we’ll be working

FORMATTING

TEXT

(Plus More Selectors)

Trang 9

The Font Properties

When I design a text document (especially for print, but also for the Web), one of the first things I do is specify the font In CSS, fonts are specified using

a little bundle of font-related properties for typeface, size, weight, and font style There is also a shortcut property that lets you specify all of the font attributes in one fell swoop

The nature of the Web makes specifying type tricky, if not downright frustrating, particularly if you have experience designing for print (or even formatting text in a word processing program) Because you have no way of knowing which fonts are loaded on users’ machines, you can’t be sure that everyone will see text in the font you’ve chosen And because the default font size varies by browser and user preferences, you can’t be sure how large or small the type will appear, as well We’ll address the best practices for dealing with these font challenges as we go along

Specifying the font name

Choosing a typeface, or font family as it is called in CSS, is a good place to start Let’s begin with the easy part: using the property font-family and its values

font-family

Values: one or more font or generic font family names, separated by commas | inherit

Default: depends on the browser

Applies to: all elements

Inherits: yes

Use the font-family property to specify a font or list of fonts by name as shown in these examples

body { font-family: Arial; }

tt { font-family: Courier, monospace; }

p { font-family: "Trebuchet MS", Verdana, sans-serif; }

All font names, with the exception of generic font families, must be capital-ized For example, use “Arial” instead of “arial” Notice that font names that contain a character space (such as Trebuchet MS in the third example) must appear within quotation marks Use commas to separate multiple font names

as shown in the second and third examples You might be asking, “Why specify more than one font?” That’s a good question, and it brings us to one

of the challenges of specifying fonts for web pages

Font limitations

Browsers are limited to displaying fonts that are already installed on the user’s machine So, although you may want the text to appear in Futura, if Futura

is not installed on the user’s computer, the browser’s default font will be used instead

The font-related properties:

font-family

font-size

font-weight

font-style

font-variant

font

A t A G l A n c e

The font-related properties:

font-family

font-size

font-weight

font-style

font-variant

font

A t A G l A n c e

A Word About

Property Listings

Each new property listing in this

book is accompanied by information

on how it behaves and how to use it

Here is a quick explanation of each

part of property listings.

Values

These are the accepted values

for the property according to the

CSS2.1 specification Predefined

values appear in code font

(for example, small, italic, or

small-caps) and must be typed

in exactly as shown.

Default

This is the value that will be used

for the property by default, that is,

if no other value is specified Note

that the browser uses a style sheet

with values that may vary from

the defaults defined in CSS.

Applies to

Some properties apply only to

certain types of elements, such as

block or table elements.

Inherits

This indicates whether the

property will be passed down

to the selected element’s

descendants See Chapter

11, Cascading Style Sheets

Orientation for an explanation of

inheritance.

A Word About

Property Listings

Each new property listing in this

book is accompanied by information

on how it behaves and how to use it

Here is a quick explanation of each

part of property listings.

Values

These are the accepted values

for the property according to the

CSS2.1 specification Predefined

values appear in code font

(for example, small, italic, or

small-caps) and must be typed

in exactly as shown.

Default

This is the value that will be used

for the property by default, that is,

if no other value is specified Note

that the browser uses a style sheet

with values that may vary from

the defaults defined in CSS.

Applies to

Some properties apply only to

certain types of elements, such as

block or table elements.

Inherits

This indicates whether the

property will be passed down

to the selected element’s

descendants See Chapter

11, Cascading Style Sheets

Orientation for an explanation of

inheritance.

Trang 10

The Font Properties

Fortunately, CSS allows you to provide a list of back-up fonts should your

first choice not be available In the third example above, if the browser does

not find Trebuchet MS, it will use Verdana, and if Verdana is not available, it

will substitute some other sans-serif font

Generic font families

That last option, “some other sans-serif font,” bears more discussion

“Sans-serif” is just one of five generic font families that you can specify with the

font-family property When you specify a generic font family, the browser

chooses an available font from that stylistic category Figure 12-2 shows

examples from each family Generic font family names do not need to be

capitalized

serif

Examples: Times, Times New Roman, Georgia

Serif typefaces have decorative serifs, or slab-like appendages, on the ends

of certain letter strokes

sans-serif

Examples: Arial, Arial Black, Verdana, Trebuchet MS, Helvetica, Geneva

Sans-serif typefaces have straight letter strokes that do not end in serifs

They are generally considered easier to read on computer monitors

monospace

Examples: Courier, Courier New, and Andale Mono

In monospace (also called constant width) typefaces, all characters take

up the same amount of space on a line For example, a capital W will be

no wider than a lowercase i Compare this to proportional typefaces (such

as the one you’re reading now) that allot different widths to different

char-acters

cursive

Examples: Apple Chancery, Zapf-Chancery, and Comic Sans

Cursive fonts emulate a script or handwritten appearance These are

rarely specified for professional web pages

fantasy

Examples: Impact, Western, or other decorative font

Fantasy fonts are purely decorative and would be appropriate for

head-lines and other display type Fantasy fonts are rarely used for web text due

to cross-platform availability and legibility

All of the font properties are related to the shapes

of characters.

All of the font properties are related to the shapes

of characters.

Ngày đăng: 03/07/2014, 14:20

TỪ KHÓA LIÊN QUAN