- From: Gerald Oskoboiny <gerald@cs.ualberta.ca>
- Date: Mon, 15 Apr 1996 18:58:46 -0600 (MDT)
- To: www-html@w3.org
Abigail writes:
> You, Heikki Vesalainen wrote:
> ++ I'm making some HTML pages for the big public and I really don't know
> ++ should I use <DIV ALIGN=CENTER> or <P ALIGN=CENTER>.
>
> What I suggest is that you first logical markup your document
> without bothering about layout specific attributes.
>
> Then, after you have finished doing that, you add the 'align = center'
> attributes. If you have used <div> in your document, you can use
> <div align = center>. If it's only <h?> and <p>, you use
> <h? align = center> and <p align = center>.
>
> The logical markup of the document is far more important than the layout
> hints. The attributes go with the elements; one doesn't use elements
> for the attributes.
I agree with this 100%. I have just one more small thing to add: if you
find yourself writing something like this:
<H2 ALIGN=CENTER> heading </H2>
<P ALIGN=CENTER> paragraph paragraph paragraph. </P>
<P ALIGN=CENTER> paragraph paragraph paragraph. </P>
<TABLE ALIGN=CENTER> <!-- table stuff --> </TABLE>
<P ALIGN=CENTER> paragraph paragraph paragraph. </P>
you might want want to stop and think, "Why am I centering all this stuff?
Does it form some sort of logical section of the page?" If it does, it might
be better as:
<DIV ALIGN=CENTER CLASS=SOMETHING-MEANINGFUL>
<H2> heading </H2>
<P> paragraph paragraph paragraph. </P>
<P> paragraph paragraph paragraph. </P>
<TABLE> <!-- table stuff --> </TABLE>
<P> paragraph paragraph paragraph. </P>
</DIV>
FWIW, here's something I wrote a while ago about how I think <DIV>
(and headings) should be used. (skim the first part to get to the stuff
on DIV, if you want.)
From: gerald@cs.ualberta.ca (Gerald Oskoboiny)
Newsgroups: comp.infosystems.www.authoring.html
Subject: Appropriate use of headings (was Re: The BEST reason of all not to write pages for Netscape)
Date: 14 Jul 1995 17:48:31 GMT
Message-ID: <3u6alf$p0f@scapa.cs.ualberta.ca>
| Russ Allbery <rra@genesis.gvg.tek.com> writes:
|
| >Russ Allbery <rra@genesis.gvg.tek.com> writes:
| >>Gerald Oskoboiny <gerald@cs.ualberta.ca> writes:
|
| [ discussing http://www-cs-students.stanford.edu/~rra/, which includes
| the following markup:
|
| <html>
| <head>
| <title>Russ Allbery</title>
| </head>
|
| <body>
|
| <h1 align=center>Russ Allbery</h1>
| <h3 align=center>
| Master's Student<br>
| Computer Science Department, Stanford University<br>
| <a href="mailto:rra@cs.stanford.edu">rra@cs.stanford.edu</a>
| </h3>
| ]
|
| >>>In general, this page is very well done. I don't think the <blockquote>
| >>>is used correctly, and the first <h3> definitely isn't (just think what
| >>>someone would see if they were viewing an automatically-generated table
| >>>of contents for this page, based on the heading levels),
|
| To clarify the point I was making here about automatically-generated
| tables of contents, this is what such a table could look like for this
| page, grabbing <h?>'s and indenting successive levels with 4 spaces:
|
| 1 Russ Allbery
|
| 1.1.1 Master's Student / Computer Science Department, Stanford University / rra@cs.stanford.edu
|
| 1.2 General Information
|
| 1.2.1 Positions
|
| 1.3 Interests
|
| 1.3.1 Computer Graphics
| 1.3.2 The Internet
| 1.3.3 Web Design
|
| Notice how, with the exception of "1.1.1", your use of headings allows for
| a sensible table of contents to be constructed with very little effort.
| (I used ' / ' in place of the original <br>'s in that heading, which isn't
| necessarily the best way to do things.)
|
| If you had used the heading levels in a more appropriate way (IMO), you
| could have a structure like this:
|
| 1 Russ Allbery
| 1.1 Welcome!
| 1.2 General Information
| 1.2.1 Positions
| 1.3 Interests
| 1.3.1 Computer Graphics
| 1.3.2 The Internet
| 1.3.3 Web Design
|
| If headings are used like this, I can make a table of contents for any
| arbitrary set of URLs by writing a program to download each one and list the
| contents of the <h?> headers. Also, browsers could have some sort of "outline
| mode" or an extra panel for heading-navigation, such as the one discussed at
| <URL: http://www.ncsa.uiuc.edu/SDG/IT94/Proceedings/HCI/hsu/hsu.html >.
| (This is a feature I wish some mainstream browsers would implement).
|
| >>I can cope with both of those. The <h3> *does* do exactly what I want it to
| >>do with search engines, not to mention display in browsers.
| >
| >And furthermore, according to the HTML 3.0 standard, it looks like you're
| >wrong. To quote:
| >
| > Use the DIV element together with header elements when you
| > want to make the hierarchical structure of a document
| > explicit. This is needed as header elements themselves only
| > contain the text of the header, and do not imply any
| > structural division of documents into sections.
| >
| >And there is no mention at all of not using <h3> immediately after <h1>
| >without <h2>. An indexer built on that assumption is therefore broken by
| >specifications, so there's no reason for me to author for it any more than I
| >should author for Netscape. The elements that I have in header tags are
| >certainly part of the document header.
|
| I disagree. My reading of the proposed HTML 3.0 spec. suggests that <DIV>
| is to be used for meta-sections *along with headings* to indicate document
| structure. So, for instance, you could have a document like this:
|
| <title>Something Lame</title>
| <div class=abstract>
| <p>
| This is the abstract of the paper. Wow, structure-based markup is great!
| </p>
| </div>
|
| <div class=section>
| <h1>Some Really Boring Subject</h1>
| <p>
| In this section, I'll discuss something really boring, starting
| with a chapter on X.
| </p>
|
| <div class=chapter>
| <h1>A Chapter on X</h1>
| <!-- blah blah blah -->
| </div>
|
| <div class=chapter>
| <h1>A Chapter on Y</h1>
| <!-- yadda yadda yadda -->
| </div>
| </div>
|
| <div class=section>
| <h1>An Equally Boring Subject</h1>
| <!-- similar to previous section -->
| </div>
|
| <div class=appendix>
| <h1>Something Useless to Most Readers</h1>
| <!-- ... -->
| </div>
|
| <div class=appendix>
| <h1>More Useless Information</h1>
| <!-- ... -->
| </div>
|
| (Note: I'd be surprised if this is actually a valid way to do things, but
| it's good enough for this example.)
|
| A summary of this document could be rendered as:
|
| SOMETHING LAME
| Abstract:
| This is the abstract of the paper. Wow, structure-based markup is great!
|
| Part I: Some Really Boring Subject
| Chapter 1. A Chapter on X
| Chapter 2. A Chapter on Y
|
| Part II: An Equally Boring Subject
|
| Appendix A: Something Useless to Most Readers
|
| Appendix B: More Useless Information
|
| Note that both the headings and the divisions are used to form structure.
| This is consistent with my reading of the "Headings" and "Divisions"
| sections of the HTML 3.0 draft. With this kind of markup, I could do Web
| searches like "find me all papers with abstracts containing the phrase
| 'structure-based markup'", or "find me all appendices discussing
| 'Something Useless'".
|
| This is also consistent with a section of Tim Berners-Lee's style guide at
| <URL:http://www.w3.org/hypertext/WWW/Provider/Style/DeviceIndependent.html>,
| which says:
|
| Always use heading levels in order, with one heading level 1 at the
| top of the document, and if necessary several level 2 headings, and
| then if necessary several level 3 headings under each level 2 heading.
| If you don't like the way heading level 2 is formatted, fix it on
| your client, don't just skip to heading level 3.
|
| I realize this was written quite a while ago, but it's still accurate, IMO.
| (And yes, this means I'm disagreeing with Michael Kelsey, which pains me,
| but, well, I disagree).
|
| >Based on that, I'll withdraw my complaint that I can't do subtitles in HTML.
| >It may also be possible to indicate the author and date of a paper that way
| >too, but I still think that information carries additional content that
| >should be indicated in some way.
|
| It might be reasonable to include some support for subtitles in HTML;
| I think it's not there now since it would've unnecessarily complicated
| the language. You could do something like
|
| <title>Caring for Your Guinea Pig: Toenails</title>
|
| but I realize this is unwieldly for technical papers with long, ugly titles.
|
| If you want this to be part of HTML, put together a proposal which explains
| exactly why it's needed, how it's not currently covered by HTML, how it
| could be interpreted on a variety of platforms, and a proposed syntax, then
| post it here or on the www-html mailing list for discussion. If, after a bit
| of discussion, people generally agree it's needed, you can submit to the
| HTML Working Group for inclusion in the standard. (similarly for authorship
| and dates, but I think authorship is handled well enough with <ADDRESS>,
| <LINK REV="made" ... >, and possibly some <META>s).
|
| Gerald
I actually think HTML would be better off if we scrapped H[1-6] and went
with generic <SECTION> and <HEADING> (or <DIV> and <TITLE>) elements, and
used nested SECTIONs to create a document's structure. Then people wouldn't
be able to use <H[1-6]> to (try to) change font sizes, which is a personal
peeve of mine. I'm not sure that such a change to HTML would be practical
at this point, though.)
To encourage people to use headings properly, I have a "show an outline
for this document" option on my HTML validator [1] that creates an outline
based on <H[1-6]> headings for any given URL. (I think this feature is
also provided as part of the htmlchek package, but I don't think there
are any Web interfaces to it?) I don't do anything interesting with <DIV>
yet, though...
Gerald
[1] http://ugweb.cs.ualberta.ca/~gerald/validate/
--
Gerald Oskoboiny <gerald@cs.ualberta.ca> http://ugweb.cs.ualberta.ca/~gerald/
Received on Monday, 15 April 1996 21:00:30 UTC