HTML Editor

HTML editors offer either a plain text view, or a WYSIWYG ("what you see is what you get") view, or both.

I strongly recommend against using DreamWeaver, Microsoft Word, or FrontPage for web page authoring. The HTML they produce is atrocious, and it is very easy with those tools to produce sites that are completely broken, without knowing it.

Regardless of what other editing tools you use, you will benefit from being able to edit raw html in a simple text editor such as NotePad or WordPad (on Windows) or TextEdit (on Mac OS X). This is not snobbery: the higher-level tools are inevitably prone to producing small issues that you'll have to resolve at the raw html level. (Regarding Mac "TextEdit": it is best to not use it in WYSIWYG mode for html. You have to choose before opening whether to open as plain text or wysiwyg. It cannot save html as a "rich" format, only rtf and Word. If you convert to plain text from rich, it will save only the text extract, not the html markup. So be sure to select "Ignore rich text commands".)

The Mozilla project ships a decent HTML editor ("Composer") with their full release. (Also available as Netscape 7). It is free, and available for every platform: www.mozilla.org/releases/ . On the Mac, the Omniweb browser also has a builtin html editor.

My current recommendation is the new Nvu project: http://www.nvu.com/ (free, based on Mozilla Composer). It is available On Mac, Windows, and Linux.

Another good solution on Windows is HTML-Kit (free version, $44 to register).

Specifically for CSS (and only on Windows commercial) http://www.bradsoft.com/topstyle/tslite/fullver.asp

If you are using a WYSIWYG HTML editor, be sure to investigate what options it has to control whether it will "fix up" your html, or leave it as it is (and let you save invalid html). Sometimes you want this feature, and sometimes you don't: for example, sometimes you'll be editing something that is deliberately invalid, such as an html fragment to be included in another document, or an html template. (To turn this off in Mozilla Composer, go to "Preferences", select "Composer", and select "Retain original source formatting".)

There are some well-known free "programmer's editors", which typically have syntax coloring for editing html and xml, even if there is no wysiwyg mode. Each of these is available in practically every OS:
www.jedit.org
www.nedit.org
Simredo
www.vim.org
GNU Emacs , GNU Emacs for Windows, XEmacs Emacs for OS X (src) Emacs for OS X (binary)
ConText (closed source free, windows only)

There are an endless number of other alternatives, both free and commercial; see for example:
http://www.nonags.com/nonags/htmledit.html
http://quantum.it-mate.co.uk/freeware/htmleditor.htm
http://www.allmyfaqs.com/faq.pl?HTML_editors
http://www.html-faq.com/editor/?editors
http://www.html-faq.com/editor/?wysiwyg

On unix-like systems, some popular free development environments are:
http://quanta.sourceforge.net/
http://www.eclipse.org/