HTML is all about applying meaning to content. Whereas most HTML tags apply meaning (
a foam hammer but they are actually used quite extensively in conjunction with CSS.
p
makes a paragraph, h1
makes a heading etc.), the span
and div
tags apply no meaning at all. This might sound about as useful asa foam hammer but they are actually used quite extensively in conjunction with CSS.
They are used to group together a chunk of HTML and hook some information onto that chunk, most commonly with the attributes
The difference between
class
and id
to associate the element with aclass or id CSS selector.The difference between
span
and div
is that aspan
element is in-line and usually used for a small chunk of HTML inside a line (such as inside a paragraph) whereas a div
(division) element isblock-line (which is basically equivalent to having a line-break before and after it) and used to group larger chunks of code.
<div id="scissors">
<p>This is <span class="paper">crazy</span></p>
</div>
div
and especially span
shouldn’t actually be used that often. Whenever there is a sensible alternative that should be used instead. For example, if you want to emphasize the word “crazy” and the class “paper” is adding italics for visual emphasis, then, for richer, more meaningful content, the code might look like this:
<div id="scissors">
<p>This is <em class="paper">crazy</em></p>
</div>
If you haven’t got a clue about classes and ID’s yet, don’t worry, they’re all explained in the CSS Intermediate Tutorial. All you need to remember is that span and div are “meaningless” tags.