View
55
Download
1
Category
Preview:
DESCRIPTION
CSS: Cascading Style Sheets. History. HTML tags were originally designed to define the content of a document. The layout of the document was supposed to be taken care of by the browser, without using any formatting tags. - PowerPoint PPT Presentation
Citation preview
CSS:CSS:
Cascading Style SheetsCascading Style Sheets
2
HistoryHistory
• HTML tags were originally designed to define the content of
a document.
• The layout of the document was supposed to be taken care
of by the browser, without using any formatting tags.
• As the two major browsers - Netscape and Internet Explorer
continued to add new HTML tags and attributes (ex: <font>
tag, color attribute) to the original HTML specification, it
became more and more difficult to create Web sites where
the content of HTML documents was clearly separated from
the document's presentation layout.
3
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.
4
Style SheetsStyle Sheets
• A file that ends with .css
• Contains a list of style rules for HTML elements
• Case insensitive
• Comments are enclosed in /* */
• Demo:
http://www.w3schools.com/css/demo_default.htm
5
Without a style sheet
6
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>
The <div> tag defines a
division/section in a document.
7
8
Style File: Style File: joke.cssjoke.css
body {
background-image: url("water.jpg"); }
h1 {
background-color: green;
color: rgb(250, 200, 250); /* pink */
font-family: cursive }
p {
background-color: yellow;
color: purple;
font-size: 200%;}
9
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>
10
11
Why do we Need a Style Sheet?Why do we Need a Style Sheet?
• Separates content from format
• In HTML 4.01 styling is very limited
• Consistent appearance over a site
• Allows to easily change style
- In one page
- In a whole site
• Reduces download time (how?)
the same style sheet may
apply to many pages in a
website reduces the
need to send redundant
presentation information
over the network
Inserting Style to a PageInserting Style to a Page
13
How and Where?How and Where?
• The style rules appear either in the document or
in external files, called style sheets
- Inside a document, there are inline styles and
embedded style sheets
- External style sheets are either linked or
imported
14
Inline StylesInline Styles
• The style declaration appears as the value of the
attribute style of the element
• Almost every tag can have the style attribute
- Some exceptions: head, html, meta, style and title
• Use this method sparingly, such as when a style
is to be applied to a single occurrence of an
element.
<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>
15
<html> <head>
<style type="text/css">
body {color: red; background: skyblue;}
h1 { color: blue }
</style>
</head>
<body>... </body>
</html>
Embedded StyleEmbedded Style
Inside the head element
•Use when a single document has a unique style.
16
Link External Style SheetsLink External Style Sheets
<html> <head>
<link rel="stylesheet" type="text/css"
href="mystyle.css" />
</head>
<body>... </body>
</html>
Inside the head element
• Ideal when the style is applied to many pages.
17
• The @import rule imports style rules to the beginning of
the style sheet
• The @import rule imports the style rules of another
style sheet
• Several import rules may appear
Imported Style SheetsImported Style Sheets
@import url(general.css);
body { color: red; background:skyblue }
h1 { color: blue }An Example:
Style SyntaxStyle Syntax
19
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
letter-spacing:normal;
text-transform: none; }
Declaration
Property
Value(s)
Selector
20
Style Rules (cont)Style Rules (cont)
• A rule has the following form:
selector {property: value}
- Selector: HTML element/tag to define
- Property: attribute to change
- Value: value given to the property
• For example, the following rule applies to text
that is inside a <p> tag
p {color: green; font-size: 1.5em; font-style: italic}
em: the 'font-size' of the relevant font
21
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 (list, table, border)
- Everything is in the Web !
- A good source: http://www.w3schools.com/css
Style PropertiesStyle Properties
23
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...
24
Font PropertiesFont Properties
• Font properties: family, size, weight, style,...
span {
font-family: courier;
font-size: 130%;
font-style: italic;
font-weight: bold}
25
Text PropertiesText Properties
• Text properties: color, transform, decoration,
word-spacing, text-align, direction, …
span {
color: #00cc00;
text-decoration: line-through;
text-transform: uppercase}
26
Background PropertiesBackground Properties
• Background properties: background-color,
background-image, background-repeat, …
span {background-color: #00ff00}
span {background-image: url('bg.gif');}
Layout PropertiesLayout Properties
28
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
29
Inline vs. Block ElementsInline vs. Block Elements
• There are two types of elements:
- Block elements: p, ol, table, div, h1, etc.
- Inline elements: b, i, a, span, 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 or block, using the
display property, e.g., h1 { display: inline }
30
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;}
31
Relative vs. AbsoluteRelative vs. Absolute
• In CSS, positions (of boxes) and sizes (of fonts and boxes) could be either relative or absolute
• In an “absolute” style
- Font size is fixed
- Sizes and positions of elements are fixed
• In a “relative” style
- you can change the font size
- The sizes and positions of elements may change when the size of the window is changed
32
Position TypesPosition Types
• But 1cm left of what??
• For that, we have the position property
• Four position types:
- static: the default position
- relative: relative to the static position
- absolute: relative to the parent layer coordinates
- fixed: relative to the window coordinates
33
Position ExamplesPosition Examples
span {
position:static;
left: 1cm;
top: 1cm;
color: #00cc00;}
Totally Ignored! This is the
default position type
34
Position ExamplesPosition Examplesspan {
position:absolute;
left: 1cm;
top: 1cm;
color: #00cc00;}
span {
position:fixed;
left: 1cm;
top: 1cm;
color: #00cc00;}
35
More Layout PropertiesMore Layout Properties
• Layer properties
- margin (-top, -bottom, -left, -right) • Defines the space around elements
- border (-width, -color, -style, … )• Defines the border around an element
- padding (-top, -bottom, -left, -right)• Defines the space between the element border and the element content
• Text Layout
- direction, word-spacing, white-space, letter-spacing, line-
height, text-align, text-indent, …
36
Length UnitsLength Units
• CSS has several types of length units:
- em, ex: height of current fonts (relative)
- 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,
always check
Selector TypesSelector Types
38
Several Kinds of SelectorsSeveral Kinds of Selectors
• Type Selectors
• Class Selectors
• ID Selectors
• Attribute Selectors
• Universal Selector
• Descendant Selectors
• Pseudo-Class Selectors
• Pseudo-Element Selectors
39
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>
40
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!
41
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!
42
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”
43
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 }
44
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
45
An ExampleAn Example
.reditem 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}
46
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
47
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}
48
• The syntax of pseudo-elements:
selector:pseudo-element {property: value}
• CSS classes can also be used with pseudo-
elements:
selector.class:pseudo-element {property: value}
Pseudo-ElementsPseudo-Elements
49
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%}
50
Adding Style to Inner TextAdding Style to Inner Text
• We want to add style to a fragment of some text
• We need to wrap the text with tags that do not
have a style of their own:
- <SPAN> Some text </SPAN> : does not stop the
text flow
- <DIV> Some text </DIV>: separated from the
other text
Cascading and Inheritance Cascading and Inheritance
52
Cascading of StylesCascading of Styles
• CSS merges style rules from different places
(inline, embedded, 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
53
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
54
Cascading OrderCascading Order
The cascading order of declarations:
1. Primary sort: weight and origin
2. Secondary sort: class
3. Third sort: specificity of selectors
4. Final sort: order of appearance
55
Weight and OriginWeight and Origin
A style defined “closer” to a tag takes precedence:
• Author style sheets override user style sheets
• User style sheets override default (browser) style
sheets http://www.squarefree.com/userstyles/user-style-sheets.html
• !important declaration overrides normal declaration- body { color: black !important; background: white !important;}
• If both author and user declarations have !important,
the author declarations still override the user
declarations
56
Example (sort by class)Example (sort by class)
• Consider the two rules
- P {…}
- .introductory {…}
• If an element matches both, then the second rule
has a higher specificity and overrides the first
57
An Example (specificity of selectors)An Example (specificity of selectors)
• Consider the following rules:
- li {…}
- #34 {…}
- ul ol li.red {…}
• Which is the most specific?
…there can only be one element with a given ID in a document
58
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
59
Inheritance of PropertiesInheritance of Properties
• If an element does not match any rule for some
given property, then the element inherits the
computed value for that property from its parent
element
• For example, color, font and word-spacing are
inherited
60
An Example (1)An Example (1)
• 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
61
An Example (2)An Example (2)
• Given the rules:
- body { font-size: 10pt; color=red; }
- h1 { font-size: 120% }
• What will be the font color of the <h1> element?
<body>
<h1>A red heading ? </h1>
</body>
62
Inheritance of PropertiesInheritance of Properties
• If some properties have been set for the same
selector in different style sheets, the values will
be inherited from the more specific style sheet.
Example:
Result (properties for h3 in the document): color :redtext-align : rightfont_size:20 pt
external: H3 { color : red;
text-align : left;font-size : 8 pt; }
internal: H3 {
text-align : right;font-size : 20 pt; }
63
The End!The End!• These slides are based on those developed for the
course: http://www.cs.huji.ac.il/~dbi
• More information about CSS can be found at:
http://www.w3schools.com/css/default.asp
http://www.htmlhelp.com/reference/css/
http://www.htmlgoodies.com/beyond/css/
• Colors: very useful for styling!
http://www.w3schools.com/css/css_colors.asp
http://www.w3schools.com/css/css_colorsfull.asp
http://www.w3schools.com/css/css_colornames.asp
Recommended