Jerry Stratton
http://www.hoboes.com/NetLife/Web_Writing/
January 21, 2007
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1; with no Invariant Section, with no Front-Cover Text, and with no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”
HTML is the language of web browsers. Using HTML, you describe how your document is structured so that web browsers can display it appropriately. Unlike normal desktop publishing, with HTML you only work in generalities, if you know what you’re doing. Rather than specifying exactly what your document looks like, you specify which parts of the document are important, and in what way they’re important. The reader’s browser then takes that information and creates a web page, regardless of whether that browser is a graphical browser on Windows, a text-based browser on Unix, or a voice reader for the blind.
When writing HTML, you surround various parts of the text with descriptions of what added meaning you want the text to convey. For example, if you want a word to be emphasized, you surround that word with the ‘emphasis’ HTML code. Almost all HTML ‘markup’ is done by surrounding the words with the code that affects it. The beginning tag is always a word, such as “em”, surrounded by the greater than and less than symbol: <em>. The ending tag is the same thing, but with a slash added: </em>.
You need to surround your entire web document with the ‘html’ tag: <html> to begin and </html> to end.
You need to surround the top of the document, or document information with the ‘head’ tag: <head> and </head>.
You need to surround the ‘body’ or meat of the document with the ‘body’ tag: <body> and </body>.
It’ll look like:
<html>
<head>
document information
</head>
<body>
the main part of the document
</body>
</html>
The ‘head’ is where document information goes. This is information about the document itself. It’s for the browser software, not for the human reading the page. You’ll want to give the title of your document, the keywords that are important in your document, and the description that summarizes your document.
The title of the document is used to bookmark your web page if the reader wants to keep a bookmark of it. It is also the text that appears in the window bar of graphical web browsers. If a ‘web spider’ such as Alta Vista indexes your document, this is the title of your document in their index. You make some text your title by surrounding it with the <title> and </title> tag. You should keep it reasonably short and descriptive.
There are two ‘meta’ tags that set your document’s keywords and description. Meta tags stand on their own: you don’t specify an ending for a meta tag. The tag for your keywords is <meta name="keywords" value="keyword1, keyword2, keyword3, etc. "> and the tag for the description is <meta name="description" value="This is a summary of my document. It is cool.">
<head>
<title>A Web Writing Guide: Marking Text</title>
<meta name="keywords" value="Web, HTML" />
<meta name="description" value="A guide to creating web documents by hand, using basic HTML markup code." />
</head>
The body is where the meat of the document goes. All of the information that you’re giving to the reader goes in the body.
Paragraph tags affect entire paragraphs of text. Very much like in your word processor, some changes can be made to individual letters, but many changes always affect entire paragraphs.
HTML ignores whatever carriage returns you put into the document. If necessary, it replaces them with a space. It also ignores any multiple spaces or tabs: no matter how many spaces you put between two words or at the beginning of a line, good web browsers will only display one space.
Otherwise normal paragraphs need to be marked with the <p> tag. The HTML code:
<p>This is an HTML paragraph.
Please read carefully.</p>
Will end up looking like:
This is an HTML paragraph. Please read carefully.
You can modify your paragraph tag with the align attribute. Attributes are things that appear inside of tags. They modify how the text affected by that tag appear on the screen. Often, you will want to center your paragraphs or align them to the right:
<p align="right">This is a right-aligned paragraph.</p>
<p align="left">This is a left-aligned paragraph. (Most of them are, by default.)</p>
<p align="center">This is a centered paragraph. It usually looks ugly.</p>
You might notice that the “align” attribute does not specify meaning, it specifies layout. This is true, and for this reason you need to be careful using it. Since it describes physical layout it will be ignored where that layout makes no sense. If you mean for ‘layout’ changes such as ‘align’ to convey meaning, that meaning will be lost under certain circumstances. In general, you will want to avoid such attributes in favor of cascading style sheets. Usually, when you start using such attributes you are trying to set a style for your web pages. Style sheets let you do that much more easily. But that’s a topic for another tutorial.
You have a number of ‘headline levels’ to work with. The highest level headline--which produces the largest text--is level 1. You can currently use up to level 6.
The headline tag is <h#>, replacing the ‘#’ with the heading level you want. For example:
<h1>This is level 1</h1>
<h2>This is level 2</h2>
<h3>This is level 3</h3>
<h4>This is level 4</h4>
The above html code produces something like:
This is level 1
This is level 2
This is level 3
This is level 4
You should not use heading tags just to make large text. Heading tags mean that the marked text is the headline for the following text. Use the <font> tag to increase text size in non-headlines if you absolutely must.
You can align your headlines in the same way that you align your paragraphs: <h1 align="right">, for example.
When you make a quote, you’ll often want to set it off from the rest of the text. Use the <blockquote> tag. For example,
<blockquote>
“Hey, Scooob, let’s not risk our lives going upstairs to viddie ghosts doing the old in out in out. Let’s just hide from our droogies in this creepy old cellar.”--<cite>Doug Shaw</cite>
</blockquote>
will produce:
“Hey, Scooob, let’s not risk our lives going upstairs to viddie ghosts doing the old in out in out. Let’s just hide from our droogies in this creepy old cellar.”--Doug Shaw
We’ll be getting to that cite thing and what those ‘&’ things are, later on. But I think you can probably guess what they do by looking at the text they produce!
Web browsers ignore your carriage returns and format your text according to the size of the reader’s screen. Web browsers also ignore spaces and tabs at the beginnings of lines. You may well have a large number of documents formatted in a ‘text only’ format that requires multiple spaces, tabs, and multiple carriage returns to keep its formatting.
If you want to keep these spaces in, you’ll need to use the <pre> tag. This maintains the ends of lines, tabs, and spaces. Be careful doing this: it is usually better (if you have the time) to convert your text-only documents to web documents.
You can mark specific parts of your text as emphasized, strong, a citation, or a ‘keyboard’ entry.
Emphasis is usually shown to the reader as italicized. To emphasize a word or phrase, surround the word or phrase with <em> tag.
“But I don’t <em>want</em> a cookie,” she cried.
Becomes:
“But I don’t want a cookie,” she cried.
The strong tag is usually shown to the readers as bold. The tag is <strong>.
<strong>Algernon.</strong> Here it is. (<em>Hands cigarette case.</em>) Now produce your explanation, and pray make it improbable. (<em>Sits on sofa.</em>)
becomes:
Algernon. Here it is. (Hands cigarette case.) Now produce your explanation, and pray make it improbable. (Sits on sofa.)
Citations are also usually shown as italic. They refer to the source of something that you’re quoting or attributing.
I’d rather be in some dark hollow where the sun don’t ever shine<br>
Then to be in some big city, in a small room, with you upon my mind.<br>
--<cite>Dark Hollow</cite>
becomes:
I’d rather be in some dark hollow where the sun don’t ever shine
Then to be in some big city, in a small room, with you upon my mind.
--Dark Hollow
The keyboard tag is for those times when you’re talking about what the reader is doing on their keyboard. For example, you might write:
Type <kbd>666</kbd> and press <kbd>return</kbd>.
in order to say:
Type 666 and press return.
I use this a lot for tutorials--like this one, for example--but you may have less use for it.
You can make superscripts and subscripts with the <sup> and the <sub> tags, respectively:
Go to 5<sup>th</sup> Street and drop the CO<sub>2</sub> in the first Buick Regal.
to get
Go to 5th Street and drop the CO2 in the first Buick Regal.
Most of the HTML tags have some sort of semantic meaning. They tell the browser, whether that browser is a graphical web browser or an audio web reader or a cell phone, what kind of text is contained by the tag. Sometimes, however, you want to specify purely typographical changes with no meaning whatsoever.
For that, you can use styles. Styles are a topic all their own. Styles can be stored in a separate file so that all of your pages have a similar style, and you can change that style without having to edit every page. But for now, you can also use styles inside each page by adding a “style” attribute to any tag.
If you want your headlines to be really big, give them a font-size style:
<h1 style="font-size: 800%;">
You should not use styles tag to create headlines out of paragraphs of other non-headline tags! That's what the <h> tags (<h1> through <h6>) are for. If you create headlines with the style attribute, it might look the same as creating them with <h> tags, but as far as computers go, your fake headlines will blend in with the rest of your document. Search engines will not prioritize your page based on your headlines, because you don't really have any. Browsers that output to devices other than screen or printer won't see any difference between your fake headlines and your text.
You can also change the color of your text. You should be careful doing this: graphical browsers use colors to let the reader know what a link is, and whether that link has been visited recently. If you change the color, that can confuse the reader. The style for color is “color”.
<h1 style="color: green;">
You can specify the font itself if you want to use a specific font on your page. Because you can’t be guaranteed that the reader has the font you specify, you can specify several fonts, separated by commas. The first font that matches a font that the reader’s computer has will be used. If they don’t have any of them, their preferred font for that context is used instead.
Always remember that font requests are guidelines for the browser. There are no guarantees that the reader will see that font.
<h1 style="font-family: American Typewriter, Courier, monospace;">
Sometimes you’ll want to add a style where you have no tags. There are two “functionless” tags for this purpose. The paragraph-level functionless tag is <div>. The character-level functionless tag is <span>. The <div> and <span> tags do nothing on their own. They are designed specifically for adding styles.
You can also combine multiple style specifications by separating them with semicolons.
<div style="float: right; border: inset;"><p><span style="font-size: 200%;">H</span>ello. <span style="color: green;">Kermit</span> <span style="font-size: 150%; color: gold; font-family: koala,zapf chancery,apple chancery;">loves</span> Piggy.</p></div>
Will give you something like:
Hello. Kermit loves Piggy.
When you want to present the reader with a list of items, you can use HTML to handle the bullets or to automatically number the items, and to determine the correct indentation.
Unordered lists use bullets. In order to start a list, you use the <ul> tag, and you surround each item with <li>.
<ul>
<li>Apple</li>
<li>Orange</li>
<li>Kumquat</li>
<li>Potato</li>
<ul>
<li>Russet</li>
<li>Yellow Fin</li>
<li>of the Earth</li>
</ul>
<li>Tomato</li>
</ul>
will become:
n Apple
n Orange
n Kumquat
n Potato
¦ Russet
¦ Yellow Fin
¦ of the Earth
n Tomato
Some browsers will use different bullets for each level of the list, if you ‘nest’ lists as I did above.
An ordered list is numbered. It looks just like an unordered list except that the list is marked by <ol>. Replace the ‘ul’ with ‘ol’ in the above list, and you get:
1. Apple
2. Orange
3. Kumquat
4. Potato
a. Russet
b. Yellow Fin
c. of the Earth
5. Tomato
A definition list is like a dictionary entry: each item has a term and a definition. Surround the definition list with the tag <dl>. Mark the terms with <dt> and the definitions with <dd>.
<dl>
<dt>Alice’s Adventures Underground</dt>
<dd>The first <em>Alice</em> book was written between 1862 and 1864 by Charles Lutwidge Dodgson as a tale for the three Liddell girls.</dd>
<dt>Alice’s Adventures in Wonderland</dt>
<dd><em>Wonderland</em> is a re-telling of <em>Underground</em>, and expands the story from 18,000 to 35,000 words. <em>Wonderland</em> was published in 1865 with illustrations by <em>Sir John Tenniel</em>.</dd>
<dt>Alice’s Adventures Through the Looking Glass</dt>
<dd>The final <em>Alice</em> book was written by Adam Weisshaupt under the auspices of the <em>Bavarian Illuminati</em> in 1893.</dd>
</dl>
will become something like:
Alice’s Adventures Underground
The first Alice book was written between 1862 and 1864 by Charles Lutwidge Dodgson as a tale for the three Liddell girls.
Alice’s Adventures in Wonderland
Wonderland is a re-telling of Underground, and expands the story from 18,000 to 35,000 words. Wonderland was published in 1865 with illustrations by Sir John Tenniel.
Alice’s Adventures Through the Looking Glass
The final Alice book was written by Adam Weisshaupt under the auspices of the Bavarian Illuminati in 1893.
You will often want to use the strong or emphasis tag along with the definition term (<dt>) to make it stand out.
Some text characters don’t use standard beginning and ending tags. Most of these look like “&word;” or “&#number;”. Because the “&” marks the beginning of a special character, if you really want an ampersand you’ll want to write it as “&”: John & Mary, for example.
Most computer geeks use “straight” quotes. They tend to look pretty stupid (the quotes, not the geeks): John said, "Hello, Mary. It's nice seeing you!"
That’s because, in the past, computers couldn’t display normal quotes, and the web took a long time to catch up. You would occasionally even see silliness such as, John said, ``Hello, Mary. It's nice seeing you!''
Fortunately, you don’t have to do that sort of thing any more. Use the following special codes for curly quotes:
|
Code |
Quote |
|
‘ |
‘ |
|
’ |
’ |
|
“ |
“ |
|
” |
” |
Thus, John said, “Hello, Mary. It’s nice seeing you!” will appear as it is supposed to: John said, “Hello, Mary. It’s nice seeing you!”
These are easy to remember as “left single quote”, “right single quote”, “left double quote”, and “right double quote”, respectively.
There is another way of showing quotes that is conceptually better, but it is still not well supported. This is the <q> tag. By surrounding a quote with the <q> tag, you are specifying some real meaning: that this is a quote, and it begins and ends here. The ampersand codes to not convey any meaning; they are simply methods of displaying specific characters.
If you need to force line breaks, you can use the <br /> tag. Even though this looks like a normal tag, there is no ‘end’ to this tag. More specifically, it is its own end. All HTML tags require an end, but for those that don’t need any text between the beginning and end you can imply an immediate ending with <TAG />. That final slash tells the browser that this tag is its own ending.
Use ‘©’ to place a copyright symbol: ©.
On the web, a link is a connection to somewhere else. This somewhere else can be another part of your document, a picture, another document on your web site, or even another document on someone else’s web site.
If you have pictures on your web site, you can put them inside your web documents. You can also use any picture accessible on the net! You will of course want to use this ability responsibly: always make sure you have permission to use someone else’s work.
Your pictures should be in ‘gif’ or ‘jpeg’ format, because that’s what most web browsers can read. ‘GIF’ is more widely known, and ‘JPEG’ uses smaller files (saving quota on your account, if you are charged for extra disk space). In general, GIF is better for simple drawings, and JPEG is better for photographs.
In the future, PNG is going to take over from GIF, and for the most part you can use PNG now if you wish to.
Pointing to a picture is like most other things in html, except that there isn’t an ‘end’ tag. The ‘picture’ tag (called an image) is:
<img src="wherethepictureis" />
If you have a picture called ‘mom.gif’ in your web site, you could point to it with:
<img src="mom.gif" />
This only works if the image is in the same folder as your web page. It is often a good idea to store your images in a separate folder just to keep things neat. If the image is in a separate folder, you have to specify the folder as well. If you call the folder “pictures”, use:
<img src="pictures/mom.gif" />
If you want to show off an image that isn’t on your personal site, you have to specify the site where the image is:
<img src="http://sitename/image" />
Usually, you’ll use your web browser to look at the image, and then get the image’s location, or URL. The URL is what goes in between the straight quotes on “src”. In graphical web browsers, you can find an image’s location by holding the mouse button down while the mouse is over the image. (For Windows computers, hold the right mouse button down.) A menu will pop up, and one of the items is to “copy” the image location.
This points to the Negative Space logo no matter where the web page is:
<img src="http://www.hoboes.com/Graphics/Cerebus.jpg" />
Always check with the image owner before doing something like this! They might not want you using their image, or they might want you to do something special with it, like always link back to their page.
You can align the text next to the image to the top, bottom, or middle of the image.
Here’s how to align text to your picture:
<img src="picture" align="alignment" />
The alignment can be ‘top’, ‘bottom’, or ‘middle’, which aligns the image’s top, bottom, or middle with the text’s top, bottom, or middle. ‘Bottom’ is the default. You’ll probably usually want ‘middle’:
<img src="http://www.hoboes.com/Graphics/Cerebus.jpg" align="middle" />Negative Space!
You should only want to <em>align</em> top, bottom, or middle with short text. Long text will wrap around in an ugly manner--only the first line will be aligned. The rest will be underneath the image. Web browsers treat top, bottom, and middle-aligned image as if they were just another text character, albeit a large one.
You can, however, also align with ‘left’ or ‘right’. This aligns the image to the left or right side of the viewer’s page, with the top of the image at the same level as the next new line. Using ‘left’ and ‘right’, you can have the text of a page wrap nicely around your pictures. You can force it to stop wrapping with the <br clear="all" /> tag. The addition of ‘clear’ causes the line to break and resume at the bottom of the current image.
A lot of people don’t have graphical interfaces to the net. When someone without a graphical interface gets a page that has pictures on it, the pictures are replaced with the word [IMAGE], with nothing, or with something else.
If you want something else to be displayed, include the attribute alt="alternate text to be displayed" in your img tag.
<img src="/Graphics/Cerebus.jpg" alt="The Negative Space Logo" />
You’ll need to be careful that your alternate text makes sense next to whatever normal text you’ve got the picture near. And remember who your alternate text is for: people or computers that are not downloading your image.
When you link to other places on the net, that means you’re showing your readers the ‘way’ to get there. You might decide, for example, that the FireBlade Mail Your Rep page (http://www.hoboes.com/Politics/electednet/) is something that your readers should be able to get to. You’ll ‘link’ to that page from your document, and they’ll be able to click on your link and go directly to the mail your rep page without having to know its address on the net. The ‘tag’ is ‘a’, which stands for ‘anchor’. You are ‘anchoring’ this text to another page on the net. The attribute ‘href’ specifies the page you’re anchoring to.
The ‘clickable’ text usually appears blocked out or in color to the reader.
The <a href="http://www.hoboes.com/Politics/electednet/"> FireBlade Mail Your Rep</a> page!</a>
The above example will “link” the words “FileBlade Mail Your Rep” to the web page listed in the “href” option. In graphical browsers, readers will be able to “click” that text to get to that page.
You can also link to an e-mail address. When the reader selects this type of link, they’ll be able to send a message to the address you linked. For example, if you would like your readers to send e-mail to president@white-house.gov, you would use:
<a href="mailto:president@white-house.gov">The President of the United States</a>
<a href="mailto:vice-president@white-house.gov">The Vice President of the United States</a>
This allows any of your readers to send e-mail directly to the President or Vice President just as if they were visiting another web page. They’ll “click” and write their message.
If you want to specify a subject for the message, you can add “?Subject=This%20is%20my%20Subject” to the end of the address. You can’t have spaces in a ‘URL’, so you have to put ‘%20’ wherever a space should appear.
<a href="mailto:president@white-house.gov?Subject=Vote%20Libertarian">The President of the United States</a>
Generally, you’ll have more than one web page on your web site. You can link to these other documents on your site in the same way that you make links to e-mail addresses. Your web page filenames should always (if it is an html file) end in .html.
<a href="filename.html">Click here for the file</a>.
When the reader selects that link, they are transported to the new file.
That form only works if the new web page is in the same folder as the web page that is doing the linking. If the web pages are in different folders, you’ll have to specify the full ‘path’ to the new page:
<a href="/folder/filename.html">Click here for the file</a>.
This ‘html code’ links to the search page on Negative Space:
<a href="/Search.html">Search Negative Space</a>
You can also link to web pages on other web sites. Just like with images, if the web page you’re linking to is not on your web site, you have to specify what web site it is on:
<a href="http://sitename/filename.html">The link text</a>
For example, if you wanted to link to the Negative Space search page from your web site, you would have to include the site name:
<a href="http://www.hoboes.com/Search.html">Search the Great Negative Space!</a>
You can point to most any Internet site from inside your web pages. You can find the ‘href’ for any site you’ve visited by looking in the ‘location’ box, which is usually in the upper part of your web browser.
You’ll often see ‘URL’s which don’t end in ‘.html’ but instead end in ‘/’. These are the ‘main pages’ of that area of that web site. Your main page should almost always be called ‘index.html’ (it depends on your web server, but the best web servers do it that way). Any page that is called ‘index.html’ can have the ‘index.html’ left out of the address. For example, http://www.hoboes.com/index.html is better addressed as simply http://www.hoboes.com/.
Web tables allow you to create fairly complex pages, but tables themselves are basically quite simple. The tag is ‘table’, and just like any other tag, you surround the text you’re putting in the table with ‘<table>’ and ‘</table>’.
You should be careful with tables. They’re so simple to create, you can easily make a web page that can’t be read by anyone but you. Remember that there are lots of different web browsers out there, some of them that don’t even use computer screens. Simpler is almost always better!
HTML tables are made up of ‘rows’ and ‘columns’. You’ll almost always work with them by row rather than by column. Within the <table> and </table>, you’ll surround your rows with <tr> and </tr>. You can specify the alignment of the text in that row with ‘align=’ left, right, or center. You might also need to specify the up/down alignment. By default, text is centered up and down, so that if you have three columns, and one column has three lines and the other two have one line, the line in the one-line cells will be in the center of the cell. Specify ‘valign=’ top, bottom, or middle to specify the vertical alignment of the cells in this row.
There are two types of table cells: headers and data. Headers tend to be marked off with bold and special alignment, where data is just normal text. You can specify the ‘align’ or ‘valign’ of your cells just like you can the rows. The alignment of a cell takes precedence over any alignment specified for the row the cell is in.
The tag for a header cell is <th> and </th>. The tag for a normal ‘data’ cell is <td> and </td>.
Here’s a simple table that corresponds fruit to colors:
<table>
<tr><th>Fruit</th><th>Color</th></tr>
<tr><td>Apple</td><td>Red</td></tr>
<tr><td>Orange</td><td>Orange</td></tr>
<tr><td>Lemon</td><td>Yellow</td></tr>
</table>
It produces a table that looks like:
|
Fruit |
Color |
|
Apple |
Red |
|
Orange |
Orange |
|
Lemon |
Yellow |
By default, your tables have either no visible border, or small visible borders, size ‘1’. You can specify a ‘border’ of ‘0’ to have no visible borders, or a ‘border’ of ‘1’ or greater for borders of increasing thickness.
<table border="0">
You can align your tables with ‘left’ and ‘right’. A left-aligned table appears on the left of the computer screen. Text wraps around it on the right. A right-aligned table appears on the right of the computer screen. Text wraps around it on the left.
Here’s a table that is set off to the right, with thicker borders:
<table align="right" border="3">
<tr><th>Fruit</th><th>Color</th></tr>
<tr><td>Apple</td><td>Red</td></tr>
<tr><td>Orange</td><td>Orange</td></tr>
<tr><td>Lemon</td><td>Yellow</td></tr>
</table>
|
Fruit |
Color |
|
Apple |
Red |
|
Orange |
Orange |
|
Lemon |
Yellow |
If you need your table to take up a specific amount of the screen, you can specify the ‘width’ of the table to be a certain percentage. A table tag that says “<table width="100%">” will span the entire width of the computer screen, whereas “<table width="33%">” will take up a third of the computer screen.
You can do the same thing to your cells: <td width="50%"> will make that cell take up half the table’s width. All cells in any column must be the same width! (There are special ways around this, but that’s for a more advanced lesson.) So, you can’t specify that the first cell in row one is 50% of the table width, and then specify that the first cell in row two is 33% of the table width. The browser will have to ignore one of them.
A form is a way for other people to easily give you information. It’s a lot like a paper form. Usually, forms go through a special web program called a ‘CGI’ that takes the form data, formats it, and sends it to you. Ask your web service provider if they have any generic forms for you to use. If they don’t, you’ll have to have the results of the form e-mailed to you.
Forms get marked just like anything else in HTML. You need to surround your form with the <form> tag, as in:
<form method="post" action="/cgi-bin/GenericEMailForm.cgi">
<em>the text of the form</em>
<input type="submit" value="Submit This Form" />
</form>
The form tag has two attributes: method, and action. The method has to be post. There are other methods, but <em>post</em> is the standard. You’ll almost never need the others.
The action attribute tells the reader’s web browser where to send this information. You can send it to an e-mail address, or you can send it to a special web-based computer program. If your web service provider doesn’t have a generic computer program for you to use, you can just specify your e-mail address: mailto:username@wherever.
<form method="post" action="mailto:username@domain">
Replace username@domain with your full e-mail address.
Forms ask for input. And they do it with--guess what?--an input tag:
<input type="input type" name="input name" value="default value" />
The input type describes how you want the data to be entered. You can have the following input types. The “name” of your input type can be whatever you want.
|
<input type="checkbox" name="cb" /> |
A checkbox. With a group of checkboxes, the user can select any number of checkboxes within that group. |
|
<input type="radio" name="rd" /> |
A radio button. With a group of radio buttons (radio types with the same name), the user can select only one radio button within that group. |
|
<input type="text" name="tx" /> |
A line of text. |
There are two other ways of getting data that don’t use the input tag:
|
<textarea name="TextArea" rows="3" cols="40">A Text Box</textarea> |
A Text Box |
|
<select name="select"> |
A list of items that the user chooses from. |
And there are two control ‘buttons’:
|
<input type="submit" value="Submit Data!" /> |
A button that the user can press to submit the data. |
|
<input type="reset" value="Reset to Defaults" /> |
A button that the user can press to erase all the data they have entered and return to the defaults you have set. |
You have to have at least one ‘submit’ button for each form, or your reader won’t have any way to send you the form info once they’ve filled it out! Be careful with the “Reset” type, as it makes it very easy for your users to mistakenly erase all of their hard work!
The input tag has a ‘name’ attribute and a ‘value’ attribute. The name is the name of the form field when it gets returned to you. The value is the default value of that form field. If you have a checkbox with the name ‘Computer’ and value ‘IBM-PC’ in your form, and the reader checks that box, you’ll get the result
Computer=IBM-PC
when the form is mailed to you. You might even have more than one ‘computer’ checkbox that the reader can check, resulting in a set of results:
Computer=IBM-PC 486&Computer=Macintosh IIcx&Computer=Newton 100
Yes, this looks pretty ugly. Forms weren’t really designed to be e-mailed. For better results, find out if your web service provider has a default generic form CGI.
For the text input type, the value is the text that the reader types into the box.
You use checkboxes to allow the reader to select any number of options from a list of options. On a graphical interface, checkboxes are boxes that the reader can ‘check’ by clicking the mouse.
<input type="checkbox" name="Anonymity" value="Yes" />Would you like to remain anonymous?<br />
<input type="checkbox" name="Computer" value="IBM 486" />I have an IBM ‘486<br />
<input type="checkbox" name="Computer" value="Macintosh IIcx" checked />I have a Macintosh IIcx<br />
<input type="checkbox" name="Computer" value="None of the above" />I don’t have any of those.<br />
<input type="checkbox" name="Computer" value="None" />I don’t have a computer.
This will produce checkboxes that allow the reader to select any number of computer types. When you type this in, you will notice that the Macintosh IIcx option is already checked. That’s because we included the checked option inside its input tag. You can pre-check as many checkboxes as you want. The reader will have to uncheck those if they don’t want them checked.
Radio buttons are like checkboxes, except that only one radio button can be selected in any group of radio buttons. You might have the reader select what fruit they want you to throw at them, and what brand of whipped topping they want in their face.
<input type="radio" name="Fruit" value="Orange" />Squishy Orange
<input type="radio" name="Fruit" value="Apple" checked />Rotty Apple
<input type="radio" name="Fruit" value="Banana" />Infested Banana<br>
<input type="radio" name="Topping" value="Reddi-Whip" />Reddi-Whip
<input type="radio" name="Topping" value="Cool Whip" />Cool Whip
<input type="radio" name="Topping" value="Cheez Wiz" />Cheez Wiz
<input type="radio" name="Topping" value="TV Brand" />TV Brand Whipped Topping
The above html code will create radio buttons for “fruit” and “topping”. Your users will only be able to select one fruit and one topping.
The reader can only select one fruit and one topping at a time. The Rotty Apple fruit is the default--it’s preselected with the checked option. Since only one radio button can be selected at one time, you should only preselect one button in any group.
The web browser knows what group each button belongs to by the name: each “fruit” button has the name “Fruit”, and each “topping” button has the name “Topping”.
You’ll often want the reader to fill out some sort of text: their name or their e-mail address, for instance.
Please tell us your name: <input type="text" name="Name" /><br />
Please tell us your e-mail address: <input type="text" name="E-Mail" />
The value of a “text” input type is whatever the reader types into the box. So if you use the value attribute here, that value is displayed as the default, which they can edit or replace. You can also specify the size and the maximum length of the line. The size is the width of the displayed box, and the maximum length is the maximum number of characters the reader can type in.
Please tell us your zip code: <input type="text" name="Zip" value="49421" size="5" maxlength="5" />
The input type of text only accepts one line of text. If you want to accept lots of text, you’ll need to use the textarea tag. You can control the height (rows) and width (columns) of the <em>textarea</em> with the ‘rows’ and ‘cols’ attribute.
The textarea tag is a normal html tag; you have to surround the default text with the <textarea> tag:
<textarea name="Essay" rows="4" cols="30">
Please type your essay here.
</textarea>
And the reader sees a box with four rows and 30 columns that they can type multiple lines into.
When there are large numbers of options to choose from, a collection of radio buttons can get unwieldy and completely fill up your page. The select tag produces a pull-down menu of choices. The marking resembles lists, in that you have one tag to surround the selections, and another tag to mark the beginning of each selection:
<select name="President">
<option>George Washington</option>
<option>John Adams</option>
<option>Thomas Jefferson</option>
etc.
<option selected>Abraham Lincoln</option>
etc.
<option>James Earl Carter, Jr.</option>
<option>Ronald Wilson Reagan</option>
<option>George Herbert Walker Bush</option>
<option>William Jefferson Clinton</option>
</select>
Go ahead, mix and match your dream ticket!
Normally, the first item in the list (George Washington, in this case) is the default selection. You can specify any one of the items as the default by adding the attribute selected after the option tag, as we did here with Abraham Lincoln.
You’ve got two other ‘buttons’ that can be used to control the form. You have to have a submit input type (unless you don’t want anyone sending the form anywhere useful) and you can also have a reset input type. The submit type is a button that, when pressed, sends the form back to you. The reset type allows the user to re-set all the form values back to their defaults, if they want to easily start filling out the form from scratch.
<input type="submit" value="Submit This Form!" />
<input type="reset" value="Erase What You Said!" />
Congratulations! You now know how to create some pretty cool web documents. If you have any comments, please let me know at http://www.jerrystratton.com/. For further information, look for:
HTML: The Definitive Guide (http://www.hoboes.com/Mimsy/?ART=116)
Webmaster in a Nutshell (http://www.hoboes.com/Mimsy/?ART=95)
Recommended Software for the Net (http://www.hoboes.com/NetLife/Software.shtml)
Neon Alley (http://www.hoboes.com/html/NetLife/">http://www.hoboes.com/NetLife/)
Recommended Reading for the Internet (http://www.hoboes.com/NetLife/bookstore.shtml)
Cascading Style Sheets and HTML (http://www.hoboes.com/Mimsy/?ART=129)
And have fun writing!
Jerry (http://www.hoboes.com/jerry/)
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).
3. State on the Title page the name of the publisher of the Modified Version, as the publisher.
4. Preserve all the copyright notices of the Document.
5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
8. Include an unaltered copy of this License.
9. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
11. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
13. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.
14. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.