HTML Interview Questions
1. How do I indent the first line in my paragraphs?
This isn't really possible in a reliable way, until style sheets are more widely
supported. At this moment, there are several browser-specific kludges and tricks
available, but these are not guaranteed to work.
1) Use a number of ( ) characters. Netscape and related browsers do
not collapse these, like normal spaces, so this appears as an indent in these
browsers. Other browsers can display it as one space.
2) Put a <DD> at the beginning of the line. This is syntactically invalid, but Netscape
works around this by indenting the line at this ball. Of course, other browsers will
handle this differently, and there is no guarantee that Netscape will keep doing this.
3) Use a blank, transparent GIF, using WIDTH and HEIGHT to indicate the desired
white space. This is a very ugly solution, as it only works if you have image loading
on, otherwise you get the "Image" icon at the beginning of the line. Not all browsers
support resizing using these attributes, and you can only "indent" a certain number
of pixels, not characters. So the amount of "indentation" varies with the font size
used to display your document.
2. How do I indent a lot of text?
Again, there is no reliable way to do this. Netscape will indent text inside a
<BLOCKQUOTE>, but other browsers don't have to do this. These could show the
text in italics, or perhaps with quotation marks around the text. This could come out
An alternative is to use <DL> without <DT> and <DD>, which is invalid HTML, but
several browsers work around this error by indenting the text inside it. This is not
guaranteed to work.
If you are willing to use tables for layout purposes, there is another option. Create a
one-cell table, as follows:
<!-- The text goes here -->
A drawback to this solution is that very long blocks inside a table may take a while to
download and may not appear until the entire table has been downloaded. Another
8. How do I display the current date or time in my document?
With server-side includes. Ask your webmaster if this is supported, and what the
exact syntax is for your server. But this will display the local time on the server, not
for the client. And if the document is cached, the date will of course be incorrect
after some time.
already have one or more clocks on their screen, why display another one?
9. For what screen size should I write?
HTML does not depend on screen size. The text will be wrapped by the browser when
the end of the screen is encountered. The only exception to this is when you use
<PRE>-formatted text, which will only wrap at the line breaks you indicate. So make
sure these lines are no longer than 70 characters, otherwise text mode users will see
ugly line breaks on their terminals. And users of graphical browsers might have to
scroll horizontally to see the rest, which is one of the most hated things to do when
you read a document.
Of course, an image cannot be wrapped, so you have to be careful with that. It
seems that 400 or 500 pixels is a reasonable width; anything above 600 will mean a
certain percentage of users will have to scroll to see the rightmost bit. This
percentage increases with your image width. Keep in mind that not everyone runs
his browser at full screen!
10. How do I get my visitor's e-mail addresses?
You can't. Although each request for a document is usually logged with the name or
address of the remote host, the actual username is almost never logged as well. This
is mostly because of performance reasons, as it would require that the server uses
the ident protocol to see who is on the other end. This takes time. And if a cache
proxy is doing the request, you don't get anything sensible.
In Netscape 2.0, it was possible to automatically submit a form with a mailto as
address the visitor configured in the From line. Of course, that can be
"email@example.com". This is fixed in Netscape 2.01.
The most reliable way is to put up a form, asking the visitor to fill in his e-mail
address. If you offer him something in return, he will most likely do it.
11. How do I do a pagebreak?
You don't. HTML is not a page layout language. It's up to the browser to decide
where and how to insert page breaks when the document is being printed.
However, style sheets (not widely supported yet, although Microsoft's Internet
Explorer is beginning to use it) will include support to indicate preferred balls for
page breaks, probably somewhat like the way LaTeX handles this.
12. How do I make a table which looks good on AOL and Prodigy?
The best way is probably to include a version in preformatted text. This can be seen
by any browser, including Lynx.
If you absolutely must have a table, check out Alan Flavell's document on tables for
a good discussion.
13. How do I center a table?
The "correct" way of doing it is <TABLE ALIGN=CENTER>, but this doesn't work in
several popular browsers. Put <CENTER> around the entire table for these browsers.
This causes some problems with browser that do support CENTER but not tables,
such as Lynx. In these browsers, the contents of the cells is now displayed centered,
which is not what is intended. To avoid this, you can put the cell's contents in <P
ALIGN=left> or <DIV ALIGN=left> depending on the amount of text in the cell.
14. How do I make animated GIFs?
Ask on the comp.infosystems.www.authoring.images group.
15. Is there a way to get indexed better by the search engines?
Yes. Put these two statements in the <HEAD> part of your documents:
<META NAME="keywords" CONTENT="keyword keyword keyword keyword">
<META NAME="description" CONTENT="description of your site">
Both may contain up to 1022 characters. If a keyword is used more than 7 times the
keywords tag will be ignored altogether. Also, you can't put markup (other than
entities) in the description or keywords list. Infoseek and Alta Vista are using this.
16. How do I redirect someone to my new page?
The most reliable way is to configure the server to send out a redirection instruction
when the old URL is requested. Then the browser will automatically get the new URL.
This is the fastest way to do this. You can of course also simply put up a small page
with a text like "This page has moved to http://new.url/, please adjust your
A Netscape-only solution, which doesn't work on other browsers, and screws up the
"back" button in Netscape, is
<META HTTP-EQUIV="Refresh" CONTENT="x; URL=new.URL">
which will load the new URL after x seconds. This should go in the HEAD of the
document. But if you do this, also include a short text saying "Document moved to
new URL so-and-so" for other browsers.
(The screwing-up bit refers to the fact that if you press "Back" after you have been
redirected, you will be taken to the document with the META refresh. Then the
refresh will be activated, and so you'll jump to the page you just tried to leave.)
17. How do I get a back button on my page?
In HTML, this is impossible. Going "back" means that you go to the previous page in
your history. You might be able to create a link to the URL specified in the
"HTTP_REFERER" environment variable in your document, but that only creates a
link to a new location in your history. Even worse, the information in that variable
can be plain wrong. Some browsers incorrectly send the variable when you use a
bookmark or type in an URL manually, and some don't send that variable at all. Then
you would end up with an empty link.
18. How do I force a download?
You can't. When someone downloads a document, the server tells the browser what
type of file it is. The browser then picks the appropriate helper application, or
displays it himself. If the server doesn't know the file type, it tells the browser that
the file is "text/plain", or just plain text. You will have to ask your server admin to
configure this particular file with the MIME type you want.
"Forcing" a download is not what you are supposed to do. After all, what is more
convenient than having the proper application started when I download a particular
file? Browsing through a download directory can be quite a pain. And most browsers
allow the user to download to disk if they want to.
If the file must be saved to disk, as there is absolutely NO other way to handle it, the
MIME type should be "application/octet-stream".
19. Why is my binary file not downloaded, but shown on the screen?
Actually, the browser has downloaded the document, it is just treating it as a plain
text file. This is because the server said it was a plain text file. To get the file in the
helper application (or plug-in), you will have to configure the server to send out the
right MIME type, and the browser to start the appropriate helper application for files
with that MIME type.
20. How do I use an image instead of the standard submit button?
Use <INPUT NAME=foo TYPE=image SRC="http://url.to/image.gif"> instead of the
normal submit tag. There is no way to do this for the reset button.
Note that some browsers will also send the x and y coordinates of the location where
the user clicked on the image to the server. They are available as
"foo.x=000&foo.y=000" in the CGI input.
21. How do I get a so-and-so character in my HTML?
HTML text is supposed to be written in the ISO Latin-1 character set. A complete
overview of all the characters in this set is available from:
22. How do I get a counter?
Either ask your Webmaster for access to the log files, or for a server-side include
which can do this, or use one of the freeware counters available at the CGI archives.
There is no HTML tag to do this.
Counters are quite ball less, though. They can be set to any value the owner wants,
so they don't give you any information. Because of the delay that often occurs when
using an external counter, your visitors may get annoyed with the long loading time
of your document. The server's log file provides a lot more reliable information for
you, and you don't have to bother your readers with it.
23. How do I detect what browser is being used?
Many browsers identify themselves when they request a document. A CGI script will
have this information available in the HTTP_USER_AGENT environment variable, and
it can use that to send out a version of the document which is optimized for that
Keep in mind not all browsers identify themselves correctly. Microsoft Internet
Explorer, for example, claims to be "Mozilla 1.2" to get at Netscape enhanced
And of course, if a cache proxy keeps the Netscape enhanced document, someone
with an other browser will also get this document if he goes through the cache.
24. I want to get an audio file to play automatically when someone visits my
Bleh. What if I visit your site at 3am, and there's someone sleeping in the next
For Netscape, this is done using the <EMBED> tag. You can also do this with the
Netscape <META> refresh tag, as described earlier. Just put the URL of the audio file
in the CONTENT field.
There is also a MS Internet Explorer specific tag to do this: <BGSOUND SRC=URL>
which plays the file specified in the SRC attribute automatically. You can add LOOP
followed by a value or the keyword "INFINITE" to indicate how many times the sound
should be played.
25. Should I put quotes around attribute values or not?
It depends. It is never wrong to use them, but you don't have to if the attribute
value consists only of letters, digits, periods and/or hyphens. This is explained in the
HTML 2.0 specs.
Oh, and keep in mind that if you use double quotes, you should escape any quotes
inside the value with """ so you don't accidentally terminate the value
26. Should I use lower case or upper case for tags?
Tags are case insensitive, so it doesn't matter. This is just a matter of style. Many
people prefer upper case, as it makes the tags "stand out" better amongst the text.
28. My images/hyperlinks are coming out all wrong, or don't load! What's
Most likely you forgot to close a quote at the end of an HREF or SRC. Alternatively,
perhaps you used a ">" character in an ALT text or somewhere else inside a tag.
Although this is legal, several older browsers will think the tag ends there, so the
rest is displayed as normal text.
This especially happens if you use comment tags to "comment out" text with HTML
tags. Although the correct syntax is <!-- --> (without "--" occurring anywhere inside
the comment), some browsers will think the comment ends at the first > they see.
29. How do I get a button which takes me to a new page?
This is done with a small form:
<FORM ACTION="http://url.you.want.to.go.to/" METHOD=GET>
<INPUT TYPE=submit VALUE="Text on button" NAME=foo>
If you want to line up buttons next to each other, you will have to put them in a one-
row table, with each button in a separate cell.