CSS: Cascading Style Sheets

Post on 11-Jan-2016

65 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

CSS: Cascading Style Sheets. What are Style Sheets. A style sheet is a mechanism that allows to specify how HTML (/ XHTML / XML ) pages should look The style is specified by style rules The style rules appear either in the document or in external files, called style sheets. Style Sheets. - PowerPoint PPT Presentation

Transcript

CSS: Cascading Style CSS: Cascading Style SheetsSheets

What are Style SheetsWhat are Style Sheets

• A style sheet is a mechanism that allows to

specify how HTML (/XHTML/XML) pages

should look

• The style is specified by style rules

• The style rules appear either in the document or

in external files, called style sheets

Style SheetsStyle Sheets

• Usually, a file that ends with .css

• For example:

- i.a.cnn.net/cnn/.element/ssi/css/1.1/main.css (CNN)

- http://www.huji.ac.il/styles/style.css (HUJI)

• To attach a style sheet to an HTML file, add <link rel="stylesheet" type="text/css" href="css-file"/>

to the head

Without a style sheet

Simple ExampleSimple Example

<html>

<head><title>A Joke</title></head>

<body>

<div><img src="tomato.gif" alt="joke"/></div>

<h1>A joke</h1>

<p>A mama tomato, a papa tomato and a baby tomato are walking

down the street. The baby tomato keeps falling behind so the papa

tomato goes back, steps on the baby tomato and says, ketchup

("Catch-up!"). </p>

</body>

</html>

Style File: Style File: joke.cssjoke.css

body {

background-image: url("bg.gif"); }

h1 {

background-color: green;

color: rgb(250, 200, 250); /* pink */

font-family: cursive }

p {

background-color: yellow;

color: purple;

font-size: 200%;}

Simple Example (with css)Simple Example (with css)

<html>

<head><title>A Joke</title>

<link rel="stylesheet" type="text/css" href="joke.css"/>

</head>

<body>

<div><img src="tomato.gif" alt="joke"></div>

<h1>A joke</h1>

<p>A mama tomato, a papa tomato and a baby tomato are walking

down the street. The baby tomato keeps falling behind so the papa

tomato goes back, steps on the baby tomato and says, ketchup

("Catch-up!"). </p> </body>

</html>

Why do we Need a Style Sheet?Why do we Need a Style Sheet?

• In XHTML (or HTML 4.01), styling is very

limited, hence style sheets are necessary

- Transitional versions are richer in style

• Separates content from style

• Reduces download time (how?)

• Allows to easily maintain a consistent

appearance over a whole Web site (how?)

Style RulesStyle Rulesh1 {

color: purple;

font-family: Impact, Arial Black;

font-size-adjust: .46;

font-size: 2.33em;

font-weight:400;

font-style:normal;

text-decoration: none;

word-spacing:normal !important;

letter-spacing:normal;

text-transform: none; }

Declaration

Property

Value(s)

Selector

“important”rule

Style Rules (cont)Style Rules (cont)

• A rule has the following form

selector {declaration block}

• The selector determines when the rule is applied

• For example, the following rule applies to text

that is inside a <p> tag

p {color: green; font-size: 1.5em; font-style: italic}

What Kind of Properties can a CSS What Kind of Properties can a CSS Style Sheet Change?Style Sheet Change?

• Style properties

• Layout properties

• There are many properties and many possible

values

- We will not cover all of them here

- Look in the Web !!!

- A good source: http://www.w3schools.com/css

Style PropertiesStyle Properties

Our ExamplesOur Examples

• We use the following HTML example:

This is <span> our example </span> for css.

• The <span> tag is used to group elements for

formatting with styles

- Extremely useful tag...

Font PropertiesFont Properties

• Font properties: family, size, weight, style, variant, ...

span {

font-family: courier;

font-size: 130%;

font-style: italic;

font-weight: bold}

Text PropertiesText Properties

• Text properties: color, transform, decoration, …

span {

color: #00cc00;

text-decoration: line-through;

text-transform: uppercase}

Background PropertiesBackground Properties

• Background properties: background-color,

background-image, …

span {background-color: #00ff00}

span {background-image: url('bg.gif');}

Layout PropertiesLayout Properties

Page LayoutPage Layout

• Each HTML element defines a layer (rectangular

box) that is placed in some location on the page

• Layers are nested with correspondence to the

nesting of their elements

Inline vs. Block ElementsInline vs. Block Elements

• There are two type of elements:

• Block elements: p, ol, table, div, h1, etc.

• Inline elements: b, i, a, span, cite, etc.

• Layers of block elements are separated from their

adjacent elements (i.e., a new line before and after),

while inline elements are not

• You can turn a block into an inline and vice-versa, using

the display property, e.g., h1 { display: inline }

Positioning ElementsPositioning Elements

• Using CSS, you can define the position of an element

inside its parent layer

• For that, use the properties position, left, right, top and

bottom

span {

position:relative;

left: 1cm;

top: 1cm;

color: #00cc00;}

Position TypesPosition Types

• But 1cm left to what??

• For that, we have the position property

• Four position types:

- static: the default position

- absolute: relative to the parent layer coordinates

- relative: relative to the static position

- fixed: relative to the window coordinates

Position ExamplesPosition Examples

span {

position:absolute;

left: 1cm;

top: 1cm;

color: #00cc00;} span {

position:fixed;

left: 1cm;

top: 1cm;

color: #00cc00;}

Position ExamplesPosition Examples

span {

position:static;

left: 1cm;

top: 1cm;

color: #00cc00;}

Totally Ignored! This is the

default position type

More Layout PropertiesMore Layout Properties

• Layer properties

- margin-top (-bottom, -left, -right)

- padding-top (-bottom, -left, -right)

- border-width (-color, -style, … )

• Text Layout

- direction, word-spacing, white-space, letter-

spacing, line-height, text-align, text-indent, …

Length UnitsLength Units

• CSS has several types of length units:

- em, ex: height of current fonts

- px, in, cm, mm, pt, pc: international units

- %: ratio of parent’s respective dimension

• A page should remain a proper layout when

windows (and even fonts) resize

- Hence, do not assume anything about default sizes

Selector TypesSelector Types

Several Kinds of SelectorsSeveral Kinds of Selectors

• Type Selectors

• Class Selectors

• ID Selectors

• Attribute Selectors

• Universal Selector

• Child Selectors

• Adjacent-Sibling Selectors

• Descendant Selectors

• Pseudo-Class Selectors

• Pseudo-Element Selectors

Not supported by IE 5, 5.5 and 6

Type SelectorType Selector

• A type selector is the name of an element type

• A type selector matches every instance of the

element typeLI {color: red; font-size: 16px}

Matches:<ol>

<li> An item </li>

<li class="reditem"> Another item </li>

</ol>

Class SelectorClass Selector

• A class selector is a selector of the form x.y

• It matches xs that have the class attribute with

value yLI.reditem {color: red}

Matches:<ol>

<li> An item </li>

<li class="reditem"> Another item </li>

</ol>

.reditem { color: red} will also work!

ID SelectorsID Selectors

• IDs are identical to classes, except that there can only be

one element with a given ID in a document

LI#23 {color: red}

Matches:<ol>

<li> An item </li>

<li id="23"> Another item </li>

</ol>

#23 { color: red} will also work!

Attribute SelectorsAttribute Selectors

• p[attribute]

- matches p when attribute is set to any value

• p[title=intro] or p[title="intro"] (the quotes are optional)

- matches p when its title attribute is set to “intro”

• p[class~=green]

- matches p when the class attribute value includes the

word “green”

Universal SelectorUniversal Selector

• The universal selector matches every element

• The following rule means that all the text will have a

size of 40px

* {font-size: 40px }

Descendant SelectorDescendant Selector

• A descendant selector has the form S1 S2 where

S1 and S2 are selectors

• It matches all elements that

- match S2, and

- are descendants (nested in) elements that match S1

An ExampleAn Example

.href em {color: blue}

Matches: This is <em>not blue</em>.

<p>

This is <em> blue </em>

<span><i>and so is <em> this </em></i></span>.

</p>

What will this match?

p em {color: blue}

Pseudo-ClassesPseudo-Classes

• Pseudo class selectors are similar to class

selectors, but they match states rather than class

values

- For example, a link can be in the states: visited,

active, mouse-over (“hover”), etc.

- Another example: a text-area can be focused

Examples of Rules for Examples of Rules for Pseudo-ClassesPseudo-Classes

• A:link {color: blue}

• A:visited {color: purple}

• A:hover {font-size: 1.5em}

• A:active {color: red}

• INPUT:focus {background-color: yellow}

Grouping SelectorsGrouping Selectors

• We can group several declarations by specifying

several selectors, separated by commas

• For example, the following rule applies to all

elements that match either H1, P B, or

H2[class=largehead]

P B, H1, H2.largehead {font-size: 120%}

Inserting Style to a PageInserting Style to a Page

Inline StylesInline Styles

• In an inline style, the declaration block appear as the

value of the attribute style of the element

• Almost every tag can have the style attribute

- exceptional: base, head, html, meta, param, script, style

and title

<p style="color: green; font-size: 1.5em; font-style: italic">

This text will be shown in italic green and the size will be 1.5 times the current font size

</p>

Document-Level StyleDocument-Level Style

<html> <head>

<style type="text/css">

body {color: red; background: skyblue;}

h1 { color: blue }

</style>

</head>

<body>... </body>

</html>

Imported Style SheetsImported Style Sheets

• The @import rule imports the style rules of another

style sheet

• Usage: @import url(file.css)

• Several import rules may appear at the beginning of the

style sheet

• Import rules can appear in embedded style sheets or in

external style sheets

Imported Style SheetsImported Style Sheets

Why do we need the import

command?

@import url(general.css);

body { color: red; background:skyblue }

h1 { color: blue }

An Example:

Inheritance and CascadingInheritance and Cascading

Inheritance of PropertiesInheritance of Properties

• Consider a property of an element that does not match

any rule

• For some properties (inherited properties), the

computed value of this property is inherited from the

parent of the element

• For example, color, font and word-spacing are

inherited

• Yet border, margin and padding are not!

An ExampleAn Example

• Given the rules:

- body { font-size: 10pt }

- h1 { font-size: 120% }

• What will be the font size of the <em> element?

<body>

<h1>A <em>large</em> heading</h1>

</body>

Computed Value: 12pt

Cascading of StylesCascading of Styles

• CSS merges style rules from different places

(inline, document-level, linked and defaults)

• Different places may have conflicting style rules

- conflicts may even arise in a single source

• The process of merging (cascading) styles from

different places determines which style rules

have higher priority

Determining Property ValuesDetermining Property Values

• Suppose that we would like to determine the value of

property p for element e

• Choose all declarations that have a selector that matches

e and have the property p

• Choose the first declaration in the cascading order, and

apply the corresponding rule

Cascading OrderCascading Order

The cascading order of declarations:

1. Primary sort: importance of origin

2. Secondary sort: specificity of selectors

3. Final sort: order of appearance

Importance of OriginImportance of Origin

• There are two rule origins: author and browser

(either defaults or user customizations)

browser !important rules

author !important rules

author rules

browser rules

Specificity of SelectorsSpecificity of Selectors

is rule in style attribute?

number of ID attributes

number of attributes and pseudo-classes

number of element names

An ExampleAn Example

• Consider the following rules:

- li {…}

- #x34y {…}

- ul ol li.red {…}

• Which is the most specific?

Order of AppearanceOrder of Appearance

• If two rules have the same origin importance and

specificity, then the one that appears last in the

style sheet overrides the others

• Rules in imported style sheets (@import) are

considered to appear before local rules

top related