URLs
The World Wide Web uses Uniform Resource Locators (URLs)
to specify the
location of files on other servers. A URL includes the type of resource
being accessed (e.g., Web, gopher, WAIS), the address of the server, and the
location of the file. The syntax is:
scheme://host.domain [:port]/path/ filename
where scheme is one of
file
a file on your local system
ftp a file on an anonymous FTP server
http
a file on a World Wide Web server
gopher
a file on a Gopher server
WAIS
a file on a WAIS server
news
a Usenet newsgroup
telnet
a connection to a Telnet-based service
The port number can generally be omitted. (That means
unless someone tells
you otherwise, leave it out.)
For example, to include a link to this primer in your
document, enter:
<A HREF="http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html">
NCSA's Beginner's Guide to HTML</A>
This entry makes the text NCSA's Beginner's Guide to
HTML a hyperlink to
this document.
For more information on URLs, refer to:
* WWW Names and Addresses, URIs, URLs, URNs
* A Beginner's Guide to URLs
Links to Specific Sections
Anchors can also be used to move a reader to a
particular section in a
document (either the same or a different document) rather than to the top,
which is the default. This type of an anchor is commonly called a named
anchor because to create the links, you insert HTML names within the
document.
This guide is a good example of using named anchors in
one document. The
guide is constructed as one document to make printing easier. But as one
(long) document, it can be time-consuming to move through when all you
really want to know about is one bit of information about HTML. Internal
hyperlinks are used to create a "table of contents" at the top of this
document. These hyperlinks move you from one location in the document to
another location in the same document. (Go to the top of this document and
then click on the Links to Specific Sections hyperlink in the table of
contents. You will wind up back here.)
You can also link to a specific section in another
document. That
information is presented first because understanding that helps you
understand linking within one document.
Links Between Sections of Different Documents
Suppose you want to set a link from document A (documentA.html)
to a
specific section in another document (MaineStats.html).
Enter the HTML coding for a link to a named anchor:
documentA.html:
In addition to the many state
parks, Maine is also home to
<a href="MaineStats.html#ANP">Acadia
National Park</a>.
Think of the characters after the hash (#) mark as a tab
within the
MaineStats.html file. This tab tells your browser what should be displayed
at the top of the window when the link is activated. In other words, the
first line in your browser window should be the Acadia National Park
heading.
Next, create the named anchor (in this example "ANP")
in MaineStats.html:
tml:
<H2><A NAME="ANP">Acadia
National Park</a></H2>
With both of these elements in place, you can bring a
reader directly to the
Acadia reference in MaineStats.html.
NOTE: You cannot make links to specific sections within
a different document
unless either you have write permission to the coded source of that document
or that document already contains in-document named anchors. For example,
you could include named anchors to this primer in a document you are writing
because there are named anchors in this guide (use View Source in your
browser to see the coding). But if this document did not have named anchors,
you could not make a link to a specific section because you cannot edit the
original file on NCSA's server.
Links to Specific Sections within the Current Document
The technique is the same except the filename is
omitted.
For example, to link to the ANP anchor from within
MaineStats, enter:
...More information about <A HREF="#ANP">Acadia
National Park</a>
is available elsewhere in this document.
Be sure to include the <A NAME=> tag at the place
in your document where you
want the link to jump to (<H2><A NAME="ANP">Acadia
National Park</a></H2>).
Named anchors are particularly useful when you think
readers will print a
document in its entirety or when you have a lot of short information you
want to place online in one file.
Mailto
You can make it easy for a reader to send electronic
mail to a specific
person or mail alias by including the mailto attribute in a hyperlink. The
format is:
<A HREF="mailto:emailinfo@host">Name</a>
For example, enter:
<A HREF="mailto:pubs@ncsa.uiuc.edu">NCSA
Publications Group</a>
to create a mail window that is already configured to
open a mail window for
the NCSA Publications Group alias. (You, of course, will enter another mail
address!)
Inline Images
Most Web browsers can display inline images (that is,
images next to text)
that are in X Bitmap (XBM), GIF, or JPEG format. Other image formats are
being incorporated into Web browsers [e.g., the Portable Network Graphic
(PNG) format]. Each image takes time to process and slows down the initial
display of a document. Carefully select your images and the number of images
in a document.
To include an inline image, enter:
<IMG SRC=ImageName>
where ImageName is the URL of the image file.
The syntax for <IMG SRC> URLs is identical to that
used in an anchor HREF.
If the image file is a GIF file, then the filename part of ImageName must
end with .gif. Filenames of X Bitmap images must end with .xbm; JPEG image
files must end with .jpg or .jpeg; and Portable Network Graphic files must
end with .png.
Image Size Attributes
You should include two other attributes on <IMG>
tags to tell your browser
the size of the images it is downloading with the text. The HEIGHT and WIDTH
attributes let your browser set aside the appropriate space (in pixels) for
the images as it downloads the rest of the file. (Get the pixel size from
your image-processing software, such as Adobe Photoshop.)
For example, to include a self portrait image in a file
along with the
portrait's dimensions, enter:
<IMG SRC=SelfPortrait.gif
HEIGHT=100 WIDTH=65>
NOTE: Some browsers use the HEIGHT and WIDTH attributes
to stretch or shrink
an image to fit into the allotted space when the image does not exactly
match the attribute numbers. Not all browser developers think
stretching/shrinking is a good idea. So don't plan on your readers having
access to this feature. Check your dimensions and use the correct ones.
Aligning Images
You have some flexibility when displaying images. You
can have images
separated from text and aligned to the left or right or centered. Or you can
have an image aligned with text. Try several possibilities to see how your
information looks best.
Aligning Text with an Image
By default the bottom of an image is aligned with the following
text, as
shown in this paragraph. You can align images to the top or center of a
paragraph using the ALIGN= attributes TOP and CENTER.
This text is aligned with the top of the
image (<IMG SRC =
"BarHotlist.gif" ALIGN=TOP>). Notice how the browser aligns only
one line
and then jumps to the bottom of the image for the rest of the text.
And this text is centered on the image
(<IMG SRC = "BarHotlist.gif"
ALIGN=CENTER>). Again, only one line of text is centered; the rest is below
the image.
Images without Text
To display an image without any associated text (e.g., your organization's
logo), make it a separate paragraph. Use the paragraph ALIGN= attribute to
center the image or adjust it to the right side of the window as shown
below:
<p ALIGN=CENTER>
<IMG SRC = "BarHotlist.gif">
</p>
which results in:
The image is centered; this paragraph starts below it
and left justified.
Alternate Text for Images
Some World Wide Web browsers--primarily those that run
on VT100
terminals--cannot display images. Some users turn off image loading even if
their software can display images (especially if they are using a modem or
have a slow connection). HTML provides a mechanism to tell readers what they
are missing on your pages.
The ALT attribute lets you specify text to be displayed
instead of an image.
For example:
<IMG SRC="UpArrow.gif"
ALT="Up">
where UpArrow.gif is the picture of an upward pointing
arrow. With
graphics-capable viewers that have image-loading turned on, you see the up
arrow graphic. With a VT100 browser or if image-loading is turned off, the
word Up is shown in your window.
You should try to include alternate text for each image
you use in your
document, which is a courtesy for your readers.
Background Graphics
Newer versions of Web browsers can load an image and use
it as a background
when displaying a page. Some people like background images and some don't.
In general, if you want to include a background, make sure your text can be
read easily when displayed on top of the image.
Background images can be a texture (linen finished
paper, for example) or an
image of an object (a logo possibly). You create the background image as you
do any image.
However you only have to create a small piece of the
image. Using a feature
called tiling, a browser takes the image and repeats it across and down to
fill your browser window. In sum you generate one image, and the browser
replicates it enough times to fill your window. This action is automatic
when you use the background tag shown below.
The tag to include a background image is included in the
<BODY> statement as
an attribute:
<BODY BACKGROUND="filename.gif">
Background Color
By default browsers display text in black on a gray
background. However, you
can change both elements if you want. Some HTML authors select a background
color and coordinate it with a change in the color of the text.
Always preview changes like this to make sure your pages
are readable. (For
example, many people find red text on a black background difficult to read!)
You change the color of text, links, visited links, and
active links using
attributes of the <BODY> tag. For example, enter:
<BODY BGCOLOR="#000000" TEXT="#FFFFFF"
LINK="#9690CC">
This creates a window with a black background (BGCOLOR),
white text (TEXT),
and silvery hyperlinks (LINK).
The six-digit number and letter combinations represent
colors by giving
their RGB (red, green, blue) value. The six digits are actually three
two-digit numbers in sequence, representing the amount of red, green, or
blue as a hexadecimal value in the range 00-FF. For example, 000000 is black
(no color at all), FF0000 is bright red, and FFFFFF is white (fully
saturated with all three colors). These number and letter combinations are
cryptic. Fortunately an online resource is available to help you track down
the combinations that map to specific colors:
* ColorPro Web server
External Images, Sounds, and Animations
You may want to have an image open as a separate
document when a user
activates a link on either a word or a smaller, inline version of the image
included in your document. This is called an external image, and it is
useful if you do not wish to slow down the loading of the main document with
large inline images.
To include a reference to an external image, enter:
<A HREF="MyImage.gif">link
anchor</A>
You can also use a smaller image as a link to a larger
image. Enter:
<A HREF="LargerImage.gif"><IMG
SRC="SmallImage.gif"></A>
The reader sees the SmallImage.gif image and clicks on
it to open the
LargerImage.gif file.
Use the same syntax for links to external animations and
sounds. The only
difference is the file extension of the linked file. For example,
<A HREF="AdamsRib.mov">link
anchor</A>
specifies a link to a QuickTime movie. Some common file
types and their
extensions are:
File Type Extension
plain text .txt
HTML document .html
GIF image .gif
TIFF image .tiff
X Bitmap image .xbm
JPEG image .jpg or .jpeg
PostScript file .ps
AIFF sound file .aiff
AU sound file .au
WAV sound file .wav
QuickTime movie .mov
MPEG movie .mpeg or .mpg
Keep in mind your intended audience and their access to
software. Most UNIX
workstations, for instance, cannot view QuickTime movies.
Tables
Before HTML tags for tables were finalized, authors had
to carefully format
their tabular information within <PRE> tags, counting spaces and
previewing
their output. Tables are very useful for presentation of tabular information
as well as a boon to creative HTML authors who use the table tags to present
their regular Web pages. (Check out the NCSA Relativity Group's pages for an
excellent, award-winning example.)
Think of your tabular information in light of the coding
explained below. A
table has heads where you explain what the columns/rows include, rows for
information, cells for each item. In the following table, the first column
contains the header information, each row explains an HTML table tag, and
each cell contains a paired tag or an explanation of the tag's function.
Table Elements
Element
Description
<TABLE> ... defines a table in HTML. If the BORDER
attribute is
</TABLE> present, your browser
displays the table with a border.
<CAPTION> ... defines the caption for the title of the table. The
default
</CAPTION> position of the title is centered at
the top of the table.
The attribute ALIGN=BOTTOM can be used to position the
caption below the table.
NOTE: Any kind of markup tag can be used in the caption.
<TR> ... </TR> specifies a table row within a table. You may define
default attributes for the entire row: ALIGN (LEFT, CENTER,
RIGHT) and/or VALIGN (TOP, MIDDLE, BOTTOM). See Table
Attributes at the end of this table for more information.
<TH> ... </TH> defines a table header cell. By default the text in
this
cell is bold and centered. Table header cells may contain
other attributes to determine the characteristics of the
cell and/or its contents. See Table Attributes at the end
of this table for more information.
<TD> ... </TD> defines a table data cell. By default the text in
this cell
is aligned left and centered vertically. Table data cells
may contain other attributes to determine the
characteristics of the cell and/or its contents. See Table
Attributes at the end of this table for more information.
Table Attributes
NOTE: Attributes defined within <TH> ... </TH>
or <TD> ... </TD> cells
override the default alignment set in a <TR> ... </TR>.
Attribute
Description
* ALIGN (LEFT, CENTER, RIGHT)
* VALIGN (TOP, MIDDLE, BOTTOM)
* COLSPAN=n
* ROWSPAN=n
* NOWRAP
* Horizontal alignment of a cell.
* Vertical alignment of a cell.
* The number (n) of columns a cell spans.
* The number (n) of rows a cell spans.
* Turn off word wrapping within a cell.
General Table Format
The general format of a table looks like this:
<TABLE>
<== start of table definition
<CAPTION> caption contents </CAPTION>
<== caption definition
<TR>
<== start of first row definition
<TH> cell contents </TH>
<== first cell in row 1 (a head)
<TH> cell contents </TH>
<== last cell in row 1 (a head)
</TR>
<== end of first row definition
<TR>
<== start of second row definition
<TD> cell contents </TD>
<== first cell in row 2
<TD> cell contents </TD>
<== last cell in row 2
</TR>
<== end of second row definition
<TR>
<== start of last row definition
<TD> cell contents </TD>
<== first cell in last row
...
<TD> cell contents </TD>
<== last cell in last row
</TR>
<== end of last row definition
</TABLE>
<== end of table definition
The <TABLE> and </TABLE> tags must surround
the entire table definition. The
first item inside the table is the CAPTION, which is optional. Then you can
have any number of rows defined by the <TR> and </TR> tags. Within a
row you
can have any number of cells defined by the <TD>...</TD> or <TH>...</TH>
tags. Each row of a table is, essentially, formatted independently of the
rows above and below it. This lets you easily display tables like the one
above with a single cell, such as Table Attributes, spanning columns of the
table.
Tables for Nontabular Information
Some HTML authors use tables to present nontabular
information. For example,
because links can be included in table cells, some authors use a table with
no borders to create "one" image from separate images. Browsers that
can
display tables properly show the various images seamlessly, making the
created image seem like an image map (one image with hyperlinked quadrants).
Using table borders with images can create an impressive
display as well.
Experiment and see what you like.
Fill-out Forms
Web forms let a reader return information to a Web
server for some action.
For example, suppose you collect names and email addresses so you can email
some information to people who request it. For each person who enters his or
her name and address, you need some information to be sent and the
respondent's particulars added to a data base.
This processing of incoming data is usually handled by a
script or program
written in Perl or another language that manipulates text, files, and
information. If you cannot write a program or script for your incoming
information, you need to find someone who can do this for you.
The forms themselves are not hard to code. They follow
the same constructs
as other HTML tags. What could be difficult is the program or script that
takes the information submitted in a form and processes it. Because of the
need for specialized scripts to handle the incoming form information,
fill-out forms are not discussed in this primer. Check the Additional Online
Reference section for more information.
Troubleshooting
Avoid Overlapping Tags
Consider this example of HTML:
<B>This is an example of <DFN>overlapping</B>
HTML tags.</DFN>
The word overlapping is contained within both the
<B> and <DFN> tags. A
browser might be confused by this coding and might not display it the way
you intend. The only way to know is to check each popular browser (which is
time-consuming and impractical).
In general, avoid overlapping tags. Look at your tags
and try pairing them
up. Tags (with the obvious exceptions of elements whose end tags may be
omitted, such as paragraphs) should be paired without an intervening tag in
between. Look again at the example above. You cannot pair the bold tags
without another tag in the middle (the first definition tag). Try matching
your coding up like this to see if you have any problem areas that should be
fixed before your release your files to a server.
Embed Only Anchors and Character Tags
HTML protocol allows you to embed links within other
HTML tags:
<H1><A HREF="Destination.html">My
heading</A></H1>
Do not embed HTML tags within an anchor:
<A HREF="Destination.html">
<H1>My heading</H1>
</A>
Although most browsers currently handle this second
example, the official
HTML specifications do not support this construct and your file will
probably not work with future browsers. Remember that browsers can be
forgiving when displaying improperly coded files. But that forgiveness may
not last to the next version of the software! When in doubt, code your files
according to the HTML specifications (see For More Information below).
Character tags modify the appearance of the text within
other elements:
<UL>
<LI><B>A bold list item</B>
<LI><I>An italic list item</I>
</UL>
Avoid embedding other types of HTML element tags. For
example, you might be
tempted to embed a heading within a list in order to make the font size
larger:
<UL>
<LI><H1>A large heading</H1>
<LI><H2>Something slightly smaller</H2>
</UL>
Although some browsers handle this quite nicely,
formatting of such coding
is unpredictable (because it is undefined). For compatibility with all
browsers, avoid these kinds of constructs. (The Netscape <FONT> tag, which
lets you specify how large individual characters will be displayed in your
window, is not currently part of the official HTML specifications.)
What's the difference between embedding a <B>
within a <LI> tag as opposed
to embedding a <H1> within a <LI>? Within HTML the semantic meaning
of <H1>
is that it's the main heading of a document and that it should be followed
by the content of the document. Therefore it doesn't make sense to find a
<H1> within a list.
Character formatting tags also are generally not
additive. For example, you
might expect that:
<B><I>some
text</I></B>
would produce bold-italic text. On some browsers it
does; other browsers
interpret only the innermost tag.
Do the Final Steps
Validate Your Code
When you put a document on a Web server, be sure to
check the formatting and
each link (including named anchors). Ideally you will have someone else read
through and comment on your file(s) before you consider a document finished.
You can run your coded files through an HTML validation
service that will
tell you if your code conforms to accepted HTML. If you are not sure your
coding conforms to HTML specifications, this can be a useful teaching tool.
Fortunately the service lets you select the level of conformance you want
for your files (i.e., strict, level 2, level 3). If you want to use some
codes that are not officially part of the HTML specifications, this latitude
is helpful.
Dummy Images
When an <IMG SRC> tag points to an image that does
not exist, a dummy image
is substituted by your browser software. When this happens during your final
review of your files, make sure that the referenced image does in fact
exist, that the hyperlink has the correct information in the URL, and that
the file permission is set appropriately (world-readable). Then check online
again!
Update Your Files
If the contents of a file are static (such as a
biography of George
Washington), no updating is probably needed. But for documents that are time
sensitive or covering a field that changes frequently, remember to update
your documents!
Updating is particularly important when the file
contains information such
as a weekly schedule or a deadline for a program funding announcement.
Remove out-of-date files or note why something that appears dated is still
on a server (e.g., the program requirements will remain the same for the
next cycle so the file is still available as an interim reference).
Browsers Differ
Web browsers display HTML elements differently. Remember
that not all codes
used in HTML files are interpreted by all browsers. Any code a browser does
not understand is usually ignored though.
You could spend a lot of time making your file
"look perfect" using your
current browser. If you check that file using another browser, it will
likely display (a little or a lot) differently. Hence these words of advice:
code your files using correct HTML. Leave the interpreting to the browsers
and hope for the best.
Commenting Your Files
You might want to include comments in your HTML files.
Comments in HTML are
like comments in a computer program--the text you enter is not used by the
browser in any formatting and is not directly viewable by the reader just as
computer program comments are not used and are not viewable. The comments
are accessible if a reader views the source file, however.
Comments such as the name of the person updating a file,
the software and
version used in creating a file, or the date that a minor edit was made are
the norm.
To include a comment, enter:
<!-- your comments here -->
You must include the exclamation mark and the hyphens as
shown.
For More Information
This guide is only an introduction to HTML, not a
comprehensive reference.
Below are additional online sources of information. Remember to check a
bookstore near you for Web and HTML books.
Style Guides
The following offer advice on how to write
"good" HTML:
* Composing Good HTML
* W3C's style guide for online hypertext