When to use div’s and when not to

A common question in #web on Freenode IRC, goes something like this:

“Should I use

‘s or tables for my layout?”

The answer is, neither.

What most people call “using

‘s” is actually, CSS-P – CSS Positioning. This is the correct way to markup a page for styling using CSS, rather than putting all the display information into the page using tables. You should always use CSS-P for styling your website, this does not mean that you should never use tables, but that you should only use tables for tabular data.

You should also never use a

when another tag will do. Think about the following examples:

Using the following CSS, the following two HTML examples display the same:

  1.  #header {
  2.      color: red;
  3.      background-color: grey;
  4.      font-size: 32px;
  5.  }
  1.  <div id=header>
  2.      Welcome to my site!
  3.  div>
  1.  <h1 id=header>
  2.      Welcome to my site!
  3.  h1>

So why – you ask – does it matter which I use? Well, just looking at the two examples, the second one obviously denotes the text a 1st level header. The top one doesn’t give any information about the text contained in it.

This doesn’t mean you should never use a

, there are situations where you are styling something where you have no content (say, a drop-shadow on a paragraph which itself is marked up using

and has a different style).

I know I haven’t gone into much depth here, but thats the long and short of it as I see it. I hope that helps someone.

- Davey

Comments are closed.

Twitter

@dshafik Anytime tools are released that give just anyone the ability to do something without coding, programmers see a pay cut in contracts

@fasterkitty [3 hours ago]

@fasterkitty I think that depends on the quality of the apps the Flash folks put out...

@dshafik [3 hours ago]

@fasterkitty from what I hear, they are already culling apps that violate the Desktop/Widget rule. For example: http://bit.ly/cb3l0B

@dshafik [3 hours ago]

Looking for a design, thinking of using 99designs; unless someone I know wants to do some work for me? (for pay!)

@dshafik [3 hours ago]

@dshafik can you please call our support, so that we could help you with those issues?

@EyeFiCard [7 hours ago]

Books & Things