2. 2
HTML
• Hypertext Markup Language (HTML) a
tag-based language used to format
static content, which is unchanging
information.
• Dynamic content, on the other hand,
uses scripting languages, applets, or
Flash files to interact with the user.
3. 3
HTML
• HTML files have file name extensions of
either .htm (from the older three-
character file name extension limit) or
.html.
• HTML files are ASCII files; that is, text-
based files.
4. 4
Creating HTML Pages
• Easy way: Use an integrated development
environment (IDE) like Macromedia’s
Dreamweaver, MS FrontPage, or Adobe GoLive
to create the page visually, then the software
translates your visual design to HTML.
– Some packages (FrontPage) are notorious for
creating poorly-formed, impossible-to-decipher,
proprietary HTML.
– You can still edit the HTML directly, although some
(FrontPage) might insist on changing your HTML
back to its original version.
5. 5
Creating HTML Pages
• Hard way: Hand code the HTML...
– In a plain text editor like Notepad or any text editor:
• Open both Notedpad and your browser, with a sliver of
each showing no matter which one has focus.
• Type the HTML in the editor and save it as a .html file on
your hard drive.
• Switch to the browser.
• File-Open-Browse to open the file in the browser for the
first time, or Refresh/Reload to load the latest version.
• Switch back and forth as you write code, save the latest
version, then test in the browser.
6. 6
Creating HTML Pages
• Don’t upload to the server until done.
• Be sure to allow plenty of time to debug again
after you have uploaded to the server; some links
that worked locally on your own computer will
inevitably break because you didn’t specify them
properly.
• Then, be sure to test your page from a different
computer than your own.
7. 7
Creating HTML Pages
• Do not use a word processor to create
HTML files.
– Native word processor files, like .doc files,
have hidden formatting characters that will
choke the browser.
– Could do a “save as txt/ASCII”, though.
– If you do a “save as HTML”, the code will
be awful!
8. 8
Creating HTML Pages
• Can use a specialized HTML editor to
validate the HTML and speed up
repetitive tasks.
– Check out the free editor at
www.chami.com/html-kit
• To check syntax, try the utilities at:
– http://watson.addy.com
– www.w3c.org
9. 9
Why Learn HTML?
• IDEs will not always do what you want
them to do, so you have to tweak the
code they generate.
• Sometimes it’s a whole lot faster to
hand-code a tag than to create it in the
IDE.
• Knowing HTML is extremely useful
when debugging HTML created by
IDEs.
10. 10
Introduction
• We won’t cover everything in HTML; we
will cover the basics, and you can look
up anything else when the need arises.
• However, you will be tested on the
HTML...
11. 11
Introduction
• In these PowerPoint presentations, HTML tags
(commands) appear in green; while the results
that display in the browser appear in yellow.
• The HTML in these slides is not documented;
there isn’t enough room on the screen to fit
both HTML and doc.
• Formatting is often compromised for the same
reason, too – Sorry!
12. 12
Introduction
• HTML is viewed as a formatting language, but
it was originally designed to define structure
(the way the parts are inherently related,
such as a high-level header versus a lower-
level header), not presentation of the
document (the way it looks in the browser,
with typefaces, font size, bold, italic, etc.).
• HTML is not ideal for formatting.
13. 13
Introduction
• The name of the homepage should be
index.htm or index.html.
– That is the default file that a web server
delivers if the browser doesn’t specify the
name.
– Search engines look for that file.
14. 14
Introduction
• If you have errors in your HTML, the
browser might still attempt to display
your page.
• “Attempt” is the key word here; the
page might not display at all, or it might
not display as you intended.
15. 15
Introduction
• We will be enforcing “well-formed
HTML”; that is, you must follow the
rules (even when the tags will work
without following the rules) and do
proper formatting.
• To verify your HTML file, open it in
Netscape Navigator; Navigator is less
forgiving than Internet Explorer.
16. 16
Introduction
• Look at the code of other web pages.
– “Imitation is the sincerest form of theft.”
Jeffrey Zeldman, Taking Your Talent to the
Web
• You can view the HTML of pages on the
web by simply clicking “View, Source”
on the menu.
– This won’t show much if you are on a page
with frames.
18. 18
Introduction
• You can get your hands on the files of
any web page you are viewing, because
those files are downloaded in to
temporary storage on your hard drive
before they can be displayed in the
browser.
• So, after you have loaded the web
page, check your hard drive.
– For Windows 98, check the “Windows”
directory, the under that “Temporary
Internet Files.”
19. 19
Tag Overview
• HTML uses tags – simply formatting
elements.
• Most tags require both a start tag and an
end tag.
• Example:
<html>
...Insert HTML here ...
</html>
Used for end tags
20. 20
Tag Overview
• In some situations, in some browsers, the
browser forgives you if you forget end tags,
but other browsers in other situations don’t.
• Newer standards usually require the end
tags, and well-formed HTML usually uses the
end tag even if the browser lets you get away
with omitting it.
• A start tag and it’s end tag are viewed as a
container.
21. 21
Tag Overview
• Some tags have only a start tag, with
all the information needed embedded
within the tag.
• Tags have optional attributes that are
embedded within the start tag.
<body background = “background.gif”>
Start tag
•The name of the attribute, the
equals sign, and attribute value, all
in quotes.
•Extra spaces are optional.
22. 22
Tag Overview
• HTML tags are not case-sensitive, but it’s
good practice to keep them in one case for
readability.
– Lowercase for XHTML – newest standard.
• Although HTML tags themselves are not case-
sensitive, Unix servers are.
– Make sure the case of the file names (and the
paths to get to those files) within the HTML
matches the case of the files on Unix.
– Best if all lowercase, words separated by
underscores? In any case, be consistent!
23. 23
Documentation Tags
• Tags that start with <! never display
within the browser.
• Examples:
– Comments
– DOCTYPE tag
24. 24
Documentation Tags
• Comments
– Indicated by <!– insert single or multi-line
comment here –>
– Comment your HTML appropriately, but
don’t over-comment because of the
download hit.
– Individual lines don’t need to be
commented unless they are doing
something esoteric.
– Use blank lines liberally and use indentation
to show nesting.
25. 25
<!DOCTYPE HTML PUBLIC
“-//W3C//DTD HTML 4.0 Transitional//EN”> (UPPER CASE)
• The very first statement in the HTML file, to
state which set of standards the file follows.
• Not required right now, and (probably?) best
omitted now, but good programming practice
for the future?
• If omitted, the browser may not know how to
display elements that are handled differently
in different versions of HTML.
• But in this, the browser may be smarter than
I am.
Documentation Tags
27. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>Penny’s Page</title>
<meta name = “keywords” content = “ phrase1, phrase2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and on,
and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes on,
and on, and on, and on…</p>
</body>
</html>
28. 28
Loading an HTML File
into the Browser
• Loaded sequentially, line by line,
displaying each line of HTML before
moving on to the next line.
• A given HTML tag has no knowledge of
the line before it or the line after it.
• So, with HTML alone, you can’t jump
around the way you can with most
programming languages, because this
isn’t a programming language.
29. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>Penny’s Page</title>
<meta name = “keywords” content = “ phrase1, phrase2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and on,
and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes on,
and on, and on, and on…</p>
</body>
</html>
30. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>Penny’s Page</title>
<meta name = “keywords” content = “ phrase1, phrase2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and on,
and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes on,
and on, and on, and on…</p>
</body>
</html>
Indicates the
beginning and
ending of the HTML.
Indicates the
beginning and
ending of the HTML.
31. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>Penny’s Page</title>
<meta name = “keywords” content = “ phrase1, phrase2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and on,
and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes on,
and on, and on, and on…</p>
</body>
</html>
Indicates the
beginning and
ending of the
HTML.
• Contains information
about the document as
a whole.
• Generally not rendered
on the page itself,
merely informational.
• Only one <head> per
page.
32. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>Penny’s Page</title>
<meta name = “keywords” content = “ phrase1, phrase2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and on,
and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes on,
and on, and on, and on…</p>
</body>
</html>
• Displays on the colored bar across the top line of
the browser window.
• Displays when search engines hit on the site.
• Is used by search engines to catalog the site.
• Is the default name when a user adds the page to
his or her favorites list.
• Remember that users might link to this page
directly, bypassing the homepage.
33. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>Penny’s Page</title>
<meta name = “keywords” content = “ phrase1, p2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and on,
and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes on,
and on, and on, and on…</p>
</body>
</html>
• Meta tags are used primarily by search engines.
• name = “KEYWORDS” identifies the prime search words
for search engines.
• name = “DESCRIPTION” identifies the description that
displays in the search engine listing.
34. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>penny’s page</title>
<meta name = “keywords” content = “ phrase1, phrase2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and on,
and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes on,
and on, and on, and on…</p>
</body>
</html>
• Contains the elements that display on the page.
• Only one <body> per page.
• Can include attributes for the default text color, link
colors, background colors, and background images.
35. 35
Setting up the Body
• <body> attributes:
– bgcolor = “#hhhhhh” Sets background
color.
• #hhhhhh is an RGB hex color code, like
“0000ff” for blue – more on this topic later.
• For now, remember that the larger the number,
the more intense the value of that color…
– #ff0000 is red, #00ff00 is green, #0000ff is blue
– #ffffff is white and #000000 is black
• The default background color is white or gray,
depending upon the browser.
36. 36
Setting up the Body
– background = “background.gif”>
• Avoid full-screen background pictures because
of the download hit.
• Instead, use a small image and the browser will
tile it.
• If you do use a large background image that is
too large to fit in the browser window, it will be
truncated on the right and the bottom.
• Even if you use a background image, use a
background color, too, so the user has
something to look at while the background
image loads.
37. 37
Setting up the Body
– bgproperties=“fixed”
• Use in conjunction with the background
attribute to let content scroll over the top of a
fixed background image.
• If omitted, the background scrolls along with
the content.
– text =”#hhhhhh” sets text color.
• Default text color is black (#000000)
38. 38
Setting up the Body
– Links (default color is normally blue)
• link = “#hhhhhh” for unvisited links
(default #0000ff)
• alink = “#hhhhhh” for active (clicked
on) links
(default #ff0000)
• vlink = “#hhhhhh” for visited links
(default varies
depending upon
IE or Navigator,
PC or Mac)
39. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>Penny’s Page</title>
<meta name = “keywords” content = “ phrase1, phrase2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and on,
and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes on,
and on, and on, and on…</p>
</body>
</html>
• For formatting up to six levels of headings.
• Varies the font size automatically, depending upon
the level of the heading; a level 1 header has a
larger font size than a level 2 header.
• These are relative sizes; the actual size and
typeface are selected by the browser and are
different on different systems.
40. 40
Header Tags
Example:
<h1>Level 1 header </h1>
<h2>Level 2 header </h2>
<h3>Level 3 header </h3>
Displays:
Level 1 header
Level 2 header
Level 3 header
I avoid <hn> tags because they force a blank line
after the header. But good for accessibility.
41. <!DOCTYPE HTML PUBLIC “-//W3C/DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html40/strict.dtd”>
<html>
<head>
<title>Penny’s Page</title>
<meta name = “keywords” content = “ phrase1, phrase2, …”>
<meta name = “description” content = “this site does ...”>
</head>
<body text=“#ffffff” link=“#0000ff” bgcolor=“#000000”>
<h1>Header Stuff</h1>
<p>This is a paragraph of content of some sort, that goes on, and
on, and on, and on, and on, and on….</p>
<p>This is another paragraph of some kind of content, that goes
on, and on, and on, and on… </p>
</body>
</html>
• All of the text placed within the paragraph tags appears as
a single paragraph.
• The text wraps to fill the available line length within the
browser.
• There is a blank line both before and after the paragraph
display.
• </p> is optional but good programming practice; </p> is
assumed when the next <p> is encountered.
42. 42
Paragraph Tag
<p>
Fourscore and seven years ago, our fathers
brought forth on this continent a new nation,
conceived in liberty and dedicated to the
proposition that all men are created equal.
</p>
displays
Fourscore and seven years ago, our fathers brought
forth on this continent a new nation, conceived in
liberty and dedicated to the proposition that all men
are created equal.
43. 43
Paragraph Tag
• Blank lines (created with carriage
returns) or extra spaces within the text
are ignored.
– In other words, you must do formatting
with HTML, not by formatting within the
text.
44. 44
Paragraph Tag
<p>Penny McIntire
Department of Computer Science
Northern Illinois University
DeKalb, IL 60115</p>
displays
Penny McIntire Department of Computer Science Northern
Illinois University DeKalb, IL 60115
because spaces and line breaks in the text are ignored.
45. 45
Paragraph Tag
• On the other hand, using <p>...</p>
on every line can insert blank lines
where you don’t want them...
46. 46
Paragraph Tag
<p>Penny McIntire</p>
<p>Department of Computer Science</p>
<p>Northern Illinois University</p>
<p>DeKalb, IL 60115</p>
displays
Penny McIntire
Department of Computer Science
Northern Illinois University
DeKalb, IL 60115
• Using <p> tags
on each line.
47. 47
Break Tag
• <br> Forces a line break, with no
extra blank line, like a carriage return.
• Inserted within text within <p>...</p>.
• Particularly useful for things like
displaying postal addresses, where the
additional spacing caused by <p>
would be irritating...
48. 48
Break Tag
<p>
Penny McIntire<br>
Department of Computer Science<br>
Northern Illinois University<br>
DeKalb, IL 60115
</p>
displays
Penny McIntire
Department of Computer Science
Northern Illinois University
DeKalb, IL 60115
50. 50
Horizontal Rules
<hr size = “n” height in pixels
width = “nnn%” or “nnn”
align = “left” or “center” or “right”
color = “#hhhhhh”
noshade>
• Declares a horizontal rule (dividing line) as n
pixels high, and nnn pixels or nnn percent of
page or table cell width.
• color works only in IE, but degrades
gracefully to the default color in Netscape.
51. 51
Horizontal Rules
• noshade is optional – shades the line if
omitted.
• In theory, can make a vertical rule by
making width very small, size very big.
52. 52
Center Tag
<center>...</center>
• Causes the items within this container
(a tag with both start and end tags) to
be centered horizontally on the page.
• Deprecated, but widely used still and
will be until CSS is more reliable.
55. 55
Align Attribute
align = “center”/”left”/”right”/”justify”
• An attribute, not a tag, so embedded within
another tag, such as an <h1> tag.
• Used to align a single element such as a
header or a paragraph.
• align = “center” works the same as
<center>...</center> except the latter is
usually used for multiple elements, not a
single element.
56. 56
Align Attribute
• Example:
<h1 ALIGN = “center”>This is a level 4 header </h1>
<h1 ALIGN = “left”>This is a level 4 header </h1>
<h1 ALIGN = “right”>This is a level 4 header </h1>
displays
This is a level 4 header
This is a level 4 header
This is a level 4 header
57. 57
Text Styles
• <u>...</u> underline
– Avoid, because underline is generally
reserved for links.
• <strong>...</strong> boldface
<b>...</b>
– <b> is deprecated, which means its use
is discouraged because browsers in the
future will not support it, and it’s not
recognized by screen readers.
58. 58
Text Styles
• <em>...</em> italics (“emphasized”)
<i>...</i> (deprecated, not
recognized by screen
readers)
• <tt>...</tt> fixed width font
• <del>...</del> strike-through
• <sup>...</sup> superscript
• <sub>...</sub> subscript
59. 59
Text Styles
• Example:
<h1 ALIGN = “center”>
<u>This is a </u><em>level 1<strong>header</strong>
</em> </h1>
displays
This is a level 1 header
60. 60
Text Styles
• Well-formed HTML closes tags in the
reverse order in which they are opened.
• Correct:
<u> <em> <strong>Hi!</strong> </em> </u>
• Incorrect:
<u> <em> <strong>Hi!</u> </em> </strong>
61. 61
Text Styles
<fontcolor = “#hhhhhh”
size = “n” or “+n” or “-n”
face = “font name”>
...paragraph text here...
</font>
– A deprecated tag, but still widely used because
CSS is not yet completely reliable.
– Overrides the defaults in the <body> element.
• Valid size range is 1-7; size = 3 is the default.
• +2 (relative sizing) gives a font size of 5.
• Best to use relative sizes, for accessibility reasons.
62. 62
Text Styles
– face changes the typeface.
• The typeface must exist on the user’s browser.
• You can list multiple typefaces as attributes for
face – the browser checks the user’s system for
the first one, then the second one, etc., with
the last on the list being a standard font like
Times or Ariel.
– face = “Georgia, Calligrapher, Times”
– If it doesn’t find any of them, it uses the default.
– Nothing to lose here if the font isn’t found; it
“degrades gracefully.”
63. 63
Text Styles
• If you need a fancy font for something special,
create a text graphic, save it as an image, and
use the image.
– This comes with a download price, so use sparingly.
• Newer browsers provide the ability to save
fonts with the page, but at a download price.
64. 64
Preformatted Text
• <pre width=“n”>...</pre>
– Preformatted text; preserves the
formatting in the original text, including
spaces, line breaks, and tabs.
– Particularly useful for displaying code
listings because the text won’t wrap to fit
the available space in the browser window.
– The width attribute specifies the maximum
number of characters in a line.
65. 65
Incorporating Images
<img src=“path to the image”
height=“n” width=“m”
name = “name you give it”
alt=“alternate text to display”
border=“n”
align=“see discussion”
hspace=“n”
vspace=“n”>
66. 66
Incorporating Images
– src=“…”
• Only two image formats currently accepted by
all browsers:
– .jpg (for continuous-tone images like photos)
– .gif (for line art like cartoons, logos, etc.)
67. 67
Incorporating Images
– src=“…”
• Including a path in the address:
– As an absolute address like
http://www.niu.edu/cs/index.html/myimage.gif.
» Must say “http://…” for this to work reliably.
» Use for all addresses not under your own site.
– As a relative address starting with a /; that is, it
starts at the directory for the current page, like
/images/whatever.gif
» Use for all local addresses (in your own site), for
site portability.
– Careful: bad addresses can work when testing on
your own computer but break when you put them
out on the web. Test from another computer, or
disable the directory on your own computer!
68. 68
Incorporating Images
– height = “nnn” height, in pixels
width = “nnn” width, in pixels
• height and width default to the exact size of the
saved image, but specify that default anyway,
because the text on the page displays
immediately if it doesn’t have to wait for the
browser to determine the sizes of the images.
• Don’t use the height and width attributes to
change the size of the image on the page.
• Instead, use the image-editing program, save
the image in the precise size (in pixels) that you
want it to be on the screen.
• More on this topic when we talk about graphics.
69. 69
Incorporating Images
– name = “name you give it”
• This is so that you can later reference the
image by name, necessary if you want to do
things like mouseovers.
– alt = “some text”
• Text that displays on mouse flyover and that
displays if the browser can’t display graphics.
• It’s good programming practice to always
(repeat, always) include an alt attribute, even
if you merely repeat the text label; still useful
for vision-impaired users.
• Also used by search engines.
70. 70
Incorporating Images
– border = “n”
• border width, in pixels.
• 0 for no border.
• HTML image borders are viewed as amateurish
these days.
72. 72
Incorporating Images
• But perhaps better to put in a table cell, then
use table cell alignment to position? More on
that later.
73. 73
Incorporating Images
– hspace=“n” vspace=“n”
• Vertical and horizontal white space left around
the image, in pixels.
• Always applies to two sides/top and bottom of
an image.
• Default on both is usually 3 pixels.
• If you want spacing on only one side, use a
transparent GIF spacer or instead.
74. 74
Incorporating Sound and Movies
• Linking to sound or movie files is
identical to linking to images, but the
file name extensions are different.
• The user must have the appropriate
“player” on his or her PC – for example,
the Shockwave player if it is a
Shockwave file.
– You can ask the user if he or she wants to
download the appropriate player, then
provide an alternative.
75. 75
Incorporating Sound and Movies
• To include background sounds,
bgsoundsrc = “filename”
loop = “n” or “-1”
within the <body>.
– loop = “n” means n repetitions of the
sound.
– loop = “-1” means continuous play.
76. 76
• Anchors, or hyperlinks, link to other web
pages, documents, or email accounts.
<a href = “ address”>Penny’s Page</a>
Linking
Anchor tag
Address to link to
The text that displays
(underlined unless you
change it with CSS)
77. 77
Linking
• Example:
<a href = http://www.yahoo.com target=“_blank”>
Go to Yahoo
</a>
displays
Go to Yahoo
• Note the difference between the actual
link address and the text that is displayed.
78. 78
Linking
• target = attribute for the <a> tag:
– “_self” Opens the document in the current window
(the default if not specified).
– “_blank” Opens the document in a new window, so
that the original source window is preserved.
• Especially useful for external links.
– “_parent” If frames are in use, opens in the window
that contains the current frame (replacing all frames
in that window).
– “_top” Opens in topmost window, replacing all
frames in the window.
– “name_you_have_choosen” Opens in a new window
that you can reuse by referencing the name again.
79. 79
Linking
• To make an image an anchor for a link,
merely surround it with the beginning
and ending anchor tags...
<a href = “mypage.html”>
<img src = “graphics/my_dog.gif/”
border = “2”
height = “100”
width = “150”
alt = “picture of my dog”>
</a>
If the border is turned
on, its color will be the
same as the color
specified for links.
Be sure there isn’t an
extra space here.
80. 80
Linking
• If the link is an email address, the syntax
changes slightly to
<a href = “mailto:pmcintire@niu.edu”>
Send me an email</a>
– The user’s default email program will come
up with an email automatically addressed to
the href address, as long as the user has a
default email client set up on his or her
computer (most do).
81. 81
Linking
• You can link a thumbnail image to a larger
image, so that the user can choose
whether or not to load the larger image:
<a href = “largeimagepage.html”>
<img src = “smallimage.jpg”>
</a>
– This defines the thumbnail image as the
“clickable” link to the page that contains the
larger image.
82. 82
Linking
– Don’t just use the HEIGHT and WIDTH
attributes to scale the thumbnail smaller; that
defeats the purpose of having fast load on the
little image and letting the user choose
whether or not to wait for the larger image.
83. 83
Internal Linking
• Sometimes it might be nice to be able to link
to a certain point in another page, not just to
the top of that page.
• HTML has a facility to assign an anchor to
any location in an HTML file; a bookmark, of
sorts.
• Then, we can direct the user directly to that
point by adding that location name at the end
of path to the page.
85. 85
Internal Linking
• To show the link to that spot...
<a href = “path/mypage.html#gohere”>
Jump to XYZ
</a>
displays
Jump to XYZ
and links to the anchor you specified.
• You can omit the URL/path if the
bookmark is within the current page:
<a href = “#gohere”>Jump to XYZ</a>
86. 86
Internal Linking
• Hint on linking:
• Be sure not to include a space or
at the end of a link description, whether
that description is text or an image.
– If you include an extra space after at the end
of the link text, you will have an odd-looking
underlined space at the end of the link.
– If you include a space after an image but
before the </a> tag, the dotted outline that
displays on click will have an odd shape.
87. 87
Image Maps
• An image map is a single image that
encompasses multiple links.
• We specify different areas of the image
as hotspots, or anchors.
• This involves more complicated HTML
than using several separate image links;
use only when you can’t get the effect
you want using separate images.
(ImageMapTest.html)
88. 88
Image Maps
• An image map is a single image that
encompasses multiple links.
• We specify different areas of the image
as hotspots, or anchors.
• This involves more complicated HTML
than using several separate image links;
use only when you can’t get the effect
you want using separate images.
• (ImageMapTest.html)
90. <img name="fruits" src="image_map4.gif" width="238" height="264"
border="0" usemap="#fruit_image_map">
<map name="fruit_image_map">
<area shape="circle" href="/apple_info.html"
title="Nutritional Data for Apples" alt="Nutritional Data for Apples"
coords="136,98, 23">
<area shape="rect" href="/grape_info.html"
title="Nutritional Data For Grapes"
alt="Nutritional Data For Grapes"
coords="2,69,56,185" >
<area shape="poly" href="/lime_info.html
title="Nutritional Data For Limes" alt="Nutritional Data For Limes"
coords="67,38,63,60,79,77,95,75,101,63,94,45,83,38,67,38">
<area shape="poly" href="/grape_info.html" target="_blank"
title="Nutritional Data About Grapes"
alt="Nutritional Data About Grapes
coords="175,89,174,116,189,130,182,153,201,180,224,160,236,104,
214,75,175,89">
</map>
This tag puts the actual
image on the page.
This group of
tags sets up the
template for the
hotspots.
1
2
3
4
One <area> per
hotspot.
91. 91
Image Maps
• Sorta like a DSECT in assembler.
<map name = “name of the map”>
– Sets up the entire image map.
– Put all map definitions within the <body>
tag.
<area...>
– Sets up an individual hotspot.
– So, one <area> tag per hotspot.
92. 92
Image Maps
– <area> attributes:
href = “path to the destination page”
shape = “rect” or “poly” or “circle”
coords = “coordinate points”
• For shape = “rect”, x1,y1,x2,y2 points for top left and
bottom right corners, in pixels, starting at top left corner
of the image.
• For shape = “poly”, must list x,y for each point.
• For shape = “circle”, x,y for center, plus radius in points.
• Trial and error if you do it manually, but...
– Much easier in a package like Fireworks or Dreamweaver,
where you simply draw a shape around the area and it
calculates the coordinates for you.
93. 93
Image Maps
• Within the body, define the image the way
you would otherwise, but add the attribute
usemap = “#mapname”
• The browser then overlays the image map on
the image.
• Use the alt attribute to display the name of
the links on mouseover for IE.
• Use title attribute as well to display the name
of links on mouseover in Netscape.
94.
95. <img name="fruits" src="image_map4.gif" width="238" height="264"
border="0" usemap="#fruit_image_map">
<map name="fruit_image_map">
<area shape="circle" href="apple_info.html"
title="Nutritional Data for Apples" alt="Nutritional Data for Apples"
coords="136,98, 23">
<area shape="rect" href="grape_info.html"
title="Nutritional Data For Grapes"
alt="Nutritional Data For Grapes"
coords="2,69,56,185" >
<area shape="poly" href="lime_info.html
title="Nutritional Data For Limes" alt="Nutritional Data For Limes"
coords="67,38,63,60,79,77,95,75,101,63,94,45,83,38,67,38">
<area shape="poly" href="grape_info.html" target="_blank"
title="Nutritional Data About Grapes"
alt="Nutritional Data About Grapes
coords="175,89,174,116,189,130,182,153,201,180,224,160,236,104,
214,75,175,89">
</map>
Links the image to the image map.
x1,y1,x2,y2 coordinates
96. 96
Special Characters
• Some characters, particularly < > and
&, have special meaning for HTML and
therefore cannot simply be typed into
the text.
• Instead, HTML uses a code that starts
with an & and ends with a ;...
101. 101
Bulleted Lists
• Also called unordered lists.
• <ul>...</ul> starts and stops the list.
• <li>...</li> starts and stops a single item in a
list.
• Format:
<ul> starts the list
<li>...</li> first bulleted item
<li>...</li> second bulleted item
... etc.
</ul> ends the list
104. 104
Bulleted Lists
Example:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<ul>
<li>Sub-item 1</li>
<li>Sub-item 2</li>
<ul>
<li>Sub-sub-item 1</li>
<li>Sub-sub-item 2</li>
</ul>
<li>Sub-item 3</li>
</ul>
</ul>
Displays:
* Item 1
* Item 2
- Sub-item 1
- Sub-item 2
* Sub-sub-item 1
* Sub-sub-item 2
- Sub-item 3
Indentation is for our benefit;
there is no meaning attached
to it.
105. 105
Bulleted Lists
• Bullet types change to reflect the level
changes.
• On <ul>, type=“disc”/”circle”/”square”
• On older browsers, the browser inserts a
blank line at the close of every list – that
is, every </ul> – whether you want it or
not, which is why there is a blank line
before Sub-item 3.
107. 107
Bulleted Lists
• There is no nesting limit.
• Don’t forget to close your lists, or your
web page will be, uhm, interesting, to
say the least.
108. 108
Numbered Lists
• Also called ordered lists.
<ol type = “...” >
<li>...</li> <li> used the same as for
<li>...</li> unordered lists.
…
</ol>
• Works identically to a bulleted list except
numbers the list instead of using bullets.
• Default numbers are decimal number: 1, 2, 3,
etc.
109. 109
Numbered Lists
• Attributes for both <ol> and <li>
include:
– type = “1” decimal numbers, the default
– type = “a” uppercase alphabet
– type = “a” lowercase alphabet
– type = “i” uppercase Roman numerals
– type = “i” lowercase Roman numerals
• Example...
110. Example:
<ol type = “i”>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<OL type = “A”>
<li>Sub-item 1</li>
<li>Sub-item 2</li>
<OL type = “1” >
<li>Sub-sub-item 1</li>
<li>Sub-sub-item 2</li>
<li>Sub-sub-item 3</li>
</ol>
<li>Sub-item 3</li>
</ol>
</ol>
Displays:
I. Item 1
II. Item 2
III. Item 3
A. Sub-item 1
B. Sub-item 2
1. Sub-sub-item 1
2. Sub-sub-item 2
3. Sub-sub-item 3
C. Sub-item 3
111. 111
Tables
• Tables are used for formatting table data, just
as in Word or Excel.
• In addition, invisible tables are often the only
way you have to line objects up with each
other, because HTML alone does not provide
absolute positioning, and CSS absolute
positioning is still somewhat unpredictable.
• So, you might put objects in a table with no
borders, just to line them up the way you
want them...
112. Text about
picture 1
..................
..................
Picture 1
Text about
picture 2
..................
..................
..................
..................
Picture 2
Text about
picture 3
..................
..................
..................
Picture 3
Text describing the whole page
113. 113
Tables
• An “invisible” table like this allows more
exact positioning of items than you can
get in other ways.
• Of course, you can have the borders
visible, too, when it suits your purpose.
• Let’s look at a table in HTML…
114. <table border = “2” bgcolor = “#999999” width = “40%”>
<thead>
<tr>
<th>name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Shelley</td>
<td>20</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</tbody>
</table>
• Defines the table…
• 2 pixel border.
• “0” would be invisible.
• BGCOLOR sets table
background to gray.
• WIDTH is 40% of the screen
• Could also be an exact
pixel number.
name Age City
Shelley 20 Champaign
Abby 19 Moline
115. <table border = “2” bgcolor = “#999999” width = “40%”>
<thead>
<tr>
<th>name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Shelley</td>
<td>20</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</tbody>
</table>
• Sets up a Table HEADer area –
optional.
• Useful because of automatic
formatting – centered, boldface.
name Age City
Shelley 20 Champaign
Abby 19 Moline
116. <table border = “2” bgcolor = “#999999” width = “40%”>
<thead>
<tr>
<th>name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Shelley</td>
<td>20</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</tbody>
</table>
Sets up a single Table Row in the
table header.
name Age City
Shelley 20 Champaign
Abby 19 Moline
117. <table border = “2” bgcolor = “#999999” width = “40%”>
<thead>
<tr>
<th>name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Shelley</td>
<td>20</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</tbody>
</table>
name Age City
Shelley 20 Champaign
Abby 19 Moline
Sets up three Table Header cells in
the header, along with defining
their content.
118. <table border = “2” bgcolor = “#999999” width = “40%”>
<thead>
<tr>
<th>name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Shelley</td>
<td>20</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</tbody>
</table>
Defines the body of the table.
name Age City
Shelley 20 Champaign
Abby 19 Moline
120. <table border = “2” bgcolor = “#999999” width = “40%”>
<thead>
<tr>
<th>name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Shelley</td>
<td>20</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</tbody>
</table>
Defines three Table Data cells in
this row.
name Age City
Shelley 20 Champaign
Abby 19 Moline
121. <table border = “2” bgcolor = “#999999” width = “40%”>
<thead>
<tr>
<th>name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Shelley</td>
<td>20</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</tbody>
</table>
Defines three Table Data cells in
this row.
name Age City
Shelley 20 Champaign
Abby 19 Moline
122. <table border = “2” bgcolor = “#999999” width = “40%”>
<tr>
<th>name</th>
<th>Age</th>
<th>City</th>
</tr>
<tr>
<td>Shelley</td>
<td>20</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</table>
• <thead> and <tbody> are
optional, so eliminating them
should not cause problems.
• But very useful for accessibility
reasons – screen readers – on
data tables (not layout tables).
name Age City
Shelley 20 Champaign
Abby 19 Moline
123. 123
Tables
• Failure to close any of these tags can lead to
major formatting problems, depending upon the
browser.
– For instance, a missing </table> tag can work just
fine in IE, depending upon placement, but the entire
table will break in Navigator.
• Also, setting up a table with an unequal number
of cells in rows causes problems. Every row
should have an identical number of cells.
124. 124
Tables
• Attributes for just the <table> tag:
– cellpadding = “n” sets the space between the
table border and the cell content.
– cellspacing = “n” sets the width of the space
between cells.
– Set both of these to zero if you want to slice a
large graphic and put the slices into table cells
seamlessly.
• Note: be sure to open and close each cell <td>…</td>
on the same line to make this work.
125. 125
Tables
• Attributes for any of these table tags:
– align = “center" or "left" or "right”
• For horizontal alignment.
• Left alignment is the default within the table body.
– valign = “top" or "middle" or "bottom" or
"baseline”
• For vertical alignment.
• valign = “baseline”
– All cells in the row will have their first lines on a common
baseline, rather than centering the lines vertically in the
row.
126. 126
Tables
– nowrap turns off word wrap.
– All of these tags seem to work more
reliably at the <td> level than the <tr>
level.
127. 127
Tables
– Can use bgcolor=“…” and background=“…”
attributes within <table>, <tr>, <td>,
and <th>.
– Careful though – background on the
<table> tag works differently in IE and in
older versions of Navigator.
• In IE, the graphic fills the entire table as a
whole.
• In Navigator, the graphic restarts in every
single cell.
128. 128
Tables
– Can use width = “ n or n% or * ” on the
<table> tag to set the width of table.
– Can use width = “n or n% or * ” on
individual table cells to set the width of
columns.
– Attributes:
• a number will set the exact number of pixels.
• “n%” will set the width as a percent of what is
available.
• “*” will fill whatever space is available.
129. 129
Tables
– Careful with setting table cell (column)
widths:
• You get unpredictable results if you use
different values for cells in the same column
but different rows. Usually, the larger number
wins.
• Easiest to put widths on the cells in just the
first row, then no widths on subsequent rows,
or just on an empty bottom row, but…
130. 130
Tables
• Moving the guidelines with a mouse in
Dreamweaver resets all values for cells in the
table, even those you carefully filled with
calculated values. It also then puts a width on
every single cell in every single row (corrected
in MX?).
• The browser overrides cell width values if you
put something that is too big in one of the cells
in the column.
131. 131
Tables
• In any case, if some formatting attribute
doesn’t work at one level, try moving it up or
down a level.
• If you are having trouble trying to get a
single table to accommodate the layout for an
entire page, stop trying.
– Use multiple tables instead.
• Avoid nested tables, unless there is no other
way to do what you need to do.
– Nested tables break and are also hard to read.
132. 132
Tables
• Can make some data cells larger than
others, similar to a “merge” in the cells
of a Word table.
– This allows one cell to span multiple
columns or rows.
• colspan = “n”, rowspan = “n”, as
attributes within <th> or <td>
elements.
133. …
<tbody>
<tr>
<td colspan = “2”>Shelley</td>
<td>Champaign</td>
</tr>
<tr>
<td>Abby</td>
<td>19</td>
<td>Moline</td>
</tr>
</tbody>
name Age City
Shelley DeKalb
Abby 21 Moline
The equivalent of
three columns.
134. 134
Tables
• Again, tables are used more for formatting
than for what we would normally consider to
be a table.
• Often, it is easiest to make a table for the
entire page layout first, then insert text and
images within the table.
• Or, multiple tables throughout the page, with
different tables for each different layout
section.
• Table tutor at
http://www.pagetutor.com/pagetutor/tables/i
ndex.html
135. 135
Tables
• Table hints:
– In Dreamweaver, you might find it easier to start
by simply drawing layers (boxes), then “convert to
tables” when done. Be sure to check “don’t allow
overlapping layers” on the preferences first.
– Use as a placeholder in empty cells, or
they may break in Navigator.
– Can use tables to center content on a page.
– Can set up a vertical rule on the page by filling a
tall skinny column with a small colored GIF, or by
setting one column to a single pixel width and
setting the background color.
136. 136
Tables
• Table hints:
– Use the first row to establish column
widths, then omit column widths on all
subsequent rows.
• This makes it quite easy to change column
widths later.
• Unfortunately, Dreamweaver overrides this and
puts column widths on every single cell in the
table, which makes for a maintenance
nightmare.
137. 137
Tables
• Table hints:
– If you carefully craft each cell/column’s
width in pixels (or take off widths, as just
mentioned) , don’t later drag any column’s
border in Dreamweaver – all columns in
the table will be resized.
138. 138
Tables
• Table hints:
– A table row cannot be sized any shorter
than the tallest element in the row.
• is standard text height (25-30 pixels,
usually) and it forces the entire row to be at
least that height.
• So, fill the cell with a 1-pixel by 1-pixel (or
whatever) transparent .gif instead.
• To force a shorter row, don’t use any elements
that are taller, and enter height =“n” on every
table cell in the row.
139. 139
Tables
• Table hints:
– To get extra horizontal spacing between
elements in a row, insert spacer cells with
no real content, just a tiny tranparent gif or
.
• Remember, though, you must do that on every
row in the same places.
140. 140
Forms
• Forms are used to collect information
from users viewing your site.
• They are the foundation upon which
interactive elements (push buttons,
check boxes, text fields the users enter)
live.
• Example...
142. 142
Forms
• Note that this is not exactly a
sophisticated or pretty input form.
• We will build upon it to make it look
better as we know more.
• First, the following two slides show the
complete HTML for this form,
reproduced just for reference.
• We will look at the statements
individually...
143. <html> (Form test.html)
…
<body>
<h1>New Customer Information</h1>
<p>Please fill in the following information: </p>
<form method = "post" action = "/cgi-bin/getCustomer">
<p>First name:
<input type = "text" name = "custFirstname" size = "20">
</p>
<p>Last name:
<input type = "text" name = "custLastname" size = "20">
</p>
<p>Street address:
<input type = "text" name = "custStreet" size = "25">
</p>
144. <p>City:
<input type = "text" name = "custCity" size = "25">
</p>
<p>State:
<input type = "text" name = "custState" size = "2">
</p>
<p>Zip:
<input type = "text" name = "custZip" size = "10">
</p>
<p>
<input type = "submit" value = "Submit your information">
<input type = "reset" value = "Clear your information">
</p>
</form>
145. <html> (Form test.html)
…
<body>
<h1>New Customer Information</h1>
<p>Please fill in the following information: </p>
<form method = "post" action = "/cgi-bin/getCustomer">
<p>First name:
<input type = "text" name = "custFirstname" size = "20">
</p>
<p>Last name:
<input type = "text" name = "custLastname" size = "20">
</p>
<p>Street address:
<input type = "text" name = "custStreet" size = "25">
</p>
Specifies information about
the entire form, which may
include lots of individual
form elements.
146. 146
Forms
<form>...</form>
• Attributes:
method = “post” or “get”
– Used by a server-side program for updates or
retrieval from a database.
– Some servers support only one of these, while others
support both.
– get is simpler to use (server-side), while post
supports better security and longer forms.
– Check with your server administrator.
147. 147
Forms
action = “script name or program location”
– When the form is submitted to a script or
program, the script or program can access the
elements contained in the form.
– The action attribute specifies the path to this
script.
– Can be a local function or server-side program.
• method and action are used in tandem to
pass form elements to scripts or programs for
processing.
• Within the form, we specify individual
elements...
148.
149. <html> (Form test.html)
…
<body>
<h1>New Customer Information</h1>
<p>Please fill in the following information: </p>
<form method = "post" action = "/cgi-bin/getCustomer">
<p>First name:
<input type = "text" name = "custFirstname" size = "20">
</p>
<p>Last name:
<input type = "text" name = "custLastname" size = "20">
</p>
<p>Street address:
<input type = "text" name = "custStreet" size = "25">
</p>
Specifies information
about a single input
field.
150. 150
Forms
• Attributes for the input element (one of
several types of controls/widgets)
– name = “programmer defined name”
• An attribute needed for all INPUT types.
• The name that will be used to refer to this input tag in the
scripts or programs that use it.
– type = “…”
• Three common types, for three common uses:
– To capture a user-input text field.
– To define reset and submit buttons.
– To pass invisible (hard-coded) values to the script or
program.
• We will look at each...
151. 151
Forms
• type = “text” for one-line text input, as in our
example.
– Inserts a one-line text box into which the user can
type information.
– size = “n”
» The visual size of the input box, in characters.
– maxlength = “n”
» The number of characters that can be entered.
– value = “default value”
» The value that displays in the box and that will
be submitted if the user doesn’t replace it with
other text.
153. 153
Forms
• type = “reset” or “submit” for specialized
buttons
– “reset” creates a specialized button that, when
clicked, clears all the input fields on the form.
– “submit” creates a specialized button that, when
clicked, uses the method attribute and calls the
action script to do something with the input data.
– value = “label for the button”
» The text that displays on the button.
– Careful with the submit button; use it when hitting
the server, but it can cause some quirky bugs when
going to JavaScript.
» Alternative – create your own button that, when
clicked, invokes the JavaScript.
154. <p>City:
<input type = "text" name = "custCity" size = "25">
</p>
<p>State:
<input type = "text" name = "custState" size = "2">
</p>
<p>Zip:
<input type = "text" name = "custZip" size = "10">
</p>
<p>
<input type = "submit" value = "Submit your information">
<input type = "reset" value = "Clear your information">
</p>
</form>
Submit and
reset buttons
155. 155
Forms
• type = “hidden” for hard-coded (hidden) fields
that you need to send to the script or program.
– value = “the hard-coded value you need to send to
the script”
156. 156
Forms
• Keep in mind that for now, our form
won’t actually do anything – we need to
associate the form with a script or
program, a skill we might (or might not)
learn later in the semester.
• Therefore, we will just set up the
skeleton of the input form now and
worry about making it work later.
159. Rearranged to put multiple
inputs on one line
Multi-line
text area
List box
Check boxes
Radio button
Non-display field
160. <html>
...
<body>
...
<form method = "post" action = "/cgi-bin/getCustomer">
<p>First name:
<input type = "text" name = "custFirstname" size = 20">
Last name:
<input type = "text" name = "custLastname" size = 20"></p>
<p>Street address:
<input type = "text" name = "custStreet" size = 25"></p>
Eliminating </p>
puts first and last
name on one line.
162. <p>City:
<input type = "text" name = "custCity" size = 25">
select state:
<select name = "custState">
<option selected>IL
<option>IN
<option>WI
<option>IA
</select>
Zip:
<input type = "text” name = "custZip" size = 10"></p>
List box: used
for lists that are
too long for
radio buttons.
• One <option> for each element to be
displayed.
• So, if you want to display 50 states, you
would have 50 <option>s
List element that displays
first and is used as the
default value.
163. 163
Forms
• <select>...</select>
• Attributes:
• name = “programmer supplied”
– Used to refer to the item in scripts and programs.
• size = “the number of items displayed at one
time”
– The default is 1.
– If the size is smaller than the number of items in the
list, the list will be scrollable.
165. <p>Comments:
<textarea name = "comments" rows = "4" cols = "40" wrap = "soft">
type your comments here</textarea></p>
This displays in the textarea as a comment,
of sorts.
• name = “…”name of the input field.
• rows = “n” number of rows to display.
• cols = “n” number of characters
horizontally.
• wrap = “…” see next slide…
166. 166
Forms
– wrap =
• “off” word wrap turned off; user must enter
hard carriage returns or text continues to scroll
to the right.
• “hard” word wrap turned on, with carriage
returns saved as a part of the field.
• “soft” word wrap turned on, with carriage
returns displayed but not saved with the field.
– This is probably the most useful – saving hard
characters with the field can cause problems later.
168. 168
Forms
• Checkbox: allows choosing multiple
items from a list of choices.
<input type = “checkbox”
name = “checkbox name/group
name)”
value = “name of that button”>
– name will be a group name, when several
buttons are grouped together.
– value refers to an individual checkbox
within the group.
169. <p>Please all educational levels that you have completed:<br>
Elementary School
<input type = "checkbox" name = "education" value = "elementary">
High School
<input type = "checkbox" name = "education" value = "highSchool">
College
<input type = "checkbox" name = "education" value = "college">
Graduate School
<input type = "checkbox" name = "education" value = "graduateSchool">
</p>
type = “checkbox” allows
the user to check as many
boxes as desired.
Giving them all the same
name groups them together.
Giving separate values
allows us to access each
checkbox separately.
171. <p>Would you like us to send you email notification of special sales?<br>
Yes<input type = "radio" name = "sales" value = "email" checked>
No<input type = "radio" name = "sales" value = "noEmail"></p>
Using the same name associates
these buttons into one radio button
group, so that they are mutually
exclusive.
Makes “checked”
the default for this button.
173. <p>Email address:
<input type = "password" name = "email" size = "25"></p>
<p>
<input type = "submit" value = "Submit your information">
<input type = "reset" value = "Clear your information"></p>
</form>
</body>
</html>
• Another variation on <input>.
• type = “password” to display asterisks
(*****).
• Note that type = “password” does not
encrypt the data in any way, just hides it on
the screen.
• name = “...” name for scripts and programs
to use to refer to this field.
• value = “...” default value.
175. 175
Frames
• Frames allow you to display more than
one file on a page, because each frame
displays a different HTML file.
• For instance, when a web page has
– a title and logo across the top that don’t
scroll
– a small menu on the left that doesn’t scroll,
and
– a main body on the right that does scroll,
you are looking at three frames.
176. 176
Frames
• Advantage of frames:
– You have more control over what is always
on display on the page; for instance, you
can make sure your menu is always present.
– Persistent menu display is probably the
strongest argument for using frames.
– You don’t have to reload the menu each
time you reload a new page, which saves a
few bytes.
177. 177
Frames
• Disadvantages:
– The use of frames is controversial, mainly
because they are often used poorly.
– Older versions of browsers do not
recognize frames (but of little concern
now).
– The initial page takes longer to load
because it is loading multiple files.
– Frames have unique security issues; each
frame can potentially have different
permission levels.
178. 178
Frames
– They cut up already small screen real
estate into even smaller pieces.
– Search engines can have problems
indexing sites with frames.
– Can print individual frames (if you know
how – most users don’t), but can’t print an
entire page of frames.
179. 179
Frames
• The page that defines where the frames
lie is called the frameset page.
• The frameset page contains the
<head> and the frames – no body at
all.
• Its only purpose is to define the size
and placement of each of the frames.
• It is, of course, loaded first.
181. 181
Frames
• If using frames, include the following
comment before the <html> tag:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML
4.0 frameset//EN”>
– If this is included, we can tell the browser what to
do if it can’t display frames – more on this in a
few slides.
– Also, frames sometimes break if this isn’t here.
• So, let’s look at a frames page…
183. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 frameset//EN">
<html><hEAD><TITLE>frame test</TITLE></hEAD>
<frameset cols = 200,500,*>
<frame name = "menu" src = "menu.html” noresize >
<frame name = "main" src = "formsTest2.html">
<frame name = "animals" src = "imageMapTest.html">
<noframes>
<p>This page requires frames, but your browser does not support
them.</p>
<p>Download the latest version of Internet Explorer from
<a href = "http://www.microsoft.com/">Microsoft</a></p>
</noframes>
</frameset>
</html>
184. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 frameset//EN">
<html><hEAD><TITLE>frame test</TITLE></hEAD>
<frameset cols = “200,500,*”>
<frame name = "menu" src = "menu.html” noresize >
<frame name = "main" src = "formsTest2.html">
<frame name = "animals" src = "imageMapTest.html">
<noframes>
<p>This page requires frames, but your browser does not support
them.</p>
<p>Download the latest version of Internet Explorer from
<a href = "http://www.microsoft.com/">Microsoft</a></p>
</noframes>
</frameset>
</html>
• Put right after the </head> tag.
• Sets up the size and placement
of the frames on the page.
• One frame 200 pixels
wide, one frame 500 pixels
wide, and one that fills the
remainder of the screen.
• Can also use percentages,
like “20%, 50%, *”.
• It’s a good idea to include
at least one asterisk.
186. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 frameset//EN">
<html><hEAD><TITLE>frame test</TITLE></hEAD>
<frameset cols = “200,500,*”>
<frame name = "menu" src = "menu.html” noresize>
<frame name = "main" src = "formsTest2.html">
<frame name = "animals" src = "imageMapTest.html">
<noframes>
<p>This page requires frames, but your browser does not support
them.</p>
<p>Download the latest version of Internet Explorer from
<a href = "http://www.microsoft.com/">Microsoft</a></p>
</noframes>
</frameset>
</html>
• To define an individual frame within
the frameset.
• name = “pagename”
• src = “HTML file, including path”
• noresize is optional and prevents the
user from resizing that frame.
187. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 frameset//EN">
<html><hEAD><TITLE>frame test</TITLE></hEAD>
<frameset cols = 200,500,*>
<frame name = "menu" src = "menu.html” noresize >
<frame name = "main" src = "formsTest2.html">
<frame name = "animals" src = "imageMapTest.html">
<noframes>
<p>This page requires frames, but your browser does not support
them.</p>
<p>Download the latest version of Internet Explorer from
<a href = "http://www.microsoft.com/">Microsoft</a></p>
</noframes>
</frameset>
</html>
This gets control if the browser doesn’t recognize
frames, as long as the !DOCTYPE tag was placed at
the beginning of the file.
189. 189
Frames
• Can nest <frameset> within <frame>,
but we aren’t going to do that right
now.
• Frames can get much more complicated
than what we show here – we can set
up borders and load into new browser
windows and all kinds of other stuff.
– We aren’t gonna go there – will do this
inside of our IDEs instead.
190. 190
Frames
• Attributes for frameset:
– border = “0” turns off all borders.
• Can get the same organizing effect as borders provide by
using different background colors for each frame.
• Attributes for frame tag:
– borders (see above)
– scrolling = “NO” Turns off scroll bar for that
frame – careful here.
– marginheight =“n”, marginwidth = “n” (or
leftmargin, rightmargin, etc.) (Navigator 3 and 4
always leaves at least one pixel.)
191. 191
Frames
• Navigating frames
– Links must specify where to put the linked
file.
• name each frame, then specify target=“name
of frame”
– So, if the “menu” on the left has a link to
replace the page loaded into “main”, here
is what the link in the “menu” would say…
<a href = “newpage.html”
target = “main”>Display new content</a>
192. 192
Frames
• Another hint: If you want frames to
meet seamlessly (or at least almost
seamlessly), you need the following
code in all of the <body> tags:
marginwidth="0" marginheight="0"
topmargin="0" leftmargin="0“
– The first two are for Netscape, the last two
for IE. And even then, there is an eight-
pixel problem in Netscape.
193. 193
Standards
• In this class, we will be shooting at HTML 4.0
standards, which dovetails with version 4.n of
both IE and Navigator.
– 4.0 browsers support the HTML commands given
in this class, although not necessarily all of the
attributes for those commands.
– Test your pages in both browsers, versions 4.n.
– You will lose points if your pages break in
Navigator, but not if they “degrade gracefully.”
• Example: COLOR attribute on HR tag: works in IE, but
defaults to the text color in Navigator.
194. 194
Standards
• Also, all pages for this class must fit on
an 800 x 600 display, because more
than 50% of users are still at this
resolution.
– Why? Older computers, bad vision (anyone
over age 45 a candidate), smaller laptop
displays, etc.
– Limit all your pages to 750 pixels wide,
tops, to fit on 800 x 600, or I will deduct
points.
195. 195
HTML References
• Dynamic HTML: The Definitive
Reference, 2nd edition, Danny
Goodman. Sebastopol, CA: O’Reilly and
Associates, 2002.
• HTML: Pocket Reference, Jennifer
Neiderst. Sebastopol, CA: O’Reilly and
Associates, 2000.
• HTML: The Definitive Guide, Chuck
Musciano and Bill Kennedy. Sebastopol,
CA: O’Reilly and Associates, 1998.
196. 196
HTML References
• The Bare Bones Guide to HTML,
http://werbach.com/barebones/
• A Beginner’s Guide to HTML,
www.ncsa.uiuc.edu/General/Internet/W
WW/HTMLPrimer.html
• A free HTML help file
http://www6.zdnet.com/cgibin/texis/swl
ib/hotfiles/info.html?fcode=0008W1
• Several sites at Yahoo, if you search.