Cascading Style Sheets: Sergio Luján Mora
Cascading Style Sheets: Sergio Luján Mora
CSS
Cascading Style Sheets
Content
Introduction Linking HTML and CSS Rules, selectors, and properties Text properties Background Links Box model Layout
Introduction
CSS (Cascading Style Sheets):
A style sheet is a set of instructions each of which tells a browser how to draw a particular element on a page HTML documents are a collection of elements arranged in a hierarchy
Introduction
Hierarchy inheritance:
If you apply style to an element (parent) which contains other elements (children) then this will be inherited by the elements inside
Introduction
Rules have two parts: a selector and a declaration
The selector tells a browser which elements in a page will be affected by the rule. There are a number of different types of selector. The declaration tells the browser which set of properties to apply. There are many different properties.
Introduction
<html> <head><title>CSS example</title></head> <body> b d <h1>University of Alicante</h1> <p> <img src="logo.png" /> <a href="http://www.ua.es/">University of Alicante</a> </p> <div> <h1>Department of Software and Computing Systems</h1> <p> The Deparment of Software and Computing Systems teaches the following courses: <em>Programming, Object-Oriented Programming, Web Programming, and Databases and Software Engineering</em>. </p> <h2>Teaching Staff</h2> </div> </body> </html>
Introduction
<style type="text/css"> h1 {color: blue;} h2 {color: red;} p {font-size: 1.4em;} </style>
Exercise
Give color green for the paragraph
Exercise - Solution
One solution:
p {font {font-size: size: 1 1.4em;} 4em;} p {color: green;}
Also (better):
p {font-size: 1.4em; color: green;}
Introduction
Some examples:
body {background: white; i color: black; font-size: 15px;} h1 {background: blue; font-size: 30px;} p {background: yellow;} strong {background: red;} em {background: red; color: yellow;}
Introduction
Comments (1 or more lines):
/* */
Example:
/* Paragraph */ p { text align: center; text-align: color: black; font-family: Arial; }
Introduction
Different versions:
CSS1: CSS level 1. 1996.
http://www.w3.org/TR/REC-CSS1
Introduction
More information:
W3C: http://www.w3.org/ W3 Schools: http://www.w3schools.com/
Internal (embedded):
<head> <style type="text/css" media="screen"> p {text-indent: 10pt} </style> </head>
Inline:
<p style="text-indent: 10pt">indented paragraph</p>
10
Exercise
Change the previous example: link the web page to t an external t l style t l sheet h t
Internal:
When the style sheet is used for only one web page
Inline:
When the style is used for only one HTML element
11
href:
Tells the browser where to locate the style sheet, with either a relative or absolute URL
rel:
Tells the browser what to expect
stylesheet alternate stylesheet
12
13
14
15
16
Exercise
Write a new webpage Give Gi a b background k d color l (li (light ht gray) ) and d a color l (dark (d k blue) to the whole page
Selector: html or body Property: background-color
Value: #999999
Property: color
Value: #0000AA
Exercise - Solution
html { background-color: background color: #999999; color: #0000AA; }
Tips:
The style sheet is easier to read if you put each property on a new line it's very easy to forget semi-colons. Always put that extra one on the last property in a statement. You won't forget to do it when you add a new property later on
17
The form of a class selector is very simple, and it would select the specified element with the class attribute class-name
p.footer { color: blue; }
18
Exercise
Write a new webpage with three paragraphs Define D fi th three classes l f for th the th three paragraphs: h
< p class="normal"> Color dark blue < p class="important"> Color red, background color yellow < p class="extra"> Color green, background color gold
19
Exercise - Solution
<html> <head><title>Three paragraphs</title> <style type="text/css"> .normal {color: #0000AA;} .important {color: red; background-color: yellow;} .veryimportant {color: yellow; background-color: red;} </style> <body> y <p class="normal"> This is the first paragraph. Bla, bla, bla, bla.</p> <p class="important"> This is the second paragraph. Bla, bla, bla, bla.</p> <p class="veryimportant"> This is the third paragraph. Bla, bla, bla, bla.</p> </body></html>
20
Text properties
background-color: background color of element color: color of text
Text properties
Colors:
Name of color red rgb(x,x,x) rgb(255,0,0) rgb(y%, y%, y%) rgb(100%,0%,0%) #rrggbb #ff0000 #rgb = #rrggbb #f00 = #ff0000
21
Text properties
font-family: specifies a list of one or more fonts using the family name of each
The font names are separated by commas A browser then uses the first font in the list that is installed on its system At the end of that list you should always put one of five generic font names:
serif (e.g. Times) sans-serif (e.g. Helvetica) cursive (e.g. Zapf-Chancery) fantasy (e.g. Western) monospace (e.g. Courier)
If you want to use a font with more than a single word name make sure you put it between quote marks, like this: "Times New Roman"
Text properties
font-size: can take what is referred to in CSS as length values
22
Text properties
Units:
%: percentage in: inches cm: centimeters mm: millimeters em: equal to the current size of text ex: equal to letter x height pt: point (1 pt = 1/72 inches) pc: pica (1 pc = 12 points) px: pixels
Text properties
Units:
Keywords:
xx-small, x-small, small, medium, large, x-large, xx-large smaller, larger
Absolute:
in, cm, mm, pt, pc, px
Relative:
%, em, ex
23
Text properties
Best unit: em
If you set the font-size using em units, they will always remain relative to the main text on the page, whatever that might be For example, if you set <h1> to 2em, it will be twice as big as the rest of the text on the page
Text properties
font-style: sets the style of the font
normal: default, normal font italic: an italic font oblique: an oblique font
24
Text properties
font-weight: controls the boldness of text
normal bold bolder lighter 100, 200, ..., 900
Text properties
text-align: controls the justification of text
left right center justify
25
Text properties
text-decoration: for underlining and striking through text
none underline overline line through line-through blink
Text properties
text-transform: controls the letters in an element
none capitalize: each word in a text starts with a capital letter uppercase pp lowercase
26
Text properties
letter-spacing: controls the spacing between characters word-spacing: controls the spacing between words line-height: sets the distance between lines
Exercise
Use the different text properties:
Add some special styles to make the headings stand out more from the main text Make the text in the paragraphs look more clean and attractive
27
Background
background-color: defines the backgroud color l background-image: puts an image in the background
background-image: url(logo.png);
background-repeat: defines how the b k backgound di image i is going i t to b be repeated t d background-position: defines the position of the background image
Background
background-repeat:
repeat: the image will tile to fill the whole element repeat-x: the image will only repeat horizontally across the element repeat-y: the image will only repeat vertically down the element no-repeat: only a single instance of the element will appear
28
Exercise
Create a new web page Put an image as background image Try the different repeat values
Background
background-position: specify 2 values, the first for where you want the image to be horizontally, the second for where it will be vertically
Length values Keyword values: top, bottom, left, right, center
29
Background
Example:
background-position: center center - places the image right in the center of the element, both horizontally and vertically background-position: top left places the image in the top left corner background-position: right bottom - places the image in the bottom right corner
Exercise
Create a new web page Put an image as background image in the center of the web page
30
Links
Links can have four different states:
link: this is the normal state visited: when a browser has visited that destination recently hover: while the cursor is over the link active: while the link is being clicked
Links
Pseudo-classes:
a:link {...} a:visited {...} a:hover {...} a:active {...}
31
Exercise
Give links in both their normal and visited state a backgroundcolor of #95b7cd and make their text color the same as the regular text on the page A user cant tell whether a link is to a page they have recently viewed or not. Give links in their hover state a background-color of #aaddee Give links in their active state a background-color of #3cc7f0
Exercise - Solution
a:link { color: #666666; background-color: } a:visited { color: #666666; background-color: } a:hover { background-color: g } a:active { background-color: } #95b7cd;
#95b7cd;
#aaddee;
#3cc7f0;
Roll over and click the links to see the effect of the hover and active states
32
Exercise
Most browsers have a default setting for links, which is to underline them How can we change this? How can we draw a line through the text of visited links?
Exercise - Solution
a:link { ... text-decoration: none; }
33
Box model
Boxes: each element of the web page is represented t d by b a b box
Box model
margin is the distance between the edge of an element and its adjacent elements padding is the distance between the edge of an element and its content
34
Box model
padding, border and margin are divided i t four into f edges: d top, t bottom, b tt left l ft y right i ht Therefore, we have: border-left, border-right, border-top and borderbottom (and the same for margin and padding) padding ddi , border b d and d margin i apply l th the values to all four edges
Box model
Borders can be applied either to all edges of an element, l t or each h edge d i individually di id ll There are three characteristics of a border you can control:
Its style, using values like
solid dotted dashed double
Its width, using all the usual length values Its color, using the color values
35
Exercise
Create a new web page Write W it four f paragraphs h Apply a different border style and background to each paragraph
36
Exercise - Solution
.p1 { background-color: #999999; border: solid 5px green; } .p2 { background-color: #aa6666; border: dotted 5px green; } .p3 { background-color: g #66aa66; border: dashed 5px green; } .p4 { background-color: #6666aa; border: double 5px green; }
Exercise 1
Read exercise document: Curriculum vitae
37
Layout
<span> and <div> are the main building bl k used blocks di in CSS page l layouts t They are simply generic HTML block element
span: inline div: block
You can wrap it around the different blocks of content you want to position i i on your page
Layout
<span> and <div> need unique id attributes tt ib t so that th t we can identify id tif th them and d give them positioning properties in the style sheet ids must be unique in any single HTML document, otherwise HTML document is not valid
38
Layout
Example:
HTML:
<div id="header"> ... </div>
CSS:
#header {background-color: {background color: gray; color: red}
Layout
Basic three column layout with a navigation bar (navbar) on the left and a sidebar on the right
It uses a combination of static, relative and absolute positioning
39
Layout
<div id="header"></div> <div id="content"> id content > <div id="navbar"></div> <div id="main-text"></div> <div id="sidebar"></div> </div>
Layout
Both #header and #main-text are going to be positioned statically
They simply flow down the page, one after the other, in the same order as they occur in the XHTML
40
Layout
body { margin: 0; background-color: #aaaaaa; text-align: center; } #header { background-color: #0000ff; color: #ffffff; text-align: g center; font-size: 2em; } #content { position: relative; }
Layout
#navbar { position: absolute; top: 0; left: 0; width: 198px; background-color: #ff0000; } #main-text { margin-left: g 198px; p margin-right: 198px; background-color: #ffffff; }
41
Layout
#sidebar { position: absolute; top: 0; right: 0; width: 198px; background-color: #00ff00; }
42
Exercise 2
Read exercise document: 2-columns layout f curriculum for i l vitae it
43