luke said:
<div> elements
<div></div> creates a new paragraph.
No, <p> creates a new paragraph. <div> creates a new block-level
element. With CSS you can make this _look_ however you like (but it's
still not a paragraph).
I'd like to mark some text with a class
without it creating a new paragraph,
So use either <div> or <span>, rather than <p>. Then apply some CSS,
either inline (with style="..." ) or through a class attribute and a
stylesheet.
<div> and <span> are similar, but different. They are both "anonymous"
in a way that <p> isn't - they have no default meaning, just whatever
you choose to give them as presentation (by CSS) or by implied meaning
through a class attribute.
Their difference is that <div> is a "block-level" element and that
<span> is an "inline" element. This implies three specific differences:
- <div> has block-level content (in the DTD), so can contain
block-level elements or inline elements. <span> has only inline
content, so can't contain block-level elements.
<div><span></span></div> is OK, <span><div></div></span> is not. This
is fixed in the DTD and can't be changed.
- <span> is an inline element, <div> is a block. So you can place
<span> inside elements that can only contain inline content, but you
can't place <div> there. <a><span></span></a> is OK, <a><div></div></a>
is not. This is fixed in the DTD and can't be changed.
- The default CSS behaviour for <div> is display:block and for <span>
it is display:inline; You can always change this, but whenever you do
that in CSS, think first as to whether it's a hint that you're actually
using the wrong element.
So choose <div> or <span> on the basis of the nesting rules. Then
adjust the CSS to fit that and your desired appearance. Sometimes (but
rarely) you will make a <div> look like a <span> with CSS, or vv.
If it really is a paragraph, then use <p>. You can use CSS and class to
make this behave just like a <div>, except that its default meaning
will always imply some level of "paragraph" (and it's quite reasonable
to render paragraphs as in-line text, if you're making summaries etc.)
Recommendations:
- Never ever use <font> ever again.
- Look at the nesting rules for what's going inside your current <div>.
If you can, use a <span> instead. If you can't (unlikely), then use
CSS display:inline; on your existing <div>.
- Read the HTML spec from the W3C site. Read the DTD and learn to
understand what it tells you about nesting. Ignore any HTML "tutorial"
sites that aren't the W3C, because that one's the real gospel and the
others are usually wrong (this does require a certain level of
knowledge on your part).
- Learn to use HTML validation.