‘Advanced’ CSS
Abridged version of slides to accompany
Internet & WWW: How To Program (1st
ed.)
by Dietel, Dietel, & Nieto,
Published by Prentice-Hall. Note:
These slides
assume
HTML4 not
XHTML!
1 Introduction
• Cascading Style Sheets (CSS)
– Specify the style of your page elements
– Spacing, margins, etc.
• Separate from the structure of your document
– Section headers, body text, links, etc.
• Separation of structure from content
– Greater manageability
– Easier to change style of document
2 Inline Styles
• Inline styles
– Individual element’s style declared using the STYLE
attribute
– Each CSS property followed by a colon and the value
of that attribute
– Multiple properties separated by semicolons
<P STYLE = “font-size: 20 pt; color: #0000FF”>
– Inline styles override any other styles
• Not suitable for site maintenance
• Only really useful for
– Quick and dirty effect testing
– Sizes of images
Outline
1. STYLE attribute
1.1Separate multiple
styles with a
semicolon
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <HTML>
3
4 <!-- Fig. 14.1: inline.html -->
5 <!-- Using inline styles -->
6
7 <HEAD><TITLE>Inline Styles</TITLE></HEAD>
8
9 <BODY>
10
11 <P>Here is some text</P>
12
13 <!-- The STYLE attribute allows you to declare inline -->
14 <!-- styles. Separate multiple styles with a semicolon. -->
15 <P STYLE = "font-size: 20pt">Here is some more text</P>
16 <P STYLE = "font-size: 20pt; color: #0000FF">Even more text</P>
17
18 </BODY>
19 </HTML>
Inline styles
3 Creating Style Sheets with the STYLE
Element
• Style sheet in header section
– Begins with <STYLE TYPE = “text/css”>
• Styles placed here apply to the whole document
• TYPE attribute specifies the MIME type
– MIME is a standard for specifying the format of content
» Other MIME types include text/html, image/gif and
text/javascript
• Without style sheets
– Browser completely controls the look and feel of Web pages
• With style sheets
– Designer can specify the look and feel of Web pages
3 Creating Style Sheets with the STYLE
Element (II)
• Declare CSS rules within STYLE element
– Each rule body begins and ends with a curly brace
({ and })
– Class declarations are preceded with a period and
applied to elements only of that specific class
– Each property is followed by a colon and the value of
the property
– Multiple properties are separated by semicolons
3 Creating Style Sheets with the STYLE
Element (III)
• Generic font families
– Allow you to specify a type of font instead of a specific
font
• Font-size property
– Relative sizes: xx-small, x-small, small,
smaller, medium, large, larger,
x-large and xx-large
• Styles applied to an element (the parent element)
– Also apply to the elements inside that element (child
elements)
Outline
1. Begin style sheet
section
1.1CSS rules inside
curly braces
1.2Property name
followed by colon
and property value
1.3Properties
separated by
semicolon
1.4background-color
specifies the
background color
of the element
1.5font-family
property:
Arial specifies the
name of the font
sans-serif is a
generic font family
2. Applying styles
2.1CLASS attribute
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig. 14.2: declared.html -->
5<!-- Declaring a style sheet in the header section. -->
6
7<HEAD>
8<TITLE>Style Sheets</TITLE>
9
10<!-- This begins the style sheet section. -->
11<STYLE TYPE = "text/css">
12
13 EM { background-color: #8000FF;
14 color: white }
15
16 H1 { font-family: Arial, sans-serif }
17
18 P { font-size: 18pt }
19
20 .blue { color: blue }
21
22</STYLE>
23</HEAD>
24
25<BODY>
26
27<!-- This CLASS attribute applies the .blue style -->
28<H1 CLASS = "blue">A Heading</H1>
29<P>Here is some text. Here is some text. Here is some text.
30Here is some text. Here is some text.</P>
31
32<H1>Another Heading</H1>
33<P CLASS = "blue">Here is some more text. Here is some more text.
Outline
3. Page rendered by
browser
34 Here is some <EM>more</EM> text. Here is some more text.</P>
35
36 </BODY>
37 </HTML>
4 Conflicting Styles
• Inheritance and specificity
• text-decoration property
– Applies decorations to text within an element
– none
– overline
– line-through
– blink
• Browsers are not required to support blink
• Pseudo-classes
– Give the author access to content not specifically
declared in the document
– Ex. :hover pseudo-class
4 Conflicting Styles (II)
• px: pixel is a relative-length measurement
– Varies in size based on screen resolution
• Other relative-lengths
– em: the size of the font
– ex: the “x-height” of the font, usually set to the height of a
lowercase x
– Percentages
• E.g. margin-left: 10%
• Absolute-length measurements
– in: inches
– cm: centimeters
– mm: millimeters
– pt: points (1 pt = 1/72 in)
– pc: picas (1 pc = 12 pt)
• Use relative length over absolute
4 Conflicting Styles (III)
• Three possible sources for style sheets
– Browser defaults
– Preset user styles
– Author styles
• Author styles have a greater precedence than
preset user styles
– But !important rules can change priority
– User's !important rules have priority
Outline
1.1text-decoration
property
1.2hover pseudo-
class
1.3 Declare style for
EM elements that
are children of LI
elements
1.4 Declare a style for
all nested lists
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig 14.3: advanced.html -->
5<!-- More advanced style sheets -->
6
7<HEAD>
8<TITLE>More Styles</TITLE>
9<STYLE TYPE = "text/css">
10
11 A.nodec { text-decoration: none }
12
13 A:hover { text-decoration: underline;
14 color: red;
15 background-color: #CCFFCC }
16
17 LI EM { color: red;
18 font-weight: bold }
19
20 UL { margin-left: 75px }
21
22 UL UL { text-decoration: underline;
23 margin-left: 15px }
24
25</STYLE>
26</HEAD>
27
28<BODY>
29
30<H1>Shopping list for <EM>Monday</EM>:</H1>
31<UL>
32<LI>Milk</LI>
33<LI>Bread
Outline
34 <UL>
35 <LI>White bread</LI>
36 <LI>Rye bread</LI>
37 <LI>Whole wheat bread</LI>
38 </UL></LI>
39 <LI>Rice</LI>
40 <LI>Potatoes</LI>
41 <LI>Pizza <EM>with mushrooms</EM></LI>
42 </UL>
43
44 <P><A CLASS = "nodec" HREF = "http://food.com">Go to the Grocery
45 store</A></P>
46
47 </BODY>
48 </HTML>
Inheritance in style sheets
Hovering over a link
5 Linking External Style Sheets
• External linking
– Separate pages can all use same style sheet
– Only modify a single file to change styles across your site
• LINK element
– Specifies a relationship (REL attribute) between current document
and another document
<LINK REL = “stylesheet” TYPE = “text/css”
HREF = “styles.css”>
– LINK element can only be placed in header
– Other REL values
• next, previous allow you to link a series of documents
– Print all linked documents option
• Style sheets are reusable
Outline
1. External style sheet
(styles.css)
1A { text-decoration: none }
2
3A:hover { text-decoration: underline;
4 color: red;
5 background-color: #CCFFCC }
6
7LI EM { color: red;
8 font-weight: bold}
9
10UL { margin-left: 2cm }
11
12UL UL { text-decoration: underline;
13 margin-left: .5cm }
Outline
2. LINK element
2.1REL attribute
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig. 14.5: imported.html -->
5<!-- Linking external style sheets -->
6
7<HEAD>
8<TITLE>Importing style sheets</TITLE>
9<LINK REL = "stylesheet" TYPE = "text/css" HREF = "styles.css">
10</HEAD>
11
12<BODY>
13
14<H1>Shopping list for <EM>Monday</EM>:</H1>
15<UL>
16<LI>Milk</LI>
17<LI>Bread
18 <UL>
19 <LI>White bread</LI>
20 <LI>Rye bread</LI>
21 <LI>Whole wheat bread</LI>
22 </UL></LI>
23<LI>Rice</LI>
24<LI>Potatoes</LI>
25<LI>Pizza <EM>with mushrooms</EM></LI>
26</UL>
27
28<A HREF = "http://food.com">Go to the Grocery store</A>
29
30</BODY>
31</HTML>
Linking an external style sheet
6 Positioning Elements
• CSS position property
– Absolute positioning
• Specifying an element’s position as absolute removes it
from the normal flow of elements on the page
• Position the element according to distance from top, left,
right or bottom margins of parent element
– z-index attribute
• Allows you to properly layer overlapping elements
• Elements with higher z-index are displayed in front of
elements with lower z-index
Outline
1. position property
1.1absolute
positioning
1.2z-index
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig 14.6: positioning.html -->
5<!-- Absolute positioning of elements -->
6
7<HEAD>
8<TITLE>Absolute Positioning</TITLE>
9</HEAD>
10
11<BODY>
12
13<IMG SRC = "i.gif" STYLE = "position: absolute; top: 0px;
14 left: 0px; z-index: 1">
15<H1 STYLE = "position: absolute; top: 50px; left: 50px;
16 z-index: 3">Positioned Text</H1>
17<IMG SRC = "circle.gif" STYLE = "position: absolute; top: 25px;
18 left: 100px; z-index: 2">
19
20</BODY>
21</HTML>
Positioning elements with CSS
6 Positioning Elements (II)
• CSS position property (cont.)
– Relative positioning
• Browser lays out the element on the page
• Then offsets the element by specified top, bottom, left or
right values
• Keeps elements in the general flow of elements on the page
• Be careful to avoid unintentionally overlapping text
Outline
1. relative
positioning
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig 14.7: positioning2.html -->
5<!-- Relative positioning of elements -->
6
7<HEAD>
8<TITLE>Relative Positioning</TITLE>
9
10<STYLE TYPE = "text/css">
11
12 P { font-size: 2em;
13 font-family: Verdana, Arial, sans-serif }
14
15 SPAN { color: red;
16 font-size: .6em;
17 height: 1em }
18
19 .super { position: relative;
20 top: -1ex }
21
22 .sub { position: relative;
23 bottom: -1ex }
24
25 .shiftl { position: relative;
26 left: -1ex }
27
28 .shiftr { position: relative;
29 right: -1ex }
30</STYLE>
31</HEAD>
32
33<BODY>
Outline
2. Page rendered by
browser
34
35<P>
36Text text text text <SPAN CLASS = "super">superscript</SPAN>
37text text text text <SPAN CLASS = "sub">subscript</SPAN>
38text Text text <SPAN CLASS = "shiftl">left-shifted</SPAN>
39text text text <SPAN CLASS = "shiftr">right-shifted</SPAN>
40Text text text text text
41</P>
42
43</BODY>
44</HTML>
7 Backgrounds
• background-image property
– Specifies the URL
• background-position property
– Positions the image on the page
– Top, bottom, center, left or right
– Ex. background-position: 50% 30px;
• Position image centered vertically (50% of the distance across the
screen) and 30 pixels from the top
• background-repeat property controls tiling
– no-repeat, repeat, x-repeat, y-repeat
• background-attachment property
– fixed: scrolling the browser window will not move the image
– scroll: moves the image as the user scrolls the window (default)
• text-indent property
– Indents first line of text by specified amount
7 Backgrounds (II)
• font-weight property
– specifies the “boldness” of affected text
– bold
– normal
– bolder
– lighter
– Multiples of 100 from 100 to 900
• font-style property
– none
– italic
– oblique
• Will default to italic if system does not have separate font
file for oblique
7 Backgrounds (III)
• SPAN element: generic grouping element
– Does not apply any inherent formatting
– Main use is to apply styles or ID attributes to block of text
– Inline element
• DIV element
– Similar to SPAN, but block-level element
• Displayed on own line with margins above and below
Outline
1. Use CSS to add a
background image
1.1background-image
property
1.2background-
position property
1.3background-
repeat property
1.4background-
attachment
property
1.5text-indent
property
1.6font-weight
property
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig. 14.8: background.html -->
5<!-- Adding background images and indentation -->
6
7<HEAD>
8<TITLE>Background Images</TITLE>
9
10<STYLE TYPE = "text/css">
11
12 BODY { background-image: url(watermark.gif);
13 background-position: bottom right;
14 background-repeat: no-repeat;
15 background-attachment: fixed }
16
17 P { font-size: 2em;
18 color: #AA5588;
19 text-indent: 1em;
20 font-family: Arial, sans-serif }
21
22 .dark { font-weight: bold }
23
24</STYLE>
25</HEAD>
26
27<BODY>
28
29<P>
30This is some sample text to fill in the page.
31<SPAN CLASS = "dark">This is some sample
Outline
2. Page rendered by
browser
32 text to fill in the page.</SPAN>
33 This is some sample text to fill in the page.
34 This is some sample text to fill in the page.
35 This is some sample text to fill in the page.
36 This is some sample text to fill in the page.
37 </P>
38
39 </BODY>
40 </HTML>
8 Element Dimensions
• width property
– Ex. <DIV STYLE = “width: 20%”>
• height property
– Relative and absolute lengths for width and height
properties
• text-align property
– center, left or right
• overflow property
– scroll adds scrollbars if the text overflows the
boundaries
Outline
1. Dimensions in DIV
element
1.1width property
1.2height property
1.3text-align
property
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig. 14.9: width.html -->
5<!-- Setting box dimensions and aligning text -->
6
7<HEAD>
8<TITLE>Box Dimensions</TITLE>
9<STYLE TYPE = "text/css">
10
11 DIV { background-color: #FFCCFF;
12 margin-bottom: .5em }
13
14</STYLE>
15</HEAD>
16
17<BODY>
18
19<DIV STYLE = "width: 20%">Here is some
20text that goes in a box which is
21set to stretch across twenty precent
22of the width of the screen.</DIV>
23
24<DIV STYLE = "width: 80%; text-align: center">
25Here is some CENTERED text that goes in a box
26which is set to stretch across eighty precent of
27the width of the screen.</DIV>
28
29<DIV STYLE = "width: 20%; height: 30%; overflow: scroll">
30This box is only twenty percent of
31the width and thirty percent of the height.
32What do we do if it overflows? Set the
33overflow property to scroll!</DIV>
Outline
2. Page rendered by
browser
34
35 </BODY>
36 </HTML>
9 Text Flow and the Box Model
• Floating
– Allows you to move an element to one side of the
screen
– Other content in the document flows around the floated
element
– Float to the left or right of a document
• Each block-level element is “boxed”
– Box model allows properties of box to be easily
adjusted
• Padding
• Border
• Margins
Box model for block-level elements
Margin
Border
Padding
Outline
1. Floating elements
2. Setting box
dimensions
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig. 14.10: floating.html -->
5<!-- Floating elements and element boxes -->
6
7<HEAD>
8<TITLE>Flowing Text Around Floating Elements</TITLE>
9<STYLE TYPE = "text/css">
10
11 DIV { background-color: #FFCCFF;
12 margin-bottom: .5em;
13 font-size: 1.5em;
14 width: 50% }
15
16</STYLE>
17</HEAD>
18
19<BODY>
20
21<DIV STYLE = "text-align: center">Centered text</DIV>
22<DIV STYLE = "text-align: right">Right-aligned text</DIV>
23
24<DIV STYLE = "float: right; margin: .5em">This is some floated
25text, floated text, floated text, floated text.</DIV>
26<P>
27Here is some flowing text, flowing text, flowing text.
28Here is some flowing text, flowing text, flowing text.
29Here is some flowing text, flowing text, flowing text.
30Here is some flowing text, flowing text, flowing text.
31Here is some flowing text, flowing text, flowing text.
32Here is some flowing text, flowing text, flowing text.
33Here is some flowing text, flowing text, flowing text.
Outline
34Here is some flowing text, flowing text, flowing text.
35</P>
36
37<P><DIV STYLE ="float: right; padding: .5em">This is some floated
38text, floated text, floated text, floated text.</DIV>
39Here is some flowing text, flowing text, flowing text.
40Here is some flowing text, flowing text, flowing text.
41Here is some flowing text, flowing text, flowing text.
42<SPAN STYLE = "clear: right">Here is some unflowing text.
43Here is some unflowing text.</SPAN>
44</P>
45
46</BODY>
47</HTML>
Interrupt flow of text
around a floated
element by setting the
clear property to the
same direction the
element is floated
Floating elements, aligning text and setting
box dimensions
.5 em margin
.5 em padding
9 Text Flow and the Box Model (II)
• Box model border
– border-width
– border-style
• E.g. border-top-style
• none
• hidden
• dotted
• dashed
• solid
• double
• groove
• ridge
• inset
• outset
– border-color
• E.g. border-left-color
Outline
1. Box model border
properties
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig. 14.12: borders.html -->
5<!-- Setting borders of an element -->
6
7<HEAD>
8<TITLE>Borders</TITLE>
9<STYLE TYPE = "text/css">
10
11 BODY { background-color: #CCFFCC }
12
13 DIV { text-align: center;
14 margin-bottom: 1em;
15 padding: .5em }
16
17 .thick { border-width: thick }
18
19 .medium { border-width: medium }
20
21 .thin { border-width: thin }
22
23 .groove { border-style: groove }
24
25 .inset { border-style: inset }
26
27 .outset { border-style: outset }
28
29 .red { border-color: red }
30
31 .blue { border-color: blue }
32
33</STYLE>
Outline
34</HEAD>
35
36<BODY>
37
38<DIV CLASS = "thick groove">This text has a border</DIV>
39<DIV CLASS = "medium groove">This text has a border</DIV>
40<DIV CLASS = "thin groove">This text has a border</DIV>
41
42<P CLASS = "thin red inset">A thin red line...</P>
43<P CLASS = "medium blue outset">And a thicker blue line</P>
44
45</BODY>
46</HTML>
Applying borders to elements
Outline
1. Creating borders
with border-style
property
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig. 14.13: borders2.html -->
5<!-- Various border-styles -->
6
7<HEAD>
8<TITLE>Borders</TITLE>
9
10<STYLE TYPE = "text/css">
11
12 BODY { background-color: #CCFFCC }
13
14 DIV { text-align: center;
15 margin-bottom: .3em;
16 width: 50%;
17 position: relative;
18 left: 25%;
19 padding: .3em }
20</STYLE>
21</HEAD>
22
23<BODY>
24
25<DIV STYLE = "border-style: solid">Solid border</DIV>
26<DIV STYLE = "border-style: double">Double border</DIV>
27<DIV STYLE = "border-style: groove">Groove border</DIV>
28<DIV STYLE = "border-style: ridge">Ridge border</DIV>
29<DIV STYLE = "border-style: inset">Inset border</DIV>
30<DIV STYLE = "border-style: outset">Outset border</DIV>
31</BODY>
32</HTML>
Various border-styles
10 User Style Sheets
• Important issue when adding style sheets:
What kind of users will be using your site?
• Users can define their own user style sheets
• CSS1 specification gave precedence to author
styles over user styles but current CSS2 gives
user rules precedence
• Use relative measurements
• Add a user style sheet in IE5
– Tools menu  Internet Options…
• Accessibility…
– Check Format documents using my style sheet
Outline
1.1Use em
measurement to
modify text size
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML>
3
4<!-- Fig. 14.14: user.html -->
5<!-- User styles -->
6
7<HEAD>
8<TITLE>User Styles</TITLE>
9
10<STYLE TYPE = "text/css">
11
12 .note { font-size: 1.5em }
13
14</STYLE>
15</HEAD>
16
17<BODY>
18
19<P>Thanks for visiting my Web site. I hope you enjoy it.</P>
20<P CLASS = "note">Please Note: This site will be moving soon.
21Please check periodically for updates.</P>
22
23</BODY>
24</HTML>
Modifying text size with the em
measurement
Adding a user style sheet in Internet
Explorer 5
Outline
1. A sample user style
sheet
2. A Web page with
user styles enabled
1BODY { font-size: 20pt;
2 background-color: #CCFFCC }
3A { color: red }

CSS is the language we use to style a Web page. CSS stands for Cascading Style Sheets; CSS describes how HTML elements are to be displayed

  • 1.
    ‘Advanced’ CSS Abridged versionof slides to accompany Internet & WWW: How To Program (1st ed.) by Dietel, Dietel, & Nieto, Published by Prentice-Hall. Note: These slides assume HTML4 not XHTML!
  • 2.
    1 Introduction • CascadingStyle Sheets (CSS) – Specify the style of your page elements – Spacing, margins, etc. • Separate from the structure of your document – Section headers, body text, links, etc. • Separation of structure from content – Greater manageability – Easier to change style of document
  • 3.
    2 Inline Styles •Inline styles – Individual element’s style declared using the STYLE attribute – Each CSS property followed by a colon and the value of that attribute – Multiple properties separated by semicolons <P STYLE = “font-size: 20 pt; color: #0000FF”> – Inline styles override any other styles • Not suitable for site maintenance • Only really useful for – Quick and dirty effect testing – Sizes of images
  • 4.
    Outline 1. STYLE attribute 1.1Separatemultiple styles with a semicolon 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 <HTML> 3 4 <!-- Fig. 14.1: inline.html --> 5 <!-- Using inline styles --> 6 7 <HEAD><TITLE>Inline Styles</TITLE></HEAD> 8 9 <BODY> 10 11 <P>Here is some text</P> 12 13 <!-- The STYLE attribute allows you to declare inline --> 14 <!-- styles. Separate multiple styles with a semicolon. --> 15 <P STYLE = "font-size: 20pt">Here is some more text</P> 16 <P STYLE = "font-size: 20pt; color: #0000FF">Even more text</P> 17 18 </BODY> 19 </HTML>
  • 5.
  • 6.
    3 Creating StyleSheets with the STYLE Element • Style sheet in header section – Begins with <STYLE TYPE = “text/css”> • Styles placed here apply to the whole document • TYPE attribute specifies the MIME type – MIME is a standard for specifying the format of content » Other MIME types include text/html, image/gif and text/javascript • Without style sheets – Browser completely controls the look and feel of Web pages • With style sheets – Designer can specify the look and feel of Web pages
  • 7.
    3 Creating StyleSheets with the STYLE Element (II) • Declare CSS rules within STYLE element – Each rule body begins and ends with a curly brace ({ and }) – Class declarations are preceded with a period and applied to elements only of that specific class – Each property is followed by a colon and the value of the property – Multiple properties are separated by semicolons
  • 8.
    3 Creating StyleSheets with the STYLE Element (III) • Generic font families – Allow you to specify a type of font instead of a specific font • Font-size property – Relative sizes: xx-small, x-small, small, smaller, medium, large, larger, x-large and xx-large • Styles applied to an element (the parent element) – Also apply to the elements inside that element (child elements)
  • 9.
    Outline 1. Begin stylesheet section 1.1CSS rules inside curly braces 1.2Property name followed by colon and property value 1.3Properties separated by semicolon 1.4background-color specifies the background color of the element 1.5font-family property: Arial specifies the name of the font sans-serif is a generic font family 2. Applying styles 2.1CLASS attribute 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig. 14.2: declared.html --> 5<!-- Declaring a style sheet in the header section. --> 6 7<HEAD> 8<TITLE>Style Sheets</TITLE> 9 10<!-- This begins the style sheet section. --> 11<STYLE TYPE = "text/css"> 12 13 EM { background-color: #8000FF; 14 color: white } 15 16 H1 { font-family: Arial, sans-serif } 17 18 P { font-size: 18pt } 19 20 .blue { color: blue } 21 22</STYLE> 23</HEAD> 24 25<BODY> 26 27<!-- This CLASS attribute applies the .blue style --> 28<H1 CLASS = "blue">A Heading</H1> 29<P>Here is some text. Here is some text. Here is some text. 30Here is some text. Here is some text.</P> 31 32<H1>Another Heading</H1> 33<P CLASS = "blue">Here is some more text. Here is some more text.
  • 10.
    Outline 3. Page renderedby browser 34 Here is some <EM>more</EM> text. Here is some more text.</P> 35 36 </BODY> 37 </HTML>
  • 11.
    4 Conflicting Styles •Inheritance and specificity • text-decoration property – Applies decorations to text within an element – none – overline – line-through – blink • Browsers are not required to support blink • Pseudo-classes – Give the author access to content not specifically declared in the document – Ex. :hover pseudo-class
  • 12.
    4 Conflicting Styles(II) • px: pixel is a relative-length measurement – Varies in size based on screen resolution • Other relative-lengths – em: the size of the font – ex: the “x-height” of the font, usually set to the height of a lowercase x – Percentages • E.g. margin-left: 10% • Absolute-length measurements – in: inches – cm: centimeters – mm: millimeters – pt: points (1 pt = 1/72 in) – pc: picas (1 pc = 12 pt) • Use relative length over absolute
  • 13.
    4 Conflicting Styles(III) • Three possible sources for style sheets – Browser defaults – Preset user styles – Author styles • Author styles have a greater precedence than preset user styles – But !important rules can change priority – User's !important rules have priority
  • 14.
    Outline 1.1text-decoration property 1.2hover pseudo- class 1.3 Declarestyle for EM elements that are children of LI elements 1.4 Declare a style for all nested lists 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig 14.3: advanced.html --> 5<!-- More advanced style sheets --> 6 7<HEAD> 8<TITLE>More Styles</TITLE> 9<STYLE TYPE = "text/css"> 10 11 A.nodec { text-decoration: none } 12 13 A:hover { text-decoration: underline; 14 color: red; 15 background-color: #CCFFCC } 16 17 LI EM { color: red; 18 font-weight: bold } 19 20 UL { margin-left: 75px } 21 22 UL UL { text-decoration: underline; 23 margin-left: 15px } 24 25</STYLE> 26</HEAD> 27 28<BODY> 29 30<H1>Shopping list for <EM>Monday</EM>:</H1> 31<UL> 32<LI>Milk</LI> 33<LI>Bread
  • 15.
    Outline 34 <UL> 35 <LI>Whitebread</LI> 36 <LI>Rye bread</LI> 37 <LI>Whole wheat bread</LI> 38 </UL></LI> 39 <LI>Rice</LI> 40 <LI>Potatoes</LI> 41 <LI>Pizza <EM>with mushrooms</EM></LI> 42 </UL> 43 44 <P><A CLASS = "nodec" HREF = "http://food.com">Go to the Grocery 45 store</A></P> 46 47 </BODY> 48 </HTML>
  • 16.
    Inheritance in stylesheets Hovering over a link
  • 17.
    5 Linking ExternalStyle Sheets • External linking – Separate pages can all use same style sheet – Only modify a single file to change styles across your site • LINK element – Specifies a relationship (REL attribute) between current document and another document <LINK REL = “stylesheet” TYPE = “text/css” HREF = “styles.css”> – LINK element can only be placed in header – Other REL values • next, previous allow you to link a series of documents – Print all linked documents option • Style sheets are reusable
  • 18.
    Outline 1. External stylesheet (styles.css) 1A { text-decoration: none } 2 3A:hover { text-decoration: underline; 4 color: red; 5 background-color: #CCFFCC } 6 7LI EM { color: red; 8 font-weight: bold} 9 10UL { margin-left: 2cm } 11 12UL UL { text-decoration: underline; 13 margin-left: .5cm }
  • 19.
    Outline 2. LINK element 2.1RELattribute 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig. 14.5: imported.html --> 5<!-- Linking external style sheets --> 6 7<HEAD> 8<TITLE>Importing style sheets</TITLE> 9<LINK REL = "stylesheet" TYPE = "text/css" HREF = "styles.css"> 10</HEAD> 11 12<BODY> 13 14<H1>Shopping list for <EM>Monday</EM>:</H1> 15<UL> 16<LI>Milk</LI> 17<LI>Bread 18 <UL> 19 <LI>White bread</LI> 20 <LI>Rye bread</LI> 21 <LI>Whole wheat bread</LI> 22 </UL></LI> 23<LI>Rice</LI> 24<LI>Potatoes</LI> 25<LI>Pizza <EM>with mushrooms</EM></LI> 26</UL> 27 28<A HREF = "http://food.com">Go to the Grocery store</A> 29 30</BODY> 31</HTML>
  • 20.
  • 21.
    6 Positioning Elements •CSS position property – Absolute positioning • Specifying an element’s position as absolute removes it from the normal flow of elements on the page • Position the element according to distance from top, left, right or bottom margins of parent element – z-index attribute • Allows you to properly layer overlapping elements • Elements with higher z-index are displayed in front of elements with lower z-index
  • 22.
    Outline 1. position property 1.1absolute positioning 1.2z-index 1<!DOCTYPEhtml PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig 14.6: positioning.html --> 5<!-- Absolute positioning of elements --> 6 7<HEAD> 8<TITLE>Absolute Positioning</TITLE> 9</HEAD> 10 11<BODY> 12 13<IMG SRC = "i.gif" STYLE = "position: absolute; top: 0px; 14 left: 0px; z-index: 1"> 15<H1 STYLE = "position: absolute; top: 50px; left: 50px; 16 z-index: 3">Positioned Text</H1> 17<IMG SRC = "circle.gif" STYLE = "position: absolute; top: 25px; 18 left: 100px; z-index: 2"> 19 20</BODY> 21</HTML>
  • 23.
  • 24.
    6 Positioning Elements(II) • CSS position property (cont.) – Relative positioning • Browser lays out the element on the page • Then offsets the element by specified top, bottom, left or right values • Keeps elements in the general flow of elements on the page • Be careful to avoid unintentionally overlapping text
  • 25.
    Outline 1. relative positioning 1<!DOCTYPE htmlPUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig 14.7: positioning2.html --> 5<!-- Relative positioning of elements --> 6 7<HEAD> 8<TITLE>Relative Positioning</TITLE> 9 10<STYLE TYPE = "text/css"> 11 12 P { font-size: 2em; 13 font-family: Verdana, Arial, sans-serif } 14 15 SPAN { color: red; 16 font-size: .6em; 17 height: 1em } 18 19 .super { position: relative; 20 top: -1ex } 21 22 .sub { position: relative; 23 bottom: -1ex } 24 25 .shiftl { position: relative; 26 left: -1ex } 27 28 .shiftr { position: relative; 29 right: -1ex } 30</STYLE> 31</HEAD> 32 33<BODY>
  • 26.
    Outline 2. Page renderedby browser 34 35<P> 36Text text text text <SPAN CLASS = "super">superscript</SPAN> 37text text text text <SPAN CLASS = "sub">subscript</SPAN> 38text Text text <SPAN CLASS = "shiftl">left-shifted</SPAN> 39text text text <SPAN CLASS = "shiftr">right-shifted</SPAN> 40Text text text text text 41</P> 42 43</BODY> 44</HTML>
  • 27.
    7 Backgrounds • background-imageproperty – Specifies the URL • background-position property – Positions the image on the page – Top, bottom, center, left or right – Ex. background-position: 50% 30px; • Position image centered vertically (50% of the distance across the screen) and 30 pixels from the top • background-repeat property controls tiling – no-repeat, repeat, x-repeat, y-repeat • background-attachment property – fixed: scrolling the browser window will not move the image – scroll: moves the image as the user scrolls the window (default) • text-indent property – Indents first line of text by specified amount
  • 28.
    7 Backgrounds (II) •font-weight property – specifies the “boldness” of affected text – bold – normal – bolder – lighter – Multiples of 100 from 100 to 900 • font-style property – none – italic – oblique • Will default to italic if system does not have separate font file for oblique
  • 29.
    7 Backgrounds (III) •SPAN element: generic grouping element – Does not apply any inherent formatting – Main use is to apply styles or ID attributes to block of text – Inline element • DIV element – Similar to SPAN, but block-level element • Displayed on own line with margins above and below
  • 30.
    Outline 1. Use CSSto add a background image 1.1background-image property 1.2background- position property 1.3background- repeat property 1.4background- attachment property 1.5text-indent property 1.6font-weight property 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig. 14.8: background.html --> 5<!-- Adding background images and indentation --> 6 7<HEAD> 8<TITLE>Background Images</TITLE> 9 10<STYLE TYPE = "text/css"> 11 12 BODY { background-image: url(watermark.gif); 13 background-position: bottom right; 14 background-repeat: no-repeat; 15 background-attachment: fixed } 16 17 P { font-size: 2em; 18 color: #AA5588; 19 text-indent: 1em; 20 font-family: Arial, sans-serif } 21 22 .dark { font-weight: bold } 23 24</STYLE> 25</HEAD> 26 27<BODY> 28 29<P> 30This is some sample text to fill in the page. 31<SPAN CLASS = "dark">This is some sample
  • 31.
    Outline 2. Page renderedby browser 32 text to fill in the page.</SPAN> 33 This is some sample text to fill in the page. 34 This is some sample text to fill in the page. 35 This is some sample text to fill in the page. 36 This is some sample text to fill in the page. 37 </P> 38 39 </BODY> 40 </HTML>
  • 32.
    8 Element Dimensions •width property – Ex. <DIV STYLE = “width: 20%”> • height property – Relative and absolute lengths for width and height properties • text-align property – center, left or right • overflow property – scroll adds scrollbars if the text overflows the boundaries
  • 33.
    Outline 1. Dimensions inDIV element 1.1width property 1.2height property 1.3text-align property 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig. 14.9: width.html --> 5<!-- Setting box dimensions and aligning text --> 6 7<HEAD> 8<TITLE>Box Dimensions</TITLE> 9<STYLE TYPE = "text/css"> 10 11 DIV { background-color: #FFCCFF; 12 margin-bottom: .5em } 13 14</STYLE> 15</HEAD> 16 17<BODY> 18 19<DIV STYLE = "width: 20%">Here is some 20text that goes in a box which is 21set to stretch across twenty precent 22of the width of the screen.</DIV> 23 24<DIV STYLE = "width: 80%; text-align: center"> 25Here is some CENTERED text that goes in a box 26which is set to stretch across eighty precent of 27the width of the screen.</DIV> 28 29<DIV STYLE = "width: 20%; height: 30%; overflow: scroll"> 30This box is only twenty percent of 31the width and thirty percent of the height. 32What do we do if it overflows? Set the 33overflow property to scroll!</DIV>
  • 34.
    Outline 2. Page renderedby browser 34 35 </BODY> 36 </HTML>
  • 35.
    9 Text Flowand the Box Model • Floating – Allows you to move an element to one side of the screen – Other content in the document flows around the floated element – Float to the left or right of a document • Each block-level element is “boxed” – Box model allows properties of box to be easily adjusted • Padding • Border • Margins
  • 36.
    Box model forblock-level elements Margin Border Padding
  • 37.
    Outline 1. Floating elements 2.Setting box dimensions 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig. 14.10: floating.html --> 5<!-- Floating elements and element boxes --> 6 7<HEAD> 8<TITLE>Flowing Text Around Floating Elements</TITLE> 9<STYLE TYPE = "text/css"> 10 11 DIV { background-color: #FFCCFF; 12 margin-bottom: .5em; 13 font-size: 1.5em; 14 width: 50% } 15 16</STYLE> 17</HEAD> 18 19<BODY> 20 21<DIV STYLE = "text-align: center">Centered text</DIV> 22<DIV STYLE = "text-align: right">Right-aligned text</DIV> 23 24<DIV STYLE = "float: right; margin: .5em">This is some floated 25text, floated text, floated text, floated text.</DIV> 26<P> 27Here is some flowing text, flowing text, flowing text. 28Here is some flowing text, flowing text, flowing text. 29Here is some flowing text, flowing text, flowing text. 30Here is some flowing text, flowing text, flowing text. 31Here is some flowing text, flowing text, flowing text. 32Here is some flowing text, flowing text, flowing text. 33Here is some flowing text, flowing text, flowing text.
  • 38.
    Outline 34Here is someflowing text, flowing text, flowing text. 35</P> 36 37<P><DIV STYLE ="float: right; padding: .5em">This is some floated 38text, floated text, floated text, floated text.</DIV> 39Here is some flowing text, flowing text, flowing text. 40Here is some flowing text, flowing text, flowing text. 41Here is some flowing text, flowing text, flowing text. 42<SPAN STYLE = "clear: right">Here is some unflowing text. 43Here is some unflowing text.</SPAN> 44</P> 45 46</BODY> 47</HTML> Interrupt flow of text around a floated element by setting the clear property to the same direction the element is floated
  • 39.
    Floating elements, aligningtext and setting box dimensions .5 em margin .5 em padding
  • 40.
    9 Text Flowand the Box Model (II) • Box model border – border-width – border-style • E.g. border-top-style • none • hidden • dotted • dashed • solid • double • groove • ridge • inset • outset – border-color • E.g. border-left-color
  • 41.
    Outline 1. Box modelborder properties 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig. 14.12: borders.html --> 5<!-- Setting borders of an element --> 6 7<HEAD> 8<TITLE>Borders</TITLE> 9<STYLE TYPE = "text/css"> 10 11 BODY { background-color: #CCFFCC } 12 13 DIV { text-align: center; 14 margin-bottom: 1em; 15 padding: .5em } 16 17 .thick { border-width: thick } 18 19 .medium { border-width: medium } 20 21 .thin { border-width: thin } 22 23 .groove { border-style: groove } 24 25 .inset { border-style: inset } 26 27 .outset { border-style: outset } 28 29 .red { border-color: red } 30 31 .blue { border-color: blue } 32 33</STYLE>
  • 42.
    Outline 34</HEAD> 35 36<BODY> 37 38<DIV CLASS ="thick groove">This text has a border</DIV> 39<DIV CLASS = "medium groove">This text has a border</DIV> 40<DIV CLASS = "thin groove">This text has a border</DIV> 41 42<P CLASS = "thin red inset">A thin red line...</P> 43<P CLASS = "medium blue outset">And a thicker blue line</P> 44 45</BODY> 46</HTML>
  • 43.
  • 44.
    Outline 1. Creating borders withborder-style property 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig. 14.13: borders2.html --> 5<!-- Various border-styles --> 6 7<HEAD> 8<TITLE>Borders</TITLE> 9 10<STYLE TYPE = "text/css"> 11 12 BODY { background-color: #CCFFCC } 13 14 DIV { text-align: center; 15 margin-bottom: .3em; 16 width: 50%; 17 position: relative; 18 left: 25%; 19 padding: .3em } 20</STYLE> 21</HEAD> 22 23<BODY> 24 25<DIV STYLE = "border-style: solid">Solid border</DIV> 26<DIV STYLE = "border-style: double">Double border</DIV> 27<DIV STYLE = "border-style: groove">Groove border</DIV> 28<DIV STYLE = "border-style: ridge">Ridge border</DIV> 29<DIV STYLE = "border-style: inset">Inset border</DIV> 30<DIV STYLE = "border-style: outset">Outset border</DIV> 31</BODY> 32</HTML>
  • 45.
  • 46.
    10 User StyleSheets • Important issue when adding style sheets: What kind of users will be using your site? • Users can define their own user style sheets • CSS1 specification gave precedence to author styles over user styles but current CSS2 gives user rules precedence • Use relative measurements • Add a user style sheet in IE5 – Tools menu  Internet Options… • Accessibility… – Check Format documents using my style sheet
  • 47.
    Outline 1.1Use em measurement to modifytext size 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<HTML> 3 4<!-- Fig. 14.14: user.html --> 5<!-- User styles --> 6 7<HEAD> 8<TITLE>User Styles</TITLE> 9 10<STYLE TYPE = "text/css"> 11 12 .note { font-size: 1.5em } 13 14</STYLE> 15</HEAD> 16 17<BODY> 18 19<P>Thanks for visiting my Web site. I hope you enjoy it.</P> 20<P CLASS = "note">Please Note: This site will be moving soon. 21Please check periodically for updates.</P> 22 23</BODY> 24</HTML>
  • 48.
    Modifying text sizewith the em measurement
  • 49.
    Adding a userstyle sheet in Internet Explorer 5
  • 50.
    Outline 1. A sampleuser style sheet 2. A Web page with user styles enabled 1BODY { font-size: 20pt; 2 background-color: #CCFFCC } 3A { color: red }

Editor's Notes

  • #2 Abridged version of slides to accompany Internet & WWW: How To Program by Dietel, Dietel, & Nieto (1st ed.), Published by Prentice-Hall.