Sharon Go wrote: > However, after reading this from the validator: > > "This might mean that you need a containing element, or possibly that > you've forgotten to close a previous element." > > I just added a wrapper div around the h2: > > <dt> > <div><h2></h2></div> > </dt>
Apparently you did not revalidate, since you would have noticed that the wrapper does not make the markup valid. In a sense, it is _less_ valid now, since the <dt> element now contains two nested block elements instead of one; it must not contain any block element. > And it seems to work fine. For now. Indeed, for now and for some values of "work" (and "fine" and "seems"). Since the document is invalid, all bets are off, with or without CSS. In practice the tag sallad may "work" in the sense of acting as "commands" that specify some assumed default rendering and allowing you to tune that rendering with CSS. But what would be the point? You can, in principle, never know what a browser has as default rendering for a <dl> and its children. So it would be simpler to start from some <div> markup with class attributes. Then you could safely assume that a <div> is by default a full-width (width: auto) block and nothing else, and start building any styling you like. Even better, you could use <h2> if you really have a heading for some content and perhaps <ul> markup if you really have a list. You would then have to consider the default renderings these might have, but this would be much less risky, since it is reasonable to expect that any special defaults in a browser are consistent with the semantic ideas of "2nd level heading" and "(unnumbered) list". The markup in your example is <dl> <dt><h2><a href="#">List header</a></h2></dt> <dd>Definition item #1</dd> <dd>Definition item #2</dd> <dd>Definition item #3</dd> </dd> </dl> which looks somewhat weird. Are you really defining that the meanings of the phrase "list header" are "definition item #1" etc.? It is common to use <dl> for all kinds of description lists, but this implies inflexibility in addition to being illogical. If you boss wants you to make some string _both_ a <dt> element content _and_ an <h2> element content, he is asking you to give him a square circle. If he wants the default rendering of <h2> elements (whatever that might be in each browser), at least as the starting point for styling, then the only possible approach is to use <h2> markup. By HTML syntax, this limits the constructs inside which it may appear, so you either need to use invalid markup with all the unpredictable consequences or use other elements than <dl> markup as outer markup. Jukka K. Korpela ("Yucca") http://www.cs.tut.fi/~jkorpela/ ______________________________________________________________________ css-discuss [EMAIL PROTECTED] http://www.css-discuss.org/mailman/listinfo/css-d List wiki/FAQ -- http://css-discuss.incutio.com/ List policies -- http://css-discuss.org/policies.html Supported by evolt.org -- http://www.evolt.org/help_support_evolt/