Documents
XHTML is a standard created by the W3C to replace HTML, and is essentially equivalent to HTML 4.01. The main difference between earlier versions of HTML and XHTML is that XHTML is defined strictly by an XML document type, so XHTML documents must be conforming XML documents. For example, all elements in XHTML must be closed--you can no longer expect the target web browser to determine where a
<p>should end. Also, all element names in XHTML are lower-case, and all attributes must be surrounded in double-quotes. You can read the XHTML Standard if you like.
Cascading Style Sheets (CSS) is a standard for specifying the display of elements on an (X)HTML page. In principle, XHTML should just mark up content, and allow the browser, using the CSS for that page, to determine the layout and display. Moreover, the author of the page should not expect to have perfect control over its display. However, there are a number of problems. For one, not all browsers support CSS 1 or 2 fully. Secondly, the CSS specifications do not cover every detail of how elements should be displayed when a CSS style is applied, so different browser programmers have had to make their own decision as to what the spec intended.
I attempted to have the XHTML almost completely style-free, and also attempted to put all the styling within the external CSS file. I wasn't completely successful, I think, but the end result is much better than in my original web site. For example, it's much easier for me to change colors, fonts, borders and to a certain extent the page layout, merely by updating the CSS file. Some decisions, for example to have a basic two-column layout on all pages, implicitly limit the control the CSS file has over changing layout.
The content was edited using jEdit, a general-purpose open source editor. jEdit has a number of "plug in" modules for highlighting words as you edit them--for example, when editing a CSS file, the CSS keywords are highlighted. It can also manage a set of files as a project, and can link into tools such as Ant (see below) to direct the generation of the site. I could have used any good text editor, as I was writing all parts site by hand, including the content, CSS, XHTML, etc.
Building this Website with XML and XSL