HTML CSS JavaScript Basics Useful (1) 1
HTML CSS JavaScript Basics Useful (1) 1
www.telerik.com
Table of Contents
1. Introduction to HTML
How the Web Works?
What is a Web Page?
My First HTML Page
Basic Tags: Hyperlinks, Images, Formatting
Headings and Paragraphs
2. HTML in Details
The <!DOCTYPE> Declaration
The <head> Section: Title, Meta, Script, Style
2
Table of Contents (2)
2. HTML in Details
The <body> Section
Text Styling and Formatting Tags
Hyperlinks: <a>, Hyperlinks and Sections
Images: <img>
Lists: <ol>, <ul> and <dl>
3. The <div> and <span> elements
4. HTML Tables
5. HTML Forms
3
How the Web Works?
WWW use classical client / server architecture
HTTP is text-based request-response protocol
HTTP
Page request
HTTP
Server response
Microsoft FrontPage
Macromedia Dreamweaver
Netscape Composer
Microsoft Word
Visual Studio 6
HTML Basics
Text, Images, Tables, Forms
HTML Structure
8
HTML Code Formatting
The HTML source code should be formatted to
increase readability and facilitate debugging.
Every block element should start on a new line.
Every nested (block) element should be indented.
Browsers ignore multiple whitespaces in the page
source, so formatting is harmless.
For performance reasons, formatting can be
sacrificed
9
First HTML Page
test.html
<!DOCTYPE HTML>
<html>
<head>
<title>My First HTML Page</title>
</head>
<body>
<p>This is some text...</p>
</body>
</html>
10
First HTML Page: Tags
<!DOCTYPE HTML>
<html>
Opening tag
<head>
<title>My First HTML Page</title>
</head>
<body> Closing tag
<p>This is some text...</p>
</body>
</html>
<!DOCTYPE HTML>
HTML header
<html>
<head>
<title>My First HTML Page</title>
</head>
<body>
<p>This is some text...</p>
</body>
</html>
12
First HTML Page: Body
<!DOCTYPE HTML>
<html>
<head>
<title>My First HTML Page</title>
</head>
<body>
<p>This is some text...</p>
</body>
</html>
HTML body
13
Some Simple Tags
Hyperlink Tags
<a href="http://www.telerik.com/"
title="Telerik">Link to Telerik Web site</a>
Image Tags
15
Some Simple Tags – Example (2)
some-tags.html
<!DOCTYPE HTML>
<html>
<head>
<title>Simple Tags Demo</title>
</head>
<body>
<a href="http://www.telerik.com/" title=
"Telerik site">This is a link.</a>
<br />
<img src="logo.gif" alt="logo" />
<br />
<strong>Bold</strong> and <em>italic</em> text.
</body>
</html>
16
Tags Attributes
Tags can have attributes
<h1>Heading 1</h1>
<h2>Sub heading 2</h2>
<h3>Sub heading 3</h3>
Paragraph Tags
<p>This is my first paragraph</p>
<p>This is my second paragraph</p>
<div style="background:skyblue">
This is a div</div>
</body>
</html>
19
Headings and Paragraphs –
Example (2)
headings.html
<!DOCTYPE HTML>
<html>
<head><title>Headings and paragraphs</title></head>
<body>
<h1>Heading 1</h1>
<h2>Sub heading 2</h2>
<h3>Sub heading 3</h3>
<div style="background:skyblue">
This is a div</div>
</body>
</html>
20
Introduction to HTML
HTML Document Structure in Depth
Preface
It is important to have the correct vision and
attitude towards HTML
HTML is only about structure, not appearance
Browsers tolerate invalid HTML code and parse
errors – you should not.
22
The <!DOCTYPE> Declaration
HTML documents must start with a document
type definition (DTD)
It tells web browsers what type is the served code
Possible versions: HTML 4.01, XHTML 1.0
(Transitional or Strict), XHTML 1.1, HTML 5
Example:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
23
HTML vs. XHTML
XHTML is more strict than HTML
Tags and attribute names must be in lowercase
All tags must be closed (<br/>, <img/>) while
HTML allows <br> and <img> and implies
missing closing tags (<p>par1 <p>par2)
XHTML allows only one root <html> element
(HTML allows more than one)
24
XHTML vs. HTML (2)
Many element attributes
are deprecated in
XHTML, most are moved to CSS
Attribute minimization is forbidden, e.g.
<input type="checkbox" checked>
25
The <head> Section
Contains information that doesn’t show
directly on the viewable page
Starts after the <!doctype> declaration
Begins with <head> and ends with </head>
<meta>
<script>
<style>
<!–- comments --> 26
<head> Section: <title> tag
Title should be placed between <head> and
</head> tags
<title>Telerik Academy – Winter Season 2009/2010
</title>
28
<head> Section: <script>
The <script> element is used to embed
scripts into an HTML document
Script are executed in the client's Web browser
Scripts can live in the <head> and in the <body>
sections
Supported client-side scripting languages:
JavaScript (it is not Java!)
VBScript
JScript
29
The <script> Tag – Example
<!DOCTYPE HTML> scripts-example.html
<html>
<head>
<title>JavaScript Example</title>
<script type="text/javascript">
function sayHello() {
document.write("<p>Hello World!<\/p>");
}
</script>
</head>
<body>
<script type=
"text/javascript">
sayHello();
</script>
</body>
</html>
30
<head> Section: <style>
The <style> element embeds formatting
information (CSS styles) into an HTML page
<html> style-example.html
<head>
<style type="text/css">
p { font-size: 12pt; line-height: 12pt; }
p:first-letter { font-size: 200%; }
span { text-transform: uppercase; }
</style>
</head>
<body>
<p>Styles demo.<br />
<span>Test uppercase</span>.
</p>
</body>
</html>
31
Comments: <!-- --> Tag
Comments can exist anywhere between the
<html></html> tags
Comments start with <!-- and end with -->
32
<body> Section: Introduction
The <body> section describes the viewable
portion of the page
Starts after the <head> </head> section
Begins with <body> and ends with </body>
<html>
<head><title>Test page</title></head>
<body>
<!-- This is the Web page body -->
</body>
</html>
33
Text Formatting
Text formatting tags modify the text between
the opening tag and the closing tag
Ex. <b>Hello</b> makes “Hello” bold
<b></b> bold
<i></i> italicized
<u></u> underlined
<sup></sup> Samplesuperscript
<sub></sub> Samplesubscript
<strong></strong> strong
<em></em> emphasized
<pre></pre> Preformatted text
<blockquote></blockquote> Quoted text block
<del></del> Deleted text – strike through
34
Text Formatting – Example
text-formatting.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>Notice</h1>
<p>This is a <em>sample</em> Web page.</p>
<p><pre>Next paragraph:
preformatted.</pre></p>
<h2>More Info</h2>
<p>Specifically, we’re using XHMTL 1.0 transitional.<br />
Next line.</p>
</body>
</html>
35
Text Formatting – Example (2)
text-formatting.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>Notice</h1>
<p>This is a <em>sample</em> Web page.</p>
<p><pre>Next paragraph:
preformatted.</pre></p>
<h2>More Info</h2>
<p>Specifically, we’re using XHMTL 1.0 transitional.<br />
Next line.</p>
</body>
</html>
36
Hyperlinks: <a> Tag
Link to a document calledform.html on the
same server in the same directory:
<a href="form.html">Fill Our Form</a>
<a href="mailto:bugs@example.com?subject=Bug+Report">
Please report bugs here (by e-mail only)</a>
38
Hyperlinks: <a> Tag (3)
Link to a document called apply-now.html
On the same server, in same directory
Using an image as a link button:
<a href="apply-now.html"><img
src="apply-now-button.jpg" /></a>
40
Hyperlinks – Example
hyperlinks.html
<a href="form.html">Fill Our Form</a> <br />
<a href="../parent.html">Parent</a> <br />
<a href="stuff/cat.html">Catalog</a> <br />
<a href="http://www.devbg.org" target="_blank">BASD</a>
<br />
<a href="mailto:bugs@example.com?subject=Bug
Report">Please report bugs here (by e-mail only)</a>
<br />
<a href="apply-now.html"><img src="apply-now-button.jpg”
/></a> <br />
<a href="../english/index.html">Switch to English
version</a> <br />
41
Hyperlinks – Example (2)
hyperlinks.html
<a href="form.html">Fill Our Form</a> <br />
<a href="../parent.html">Parent</a> <br />
<a href="stuff/cat.html">Catalog</a> <br />
<a href="http://www.devbg.org" target="_blank">BASD</a>
<br />
<a href="mailto:bugs@example.com?subject=Bug
Report">Please report bugs here (by e-mail only)</a>
<br />
<a href="apply-now.html"><img src="apply-now-button.jpg”
/></a> <br />
<a href="../english/index.html">Switch to English
version</a> <br />
42
Links to the Same Document –
Example
links-to-same-document.html
<h1>Table of Contents</h1>
<p><a href="#section1">Introduction</a><br />
<a href="#section2">Some background</A><br />
<a href="#section2.1">Project History</a><br />
...the rest of the table of contents...
<!-- The document text follows here -->
<h2 id="section1">Introduction</h2>
... Section 1 follows here ...
<h2 id="section2">Some background</h2>
... Section 2 follows here ...
<h3 id="section2.1">Project History</h3>
... Section 2.1 follows here ...
43
Links to the Same Document –
Example (2)
links-to-same-document.html
<h1>Table of Contents</h1>
<p><a href="#section1">Introduction</a><br />
<a href="#section2">Some background</A><br />
<a href="#section2.1">Project History</a><br />
...the rest of the table of contents...
<!-- The document text follows here -->
<h2 id="section1">Introduction</h2>
... Section 1 follows here ...
<h2 id="section2">Some background</h2>
... Section 2 follows here ...
<h3 id="section2.1">Project History</h3>
... Section 2.1 follows here ...
44
Images: <img> tag
Inserting an image with <img> tag:
<img src="/img/basd-logo.png">
Image attributes:
Example:
<img src="./php.png" alt="PHP Logo" />
45
Miscellaneous Tags
<hr />: Draws a horizontal rule (line):
<hr size="5" width="70%" />
<center></center>: Deprecated!
<center>Hello World!</center>
<font></font>: Deprecated!
46
Miscellaneous Tags – Example
misc.html
<html>
<head>
<title>Miscellaneous Tags Example</title>
</head>
<body>
<hr size="5" width="70%" />
<center>Hello World!</center>
<font size="3" color="blue">Font3</font>
<font size="+4" color="blue">Font+4</font>
</body>
</html>
47
Ordered Lists: <ol> Tag
Create an Ordered List using <ol></ol>:
<ol type="1">
<li>Apple</li>
<li>Orange</li>
<li>Grapefruit</li>
</ol>
<ul type="disc">
<li>Apple</li>
<li>Orange</li>
<li>Grapefruit</li>
</ul>
<dl>
<dt>HTML</dt>
<dd>A markup lang…</dd>
</dl>
51
HTML Special Characters
Symbol Name HTML Entity Symbol
Copyright Sign © ©
Registered Trademark Sign ® ®
Trademark Sign ™ ™
Less Than < <
Greater Than > >
Ampersand & &
Non-breaking Space
Em Dash — —
Quotation Mark " "
Euro € €
British Pound £ £
Japanese Yen ¥ ¥
52
Special Characters – Example
<p>[>> Welcome special-chars.html
<<]</p>
<p>►I have following cards:
A♣, K♦ and 9♥.</p>
<p>►I prefer hard rock ♫
music ♫</p>
<p>© 2006 by Svetlin Nakov & his
team</p>
<p>Telerik Academy™</p>
53
Special Chars – Example (2)
<p>[>> Welcome special-chars.html
<<]</p>
<p>►I have following cards:
A♣, K♦ and 9♥.</p>
<p>►I prefer hard rock ♫
music ♫</p>
<p>© 2006 by Svetlin Nakov & his
team</p>
<p>Telerik Academy™</p>
54
Using <DIV> and <SPAN>
Block and Inline Elements
Block and Inline Elements
Block elements add a line break before and
after them
<div> is a block element
Other block elements are <table>, <hr>,
headings, lists, <p> and etc.
Inline elements don’t break the text before
and after them
<span> is an inline element
Most HTML elements are inline, e.g. <a>
56
The <div> Tag
<div> creates logical divisions within a page
Block style element
Example:
div-and-span.html
<div style="font-size:24px; color:red">DIV
example</div>
<p>This one is <span style="color:red; font-
weight:bold">only a test</span>.</p>
57
The <span> Tag
Inline style element
span.html
<p>This one is <span style="color:red; font-
weight:bold">only a test</span>.</p>
<p>This one is another <span style="font-size:32px;
font-weight:bold">TEST</span>.</p>
58
HTML Tables
HTML Tables
Tables represent tabular data
A table consists of one or several rows
Each row has one or more columns
Tables
comprised of several core tags:
<table></table>: begin / end the table
<tr></tr>: create a table row
<td></td>: create tabular data (cell)
Tables should not be used for layout. Use CSS
floats and positioning styles instead
60
HTML Tables (2)
Start and end of a table
<table> ... </table>
61
Simple HTML Tables – Example
<table cellspacing="0" cellpadding="5">
<tr>
<td><img src="ppt.gif"></td>
<td><a href="lecture1.ppt">Lecture 1</a></td>
</tr>
<tr>
<td><img src="ppt.gif"></td>
<td><a href="lecture2.ppt">Lecture 2</a></td>
</tr>
<tr>
<td><img src="zip.gif"></td>
<td><a href="lecture2-demos.zip">
Lecture 2 - Demos</a></td>
</tr>
</table>
62
Simple HTML Tables – Example (2)
<table cellspacing="0" cellpadding="5">
<tr>
<td><img src="ppt.gif"></td>
<td><a href="lecture1.ppt">Lecture 1</a></td>
</tr>
<tr>
<td><img src="ppt.gif"></td>
<td><a href="lecture2.ppt">Lecture 2</a></td>
</tr>
<tr>
<td><img src="zip.gif"></td>
<td><a href="lecture2-demos.zip">
Lecture 2 - Demos</a></td>
</tr>
</table>
63
Complete HTML Tables
Table rows
split into three semantic sections:
header, body and footer
<thead> denotes table header and contains
<th> elements, instead of <td> elements
<tbody> denotes collection of table rows that
contain the very data
<tfoot> denotes table footer but comes
BEFORE the <tbody> tag
<colgroup> and <col> define columns (most
often used to set column widths)
64
Complete HTML Table: Example
<table>
<colgroup>
columns
<col style="width:100px" /><col />
</colgroup> th
<thead>
header
<tr><th>Column 1</th><th>Column 2</th></tr>
</thead>
<tfoot>
footer
<tr><td>Footer 1</td><td>Footer 2</td></tr>
</tfoot>
<tbody>
Last comes the body (data)
<tr><td>Cell 1.1</td><td>Cell 1.2</td></tr>
<tr><td>Cell 2.1</td><td>Cell 2.2</td></tr>
</tbody>
</table>
65
Complete HTML Table:
By default, header text Example (2)
<table> is bold and centered. table-full.html
<colgroup>
<col style="width:200px" /><col />
</colgroup>
<thead>
<tr><th>Column 1</th><th>Column 2</th></tr>
</thead>
<tfoot>
<tr><td>Footer 1</td><td>Footer 2</td></tr>
</tfoot>
<tbody>
<tr><td>CellAlthough the footer
1.1</td><td>Cell is
1.2</td></tr>
<tr><td>Cell before the data in 2.2</td></tr>
2.1</td><td>Cell the
</tbody> code, it is displayed last
</table>
66
Nested Tables
Table data “cells” (<td>) can contain nested
tables (tables within tables):
<table> nested-tables.html
<tr>
<td>Contact:</td>
<td>
<table>
<tr>
<td>First Name</td>
<td>Last Name</td>
</tr>
</table>
</td>
</tr>
</table>
67
Cell Spacing and Padding
Tables have two important attributes:
cellspacing cellpadding
69
Cell Spacing and Padding –
Example (2)
table-cells.html
<html>
<head><title>Table Cells</title></head>
<body>
<table cellspacing="15" cellpadding="0">
<tr><td>First</td>
<td>Second</td></tr>
</table>
<br/>
<table cellspacing="0" cellpadding="10">
<tr><td>First</td><td>Second</td></tr>
</table>
</body>
</html>
70
Column and Row Span
Table cells have two important attributes:
colspan rowspan
colspan="1" colspan="1" rowspan="2" rowspan="1"
colspan="2" rowspan="1"
Defines how Defines how
many columns many rows the
the cell occupies cell occupies
71
Column and Row Span – Example
table-colspan-rowspan.html
<table cellspacing="0">
<tr class="1"><td>Cell[1,1]</td>
<td colspan="2">Cell[2,1]</td></tr>
<tr class=“2"><td>Cell[1,2]</td>
<td rowspan="2">Cell[2,2]</td>
<td>Cell[3,2]</td></tr>
<tr class=“3"><td>Cell[1,3]</td>
<td>Cell[2,3]</td></tr>
</table>
72
Column and Row Span –
table-colspan-rowspan.html
Example (2)
<table cellspacing="0">
<tr class="1"><td>Cell[1,1]</td>
<td colspan="2">Cell[2,1]</td></tr>
<tr class=“2"><td>Cell[1,2]</td>
<td rowspan="2">Cell[2,2]</td>
<td>Cell[3,2]</td></tr>
<tr class=“3"><td>Cell[1,3]</td>
<td>Cell[2,3]</td></tr>
Cell[1,1] Cell[2,1]
</table>
Cell[1,2] Cell[3,2]
Cell[2,2]
Cell[1,3] Cell[2,3]
73
HTML Forms
Entering User Data from a Web Page
HTML Forms
Forms are the primary method for gathering
data from site visitors
Create a form block with
<form></form>
The “method" attribute tells how
the form data should be sent –
Example: via GET or POST request
Radio buttons:
<input type="radio" name="title" value="Mr." />
78
Other Form Controls
Dropdown menus:
<select name="gender">
<option value="Value 1"
selected="selected">Male</option>
<option value="Value 2">Female</option>
<option value="Value 3">Other</option>
</select>
Submit button:
79
Other Form Controls (2)
Reset button – brings the form to its initial state
<input type="reset" name="resetBtn"
value="Reset the form" />
82
Labels
Form labels are used to associate an explanatory
text to a form field using the field's ID.
<label for="fn">First Name</label>
<input type="text" id="fn" />
85
HTML Forms – Example (3)
form.html (continued)
86
TabIndex
The tabindex HTML attribute controls the
order in which form fields and hyperlinks are
focused when repeatedly pressing the TAB key
tabindex="0" (zero) - "natural" order
If X > Y, then elements with tabindex="X" are
iterated before elements with tabindex="Y"
Elements with negative tabindex are skipped,
however, this is not defined in the standard
<input type="text" tabindex="10" />
87
HTML Frames
<frameset>, <frame> and <iframe>
HTML Frames
Frames provide a way to show multiple HTML
documents in a single Web page
The page can be split into separate views
(frames) horizontally and vertically
Frames were popular in the early ages of HTML
development, but now their usage is rejected
Frames are not supported by all user agents
(browsers, search engines, etc.)
A <noframes> element is used to provide
content for non-compatible agents.
89
HTML Frames – Demo
frames.html
<html>
<head><title>Frames Example</title></head>
<frameset cols="180px,*,150px">
<frame src="left.html" />
<frame src="middle.html" />
<frame src="right.html" />
</frameset>
</html>
iframe-demo.html
<iframe name="iframeGoogle" width="600" height="400"
src="http://www.google.com" frameborder="yes"
scrolling="yes"></iframe>
91
Cascading Style Sheets
(CSS)
Table of Contents
What is CSS?
Styling with Cascading Stylesheets (CSS)
Selectors and style definitions
Linking HTML and CSS
Fonts, Backgrounds, Borders
The Box Model
Alignment, Z-Index, Margin, Padding
Positioning and Floating Elements
Visibility, Display, Overflow
CSS Development Tools
93
CSS: A New Philosophy
Separate content from presentation!
Content Presentation
(HTML document) (CSS Document)
Title
Lorem ipsum dolor sit amet,
Bold
consectetuer adipiscing elit.
Suspendisse at pede ut purus Italics
malesuada dictum. Donec vitae
neque non magna aliquam
dictum.
Indent
• Vestibulum et odio et ipsum
• accumsan accumsan. Morbi at
• arcu vel elit ultricies porta. Proin
tortor purus, luctus non, aliquam
nec, interdum vel, mi. Sed nec
quam nec odio lacinia molestie.
Praesent augue tortor, convallis
eget, euismod nonummy, lacinia
ut, risus.
94
The Resulting Page
Title
Lorem ipsum dolor sit amet,
consectetuer adipiscing elit.
Suspendisse at pede ut purus
malesuada dictum. Donec vitae neque
non magna aliquam dictum.
• Vestibulum et odio et ipsum
• accumsan accumsan. Morbi at
• arcu vel elit ultricies porta. Proin
Tortor purus, luctus non, aliquam nec,
interdum vel, mi. Sed nec quam nec
odio lacinia molestie. Praesent augue
tortor, convallis eget, euismod
nonummy, lacinia ut, risus.
95
CSS Intro
Styling with Cascading Stylesheets
CSS Introduction
Cascading Style Sheets (CSS)
Used to describe the presentation of documents
Define sizes, spacing, fonts, colors, layout, etc.
Improve content accessibility
Improve flexibility
Designed to separate presentation from content
Due to CSS, all HTML presentation tags and
attributes are deprecated, e.g. font, center, etc.
97
CSS Introduction (2)
CSS can be applied to any XML document
98
Why “Cascading”?
Priority
scheme determining which style rules
apply to element
Cascade priorities or specificity (weight) are
calculated and assigned to the rules
Child elements in the HTML DOM tree inherit
styles from their parent
Can override them
Control via !important rule
99
Why “Cascading”? (2)
100
Why “Cascading”? (3)
Some CSS styles are inherited and some not
Text-related and list-related properties are
inherited - color, font-size, font-family,
line-height, text-align, list-style, etc
Box-related and positioning styles are not
inherited - width, height, border, margin,
padding, position, float, etc
<a> elements do not inherit color and text-
decoration
101
Style Sheets Syntax
Stylesheets consist of rules, selectors,
declarations, properties and values
http://css.maxdesign.com.au/
105
Selectors (4)
Match relative to element placement:
p a {text-decoration: underline}
This will match all <a> tags that are inside of <p>
* – universal selector (avoid or use with care!):
p * {color: black}
109
Linking HTML and CSS
HTML (content) and CSS (presentation) can be
linked in three ways:
Inline: the CSS rules in the style attribute
No selectors are needed
Embedded: in the <head> in a <style> tag
External: CSS rules in separate file (best)
Usually a file with .css extension
Linked via <link rel="stylesheet" href=…> tag
or @import directive in embedded CSS block
110
Linking HTML and CSS (2)
Using external files is highly recommended
111
Inline Styles: Example
inline-styles.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/
DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Inline Styles</title>
</head>
<body>
<p>Here is some text</p>
<!--Separate multiple styles with a semicolon-->
<p style="font-size: 20pt">Here is some
more text</p>
<p style="font-size: 20pt;color:
#0000FF" >Even more text</p>
</body>
</html>
112
Inline Styles: Example
inline-styles.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/
DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Inline Styles</title>
</head>
<body>
<p>Here is some text</p>
<!--Separate multiple styles with a semicolon-->
<p style="font-size: 20pt">Here is some
more text</p>
<p style="font-size: 20pt;color:
#0000FF" >Even more text</p>
</body>
</html>
113
CSS Cascade (Precedence)
There are browser, user and author
stylesheets
with "normal" and "important" declarations
Browser styles (least priority)
Normal user styles
Normal author styles (external, in head, inline)
Important author styles
Important user styles (max priority)
a { color: red !important ; }
http://www.slideshare.net/maxdesign/css-cascade-1658158
114
CSS Specificity
CSS specificity is used to determine the
precedence of CSS style declarations with the
same origin. Selectors are what matters
Simple calculation: #id = 100, .class = 10,
:pseudo = 10, [attr] = 10, tag = 1, * = 0
Same number of points? Order matters.
See also:
http://www.smashingmagazine.com/2007/07/27/css-specificity-things-
you-should-know/
http://css.maxdesign.com.au/selectutorial/advanced_conflict.htm
115
Embedded Styles
Embedded in the HTML in the <style> tag:
<style type="text/css">
116
Embedded Styles: Example
embedded-stylesheets.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Style Sheets</title>
<style type="text/css">
em {background-color:#8000FF; color:white}
h1 {font-family:Arial, sans-serif}
p {font-size:18pt}
.blue {color:blue}
</style>
<head>
117
Embedded Styles: Example (2)
…
<body>
<h1 class="blue">A Heading</h1>
<p>Here is some text. Here is some text. Here
is some text. Here is some text. Here is some
text.</p>
<h1>Another Heading</h1>
<p class="blue">Here is some more text.
Here is some more text.</p>
<p class="blue">Here is some <em>more</em>
text. Here is some more text.</p>
</body>
</html>
118
Embedded Styles: Example (3)
…
<body>
<h1 class="blue">A Heading</h1>
<p>Here is some text. Here is some text. Here
is some text. Here is some text. Here is some
text.</p>
<h1>Another Heading</h1>
<p class="blue">Here is some more text.
Here is some more text.</p>
<p class="blue">Here is some <em>more</em>
text. Here is some more text.</p>
</body>
</html>
119
External CSS Styles
External linking
Separate pages can all use a shared style sheet
Only modify a single file to change the styles across
your entire Web site (see http://www.csszengarden.com/)
link tag (with a rel attribute)
Specifies a relationship between current document
and another document
<link rel="stylesheet" type="text/css"
href="styles.css">
a { text-decoration: none }
li em { color: red;
font-weight: bold }
ul { margin-left: 2cm }
ul ul { text-decoration: underline;
margin-left: .5cm }
122
External Styles: Example (2)
external-styles.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Importing style sheets</title>
<link type="text/css" rel="stylesheet"
href="styles.css" />
</head>
<body>
<h1>Shopping list for <em>Monday</em>:</h1>
<li>Milk</li>
…
123
External Styles: Example (3)
…
<li>Bread
<ul>
<li>White bread</li>
<li>Rye bread</li>
<li>Whole wheat bread</li>
</ul>
</li>
<li>Rice</li>
<li>Potatoes</li>
<li>Pizza <em>with mushrooms</em></li>
</ul>
<a href="http://food.com" title="grocery
store">Go to the Grocery store</a>
</body>
</html>
124
External Styles: Example (4)
…
<li>Bread
<ul>
<li>White bread</li>
<li>Rye bread</li>
<li>Whole wheat bread</li>
</ul>
</li>
<li>Rice</li>
<li>Potatoes</li>
<li>Pizza <em>with mushrooms</em></li>
</ul>
<a href="http://food.com" title="grocery
store">Go to the Grocery store</a>
</body>
</html>
125
Text-related CSS Properties
color – specifies the color of the text
font-size – size of font: xx-small, x-small,
small, medium, large, x-large, xx-large,
smaller, larger or numeric value
font-family – comma separated font names
Example: verdana, sans-serif, etc.
The browser loads the first one that is available
There should always be at least one generic font
font-weight can be normal, bold, bolder,
lighter or a number in range [100 … 900]
126
CSS Rules for Fonts (2)
font-style – styles the font
Values: normal, italic, oblique
text-decoration – decorates the text
127
Shorthand Font Property
font
background-color
fixed / scroll
129
Backgrounds (2)
background-position: specifies vertical and
horizontal position of the background image
Vertical position: top, center, bottom
Horizontal position: left, center, right
Both can be specified in percentage or other
numerical values
Examples:
background-position: top left;
is equal to writing:
background-color: #FFF0C0;
background-image: url("back.gif");
background-repeat: no-repeat;
background-attachment: fixed;
background-position: top;
132
Borders
border-width: thin, medium, thick or
numerical value (e.g. 10px)
border-color: color alias or RGB value
border-style: none, hidden, dotted,
dashed, solid, double, groove, ridge,
inset, outset
Each property can be defined separately for
left, top, bottom and right
border-top-style, border-left-color, …
133
Border Shorthand Property
border: shorthand rule for setting border
properties at once:
border: 1px solid red
is equal to writing:
border-width:1px;
border-color:red;
border-style:solid;
135
Margin and Padding
margin and padding define the spacing
around the element
Numerical value, e.g. 10px or -5px
Can be defined for each of the four sides
separately - margin-top, padding-left, …
margin is the spacing outside of the border
padding is the spacing between the border and
the content
What are collapsing margins?
136
Margin and Padding: Short Rules
margin: 5px;
Sets all four sides to have margin of 5 px;
margin: 10px 20px;
top and bottom to 10px, left and right to 20px;
margin: 5px 3px 8px;
top 5px, left/right 3px, bottom 8px
margin: 1px 3px 5px 7px;
top, right, bottom, left (clockwise from top)
Same for padding
137
The Box Model
138
IE Quirks Mode
When using quirks
mode (pages with no
DOCTYPE or with a
HTML 4 Transitional
DOCTYPE), Internet
Explorer violates the
box model standard
139
Positioning
position: defines the positioning of the
element in the page content flow
The value is one of:
static (default)
relative – relative position according to where
the element would appear with static position
absolute – position according to the innermost
positioned parent element
fixed – same as absolute, but ignores page
scrolling
140
Positioning (2)
Margin VS relative positioning
143
Float
float: the element “floats” to one side
144
Float (2)
How floated elements are positioned
145
Clear
clear
146
Clear (2)
Clearing floats (continued)
:after { content: ""; display: block;
clear: both; height: 0; }
Triggering hasLayout in IE expands a container
of floated elements
display: inline-block;
zoom: 1;
147
Opacity
opacity: specifies the opacity of the element
148
Visibility
visibility
149
Display
display: controls the displayof the element
and the way it is rendered and if breaks should
be placed before and after the element
inline: no breaks are placed before and after
(<span> is an inline element)
block: breaks are placed before AND after the
element (<div> is a block element)
150
Display (2)
display: controls the displayof the element
and the way it is rendered and if breaks should
be placed before and after the element
none: element is hidden and its dimensions are
not used to calculate the surrounding elements
rendering (differs from visibility: hidden!)
There are some more possible values, but not
all browsers support them
Specific displays like table-cell and table-row
151
Overflow
overflow: defines the behavior of element when
content needs more space than you have specified by
the size properties or for other reasons. Values:
visible (default) – content spills out of the
element
auto - show scrollbars if needed
scroll – always show scrollbars
hidden – any content that cannot fit is clipped
152
Other CSS Properties
cursor:specifies the look of the mouse cursor
when placed over the element
Values: crosshair, help, pointer,
progress, move, hair, col-resize, row-
resize, text, wait, copy, drop, and others
white-space – controls the line breaking of
text. Value is one of:
nowrap – keeps the text on one line
normal (default) – browser decides whether to
brake the lines if needed
153
Benefits of using CSS
More powerful formatting than using
presentation tags
Your pages load faster, because browsers
cache the .css files
Increased accessibility,
because rules can be
defined according given media
Pages are easier to maintain and update
154
Maintenance Example
Title Title
Some random Title Some random
Title text here. You Some random text here. You
Title can’t read it text here. You Title can’t read it
Some random
anyway! Har har can’t read it anyway! Har har
Title text here. You Title Some random har! Use Css. Some random
anyway! Har har har! Use Css.
can’t read it text here. You text here. You
Some random Some random har! Use Css.
anyway! Har har can’t read it can’t read it
text here. You text here. You Title
har! Use Css. anyway! Har har anyway! Har har
can’t read it can’t read it Title Title
har! Use Css. Some random har! Use Css.
anyway! Har har anyway! Har har
text here. You Some random Some random
har! Use Css. har! Use Css.
can’t read it text here. You text here. You Title
anyway! Har har can’t read it can’t read it
Title Some random
har! Use Css. anyway! Har har anyway! Har har
Some random Title Title Title text here. You
Title har! Use Css. har! Use Css.
text here. You can’t read it
Some random Some random Some random
can’t read it Some random anyway! Har har
text here. You text here. You Title text here. You
anyway! Har har text here. You har! Use Css.
can’t read it can’t read it can’t read it Title
har! Use Css. can’t read it Some random
anyway! Har har anyway! Har har anyway! Har har
anyway! Har har text here. You Title Some random
har! Use Css. har! Use Css. har! Use Css.
Title har! Use Css. Title can’t read it text here. You
Some random
anyway! Har har can’t read it
Some random Some random Title text here. You
har! Use Css. anyway! Har har
text here. You text here. You can’t read it
Some random har! Use Css.
can’t read it can’t read it anyway! Har har
text here. You
anyway! Har har anyway! Har har har! Use Css.
Title can’t read it Title
har! Use Css. har! Use Css. anyway! Har har
Some random har! Use Css. Some random
Title text here. You text here. You Title
CSS
Title can’t read it can’t read it
Some random Some random
anyway! Har har anyway! Har har
text here. You Some random Title Title Title text here. You
har! Use Css. har! Use Css.
can’t read it text here. You can’t read it
Some random Some random Some random
anyway! Har har can’t read it anyway! Har har
Title text here. You text here. You text here. You
har! Use Css. anyway! Har har har! Use Css.
can’t read it can’t read it can’t read it
har! Use Css. Some random
anyway! Har har anyway! Har har anyway! Har har
text here. YouTitle Title
har! Use Css. har! Use Css. har! Use Css.
can’t read it
file
Some random Some random
anyway! Har har
Title text here. You Title Title text here. You
har! Use Css.
can’t read it can’t read it
Some random Some random Some random
anyway! Har har anyway! Har har
Title text here. You text here. You text here. You
har! Use Css. har! Use Css.
can’t read it can’t read it can’t read it
Some random
anyway! Har har anyway! Har har anyway! Har har
Title text here. You Title Title
har! Use Css. har! Use Css. har! Use Css.
can’t read it Title Title Title
Some random Some random Some random
anyway! Har har
text here. You Some random text here. You Some random text here. You Some random
har! Use Css.
can’t read it text here. You can’t read it text here. You can’t read it Title text here. You
anyway! Har har can’t read it anyway! Har har can’t read it anyway! Har har can’t read it
har! Use Css. har! Use Css. har! Use Css. Some random
anyway! Har har anyway! Har har anyway! Har har
text here. You
har! Use Css. har! Use Css. har! Use Css.
Title Title can’t read it
anyway! Har har
Some random Title Some random Title
har! Use Css.
text here. You Some random text here. You Some random
Title can’t read it text here. You can’t read it text here. You
anyway! Har har can’t read it anyway! Har har can’t read it
Some random Title
har! Use Css. anyway! Har har har! Use Css. anyway! Har har
text here. You
Title Some random
har! Use Css. har! Use Css.
can’t read it Title text here. You Title
Some random
anyway! Har har can’t read it
text here. You Some random Some random Title
har! Use Css. anyway! Har har
can’t read it text here. You text here. You
har! Use Css. Some random
anyway! Har har can’t read it can’t read it
Title Title text here. You
har! Use Css. anyway! Har har anyway! Har har can’t read it
Some random har! Use Css. Some random har! Use Css. anyway! Har har
text here. You text here. You Title Title
har! Use Css.
can’t read it can’t read it
Some random Some random
anyway! Har har anyway! Har har
text here. You text here. You
har! Use Css. har! Use Css.
can’t read it can’t read it
anyway! Har har anyway! Har har
har! Use Css. har! Use Css.
155
CSS Development Tools
Visual Studio – CSS Editor
156
CSS Development Tools (3)
Firebug– add-on to Firefox used to examine
and adjust CSS and HTML
157
CSS Development Tools (4)
IE Developer Toolbar
– add-on to IE used to
examine CSS and HTML (press [F12])
158
Introduction to JavaScript
Table of Contents
What is DHTML?
DHTML Technologies
XHTML, CSS, JavaScript, DOM
160
Table of Contents (2)
Introduction to JavaScript
What is JavaScript
Implementing JavaScript into Web pages
In <head> part
In <body> part
In external .js file
161
Table of Contents (3)
JavaScript Syntax
JavaScript operators
JavaScript Data Types
JavaScript Pop-up boxes
alert, confirm and prompt
Conditional and switch statements, loops and
functions
Document Object Model
Debugging in JavaScript
162
DHTML
Dynamic Behavior at the Client Side
What is DHTML?
Dynamic HTML (DHTML)
DHTML
164
DTHML = HTML + CSS + JavaScript
HTML defines Web sites content through
semantic tags (headings, paragraphs, lists, …)
CSSdefines 'rules' or 'styles' for presenting
every aspect of an HTML document
Font (family, size, color, weight, etc.)
Background (color, image, position, repeat)
Position and layout (of any object on the page)
JavaScript defines dynamic behavior
Programming logic for interaction with the
user, to handle events, etc.
165
JavaScript
Dynamic Behavior in a Web Page
JavaScript
JavaScript
is a front-end scripting language
developed by Netscape for dynamic content
Lightweight, but with limited capabilities
Can be used as object-oriented language
Client-side technology
<body>
<script type="text/javascript">
alert('Hello JavaScript!');
</script>
</body>
</html>
170
Another Small Example
small-example.html
<html>
<body>
<script type="text/javascript">
document.write('JavaScript rulez!');
</script>
</body>
</html>
171
Using JavaScript Code
The JavaScript code can be placed in:
<script> tag in the head
<script> tag in the body – not recommended
External files, linked via <script> tag the head
Files usually have .js extension
<script src="scripts.js" type="text/javscript">
<!– code placed here will not be executed! -->
</script>
Highly recommended
The .js files get cached by the browser
172
JavaScript – When is Executed?
JavaScriptcode is executed during the page
loading or when the browser fires an event
All statements are executed at page loading
Some statements just define functions that can
be called later
Function calls
or code can be attached as
"event handlers" via tag attributes
Executed when the event is fired by the browser
<img src="logo.gif" onclick="alert('clicked!')" />
173
Calling a JavaScript Function
from Event Handler – Example
<html> image-onclick.html
<head>
<script type="text/javascript">
function test (message) {
alert(message);
}
</script>
</head>
<body>
<img src="logo.gif"
onclick="test('clicked!')" />
</body>
</html>
174
Using External Script Files
Using external script files:
<html> external-JavaScript.html
<head>
<script src="sample.js" type="text/javascript">
</script>
</head> The <script> tag is always empty.
<body>
<button onclick="sample()" value="Call JavaScript
function from sample.js" />
</body>
</html>
178
Everything is Object
Every variable can be considered as object
For example strings and arrays have member
functions:
objects.html
var test = "some string";
alert(test[7]); // shows letter 'r'
alert(test.charAt(5)); // shows letter 's'
alert("test".charAt(1)); //shows letter 'e'
alert("test".substring(1,3)); //shows 'es'
What is "9" + 9?
alert("9" + 9); // 99
180
Arrays Operations and Properties
Declaring new empty array:
var arr = new Array();
Confirmation box
Prompt box
<head>
<title>JavaScript Demo</title>
<script type="text/javascript">
function calcSum() {
value1 =
parseInt(document.mainForm.textBox1.value);
value2 =
parseInt(document.mainForm.textBox2.value);
sum = value1 + value2;
document.mainForm.textBoxSum.value = sum;
}
</script>
</head>
183
Sum of Numbers – Example (2)
sum-of-numbers.html (cont.)
<body>
<form name="mainForm">
<input type="text" name="textBox1" /> <br/>
<input type="text" name="textBox2" /> <br/>
<input type="button" value="Process"
onclick="javascript: calcSum()" />
<input type="text" name="textBoxSum"
readonly="readonly"/>
</form>
</body>
</html>
184
JavaScript Prompt – Example
prompt.html
price = prompt("Enter the price", "10.00");
alert('Price + VAT = ' + price * 1.2);
185
Conditional Statement (if)
unitPrice = 1.30;
if (quantity > 100) {
unitPrice = 1.20;
}
Symbol Meaning
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
== Equal
!= Not equal
186
Conditional Statement (if) (2)
The condition may be of Boolean or integer type:
conditional-statements.html
var a = 0;
var b = true;
if (typeof(a)=="undefined" || typeof(b)=="undefined") {
document.write("Variable a or b is undefined.");
}
else if (!a && b) {
document.write("a==0; b==true;");
} else {
document.write("a==" + a + "; b==" + b + ";");
}
187
Switch Statement
The switch statement works like in C#:
var counter;
for (counter=0; counter<4; counter++) {
alert(counter);
}
while (counter < 5) {
alert(++counter);
} loops.html
189
Functions
Code structure – splitting code into parts
Data comes in, processed, result returned
Parameters come
function average(a, b, c) in here.
{
var total; Declaring variables
total = a+b+c; is optional. Type is
return total/3; never declared.
}
Value returned
here.
190
Function Arguments
and Return Value
Functions are not required to return a value
194
DOM Manipulation
Once we access an element, we can read and
write its attributes
DOM-manipulation.html
function change(state) {
var lampImg = document.getElementById("lamp");
lampImg.src = "lamp_" + state + ".png";
var statusDiv =
document.getElementById("statusDiv");
statusDiv.innerHTML = "The lamp is " + state";
}
…
<img src="test_on.gif" onmouseover="change('off')"
onmouseout="change('on')" />
195
Common Element Properties
Most of the properties are derived from the
HTML attributes of the tag
E.g. id, name, href, alt, title, src, etc…
style property – allows modifying the CSS
styles of the element
Corresponds to the inline style of the element
Not the properties derived from embedded or
external CSS rules
Example: style.width, style.marginTop,
style.backgroundImage
196
Common Element Properties (2)
className – the class attribute of the tag
innerHTML – holds all the entire HTML code
inside the element
Read-only propertieswith information for the
current element and its state
tagName, offsetWidth, offsetHeight,
scrollHeight, scrollTop, nodeType, etc…
197
Accessing Elements through
the DOM Tree Structure
We can access elements in the DOM through
some tree manipulation properties:
element.childNodes
element.parentNode
element.nextSibling
element.previousSibling
element.firstChild
element.lastChild
198
Accessing Elements through
the DOM Tree – Example
var el = document.getElementById('div_tag');
alert (el.childNodes[0].value);
alert (el.childNodes[1].
getElementsByTagName('span').id);
…
<div id="div_tag">
<input type="text" value="test text" />
<div>
<span id="test">test span</span>
</div>
</div> accessing-elements-demo.html
201
The HTML DOM Event Model (2)
All event handlers receive one parameter
It brings information about the event
Contains the type of the event (mouse click, key
press, etc.)
Data about the location where the event has
been fired (e.g. mouse coordinates)
Holds a reference to the event sender
E.g. the button that was clicked
202
The HTML DOM Event Model (3)
Holds information about the state of [Alt], [Ctrl]
and [Shift] keys
Some browsers do not send this object, but
place it in the document.event
Some of the names of the event’s object
properties are browser-specific
203
Common DOM Events
Mouse events:
onblur, onfocus
onscroll
204
Common DOM Events (2)
Form events
window
form form
button form
209
Opening New Window – Example
window.open()
window-open.html
var newWindow = window.open("", "sampleWindow",
"width=300, height=100, menubar=yes,
status=yes, resizable=yes");
newWindow.document.write(
"<html><head><title>
Sample Title</title>
</head><body><h1>Sample
Text</h1></body>");
newWindow.status =
"Hello folks";
210
The Navigator Object
alert(window.navigator.userAgent);
211
The Screen Object
The screen object contains information about
the display
window.moveTo(0, 0);
x = screen.availWidth;
y = screen.availHeight;
window.resizeTo(x, y);
212
Document and Location
document object
document.location
215
The Date Object
The Date object provides date / calendar
functions
dates.html
var now = new Date();
var result = "It is now " + now;
document.getElementById("timeField")
.innerText = result;
...
<p id="timeField"></p>
216
Timers: setTimeout()
Make something happen (once) after a fixed
delay
clearTimeout(timer);
clearInterval(timer);
218
Timer – Example
timer-demo.html
<script type="text/javascript">
function timerFunc() {
var now = new Date();
var hour = now.getHours();
var min = now.getMinutes();
var sec = now.getSeconds();
document.getElementById("clock").value =
"" + hour + ":" + min + ":" + sec;
}
setInterval('timerFunc()', 1000);
</script>
<input type="text" id="clock" />
219
Debugging JavaScript
Debugging JavaScript
Modern browsers have JavaScript console
where errors in scripts are reported
Errors may differ across browsers
Several tools to debug JavaScript
Microsoft Script Editor
Add-on for Internet Explorer
Supports breakpoints, watches
JavaScript statement debugger; opens the script
editor
221
Firebug
Firebug– Firefox add-on for debugging
JavaScript, CSS, HTML
Supports breakpoints, watches, JavaScript
console editor
Very useful for CSS and HTML too
You can edit all the document real-time: CSS,
HTML, etc
Shows how CSS rules apply to element
Shows Ajax requests and responses
Firebug is written mostly in JavaScript
222
Firebug (2)
223
JavaScript Console Object
The console object exists
only if there is a
debugging tool that supports it
Used to write log messages at runtime
Methods of the console object:
debug(message)
info(message)
log(message)
warn(message)
error(message)
224
HTML, CSS and JavaScript
Basics
Questions?