Chapter Two (Web Programming)
Chapter Two (Web Programming)
Chapter Two (Web Programming)
Web
Programming
FCSE / Computer Science
1
<q> Talk is cheap. Show me the code.</q> …...... Linus Torvalds (Founder of Linux kernel)
Hypertext Markup Language
Chapter Two (HTML)
• HTML elements label pieces of content such as "this is a heading", "this is a paragraph",
"this is a link", etc.
Web design and Programming 6
Hypertext Markup Language (HTML)
• Markup tags: tell the Web browser how to display the page
8
HTML Tags
• Tags are one of the most important part in an HTML Document.
• HTML uses some predefined tags which tells the browser about content display property, that is
how to display a particular given content.
• For Example, to create a paragraph, one must use the paragraph tags(<p> </p>) and to insert an image one must
use the img tags(<img />).
• The end tag is written like the start tag, but with a slash before the tag name
The start tag is often called the opening tag. The end
tag is often called the Webclosing tag.
design and Programming 10
Tag Attributes
• Tags can have attributes that provide additional information to an
HTML element
• Attributes specify properties and behavior
• Attributes always come in name/value pairs like: name=“value”
• Attributes are always specified in the start tag
• Attribute values should always be enclosed in quotes. Double quotes are most
common.
• Also case-insensitive: however, lowercase is recommended
• Some elements have obligatory attributes
11
Some Simple Tags – Example
<!DOCTYPE HTML>
<html>
<head>
<title>Simple Tags Demo</title>
</head>
<body>
<a href="http://www.amu.edu.et/" title=“amu site">Go to AMU
website.</a>
<br />
<img src="logo.gif" alt="logo" />
<br />
<strong>Bold</strong> and <em>emphasized or italic</em> text.
</body>
</html>
12
HTML Document Structure
• All HTML documents must start with a document type declaration: <!DOCTYPE html>.
• Entire document enclosed within <html> and </html> tags
• Two subparts:
• Head
• Enclosed within <head> and </head>
• Within the head, more tags can be used to specify title of the page, meta-information, etc.
• Body
• Enclosed within <body> and </body>
• Within the body, content is to be displayed
• Other tags can be embedded in the body
14
<head> Section: <title> tag
• Title should be placed between <head> and </head> tags
<title>Arba minch University Website</title>
16
<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
17
The <script> Tag – Example
<!DOCTYPE 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>
18 </body>
</html>
<head> Section: <style>
• The <style> element embeds formatting information (CSS styles) into
an HTML page
<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>
19 </body>
Comments: <!-- --> Tag
• Comments can exist anywhere between the <html></html> tags
• Comments start with <!-- and end with -->
21
Headings and Paragraphs – Example
<!DOCTYPE HTML>
<html>
<head><title>Headings and
paragraphs</title></head>
<body>
<h1>Heading 1</h1>
headings.html <h2>Sub heading 2</h2>
<h3>Sub heading 3</h3>
<div style="background:skyblue">
This is a div</div>
</body>
22
</html>
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
23
Text Formatting – Example
<!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>
24
HTML styles
• The HTML style attribute is used to add styles to an element, such as
color, font, size, and more.
• <h1 style="color:blue;">This is a heading</h1>
<p style="color:red;">This is a paragraph.</p>
25
HTML links - hyperlinks
26
HTML links
• An HTML link is displayed in a different color depending on whether it has been visited, is unvisited, or
is active.
• HTML Link Colors
By default, a link will appear like this (in all browsers):
An unvisited link is underlined and blue
A visited link is underlined and purple
An active link is underlined and red
HTML Links - Create Bookmarks
• HTML links can be used to create bookmarks, so that readers can jump to specific parts of a web page.
• Bookmarks can be useful if a web page is very long.
To create a bookmark - first create the bookmark, then add a link to it.
When the link is clicked, the page will scroll down or up to the location with the bookmark.
• <h2 id="C4">Chapter 4</h2>
• <a href="#C4">Jump to Chapter 4</a>
27
HTML images
29
Ordered Lists: <ol> Tag
<ol type="1">
Create an Ordered List using <ol></ol>:
<li>Apple</li>
<li>Orange</li>
<li>Grapefruit</li>
</ol>
30
Unordered Lists: <ul> Tag
<ul type="disk">
Create an Unordered List using <ul></ul>: <li> Apple </li>
<li> Orange </li>
<li> Grapefruit </li>
</ul>
31
Definition lists: <dl> tag
Create definition lists using <dl>
<dl>
• Renders without bullets <dt>HTML</dt>
• Definition is indented <dd>A markup language …</dd>
<dt>CSS</dt>
<dd>Language used to …</dd>
</dl>
HTML
A markup language …
CSS
Language used to ..
32
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 ¥ ¥
33
Special Chars – Example
<p>[>> Welcome <<]</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>
34
HTML Multimedia
Note: Only MP4, WebM, and Ogg video are supported by the HTML standard. 35
HTML Multimedia
• HTML Audio
• The HTML <audio> element is used to play an audio file on a web page.
• <audio controls autoplay muted>
Note: Only MP3, WAV, and Ogg audio are supported by the HTML standard.
• Add muted after autoplay to let your audio file start playing automatically (but
muted):
36
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>
37
The <div> and <span>Tag
• <div> is Block style element
• It creates logical divisions within a page
• Used with CSS
• <span> is Inline style element
• Useful for modifying a specific portion of text
• Don't create a separate area in the document
• Very useful with CSS
• Example:
39
… cont’d
• Start and end of a table
<table> ... </table>
• Start and end of a row
<tr> ... </tr>
• Start and end of a cell in a row
40
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">
41
Lecture 2 - Demos</a></td>
</tr>
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)
42
Complete HTML Table: Example
<table> columns
• <colgroup>
<col style="width:100px" /><col />
</colgroup> header
<thead> th
<tr><th>Column 1</th><th>Column 2</th></tr>
</thead> footer
<tfoot>
<tr><td>Footer 1</td><td>Footer 2</td></tr>
</tfoot> Last comes the body (data)
<tbody>
<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>
43
</table>
Complete HTML Table:Example (2)
<table> By default, header text is
<colgroup> bold and centered.
<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>Cell 1.1</td><td>Cell 1.2</td></tr>
<tr><td>Cell 2.1</td><td>Cell 2.2</td></tr> Although the footer is before the data
</tbody> in the code, it is displayed last
</table>
44
Nested Tables
• Table data “cells” (<td>) can contain nested tables (tables within tables):
<table>
<tr>
<td>Contact:</td>
<td>
<table>
<tr>
<td>First Name</td>
<td>Last Name</td>
</tr>
</table>
</td>
</tr>
</table>
45
Cell Spacing and Padding
• Tables have two important attributes:
cellspacing cellpadding
47
Column and Row Span
• Table cells have two important attributes:
colspan rowspan
colspan="1 colspan="1 rowspan="2 rowspan="1
" " " "
cell[1,1] cell[1,2] cell[1,2]
cell[1,1]
cell[2,1] cell[2,1]
colspan="2 rowspan="1
Defines how " Defines how"
49
Column and Row Span – 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
50
] ]
<!DOCTYPE html>
<html>
Table caption
<head>
<tr>
<style>
<td>January</td>
table, th, td {
<td>$100</td>
border: 1px solid black;
</tr>
border-collapse: collapse;
<tr>
}
<td>February</td>
th, td {
<td>$50</td>
padding: 5px;
</tr>
text-align: left;
</table>
}
</body>
</style>
</html>
</head>
<body>
<table style="width:100%">
<caption>Monthly savings</caption>
<tr>
<th>Month</th>
<th>Savings</th>
</tr>
51
Exercise:
• Radio buttons:
<input type="radio" name="title"
value="Mr." />
• Radio buttons can be grouped, allowing only one to be selected from a
group:
• Submit button:
<input type="submit" name="submitBtn"
value="Apply Now" />
57
Other Form Controls (2)
• Reset button – brings the form to its initial state
<select name="products"
multiple="multiple">
<option value="Value 1"
selected="selected">keyboard</option>
<option value="Value 2">mouse</option>
59 <option value="Value
Other Form Controls (4)
• File input – a field used for uploading files
<form enctype="multipart/form-data">
...
<input type="file" name="photo" />
...
</form>
60
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" />
61
HTML Forms – Example
<form method="post" action="apply-now.php">
<input name="subject" type="hidden" value="Class" />
<fieldset><legend>Academic information</legend>
<label for="degree">Degree</label>
<select name="degree" id="degree">
<option value="BA">Bachelor of Art</option>
<option value="BS">Bachelor of Science</option>
<option value="MBA" selected="selected">Master of
Business Administration</option>
</select>
<br />
<label for="studentid">Student ID</label>
<input type="password" name="studentid" />
</fieldset>
<fieldset><legend>Personal Details</legend>
<label for="fname">First Name</label>
<input type="text" name="fname" id="fname" />
<br />
<label for="lname">Last Name</label>
<input type="text" name="lname" id="lname" />
62
HTML Forms – Example (2)
<br />
Gender:
<input name="gender" type="radio" id="gm"
value="m" />
<label for="gm">Male</label>
<input name="gender" type="radio" id="gf"
value="f" />
<label for="gf">Female</label>
<br />
<label for="email">Email</label>
<input type="text" name="email" id="email" />
</fieldset>
<p>
<textarea name="terms" cols="30" rows="4"
readonly="readonly">TERMS AND
CONDITIONS...</textarea>
</p>
<p>
63 <input type="submit" name="submit" value="Send
Form" />
HTML Forms – Example (3)
64
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
• Is in the range [0,32767]
<input type="text"
65 tabindex="10" />
HTML5: New form elements
66
Input-datalist Elements and autocomplete Attribute
67
Output
• Once you fill a data in the text box ..html 5 can recover the previous
input. *we use a datalist element to
obtain the user’s birth month.
68
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.
69
HTML Frames – Demo
frames.ht
<html> ml
<head><title>Frames Example</title></head>
<frameset cols="180px,*,150px">
<frame src="left.html" />
<frame src="middle.html" />
<frame src="right.html" />
</frameset>
</html>
70
Inline Frames: <iframe>
• Inline frames provide a way to show one website inside another
website:
iframe-
demo.html
<iframe name="iframeGoogle" width="600" height="400"
src="http://www.google.com" frameborder="yes"
scrolling="yes"></iframe>
71
Table:html structure elements
72
HTML5: Semantic elements example
<header>
<nav>
<aside>
<section>
<footer>
73
EnD