I've read lots of articles that condemn the excessive use of divs. I have a feeling that I might be doing that in the following mark up:
.container { margin: 0 auto; overflow: hidden; width: 960px; } /* header */ #header { background: #EEE; } #header h1 { float: left; } #header h2, #header a, #header p { color: #999; } #header h1 a { background: url(../images/logo.png) no-repeat scroll 0 0; float: left; height: 30px; text-indent: -9999px; width: 500px; } #banner { border-bottom: 1px solid #DDD; padding: 0 0 15px 0; margin: 30px 0 30px 0; overflow: hidden; width: 960px; } #lang { float: right; padding: 9px 0 0 0; } #lang li { float: left; margin: 0 0 0 20px; } #lang li a { font-size: 10px; } /* intro */ #intro { overflow: hidden; padding: 0 0 30px 0; } #tagline { float: left; margin: 0 40px 0 0; width: 540px; /* 560 */ } #tagline h2 { font-size: 24px; } #about { float: right; width: 380px; }
<div id="header"> <div class="container"> <div id="banner"> <h1><a href="http://widerdesign.co.nr/">wider design</a></h1> <ul id="lang"> <li><a href="index.php">English</a></li> <li><a href="es/index.php">Español</a></li> <li><a href="tw/index.php">中文(繁體)</a></li> <li><a href="cn/index.php">中文(简体)</a></li> </ul> </div> <div id="intro"> <div id="tagline"> <h2>Nulla vitae tortor mauris</h2> <p>Pellentesque faucibus est eu tellus varius in susc...</p> </div> <div id="about"> <h2>right</h2> <p>Pellentesque faucibus est eu tellus varius in susc...</p> </div> </div> <!-- #intro --> </div> <!-- .container --> </div> <!-- #header -->
Explanation of the use of those divs:
header: Defines the background color which expands until the end of the window (lies outside of the div .container
)
container: centers the content (but not the background)
banner: to define the background or border color around ul#lang
and h1
intro: same as above but for #tagline
and #about
(otherwise I have to define say padding or margin for tagline and about individually)
Am I overusing divs? Can this be simplified?
It looks perfect. This should be taken as an example!
One symptom of "divitis" is when you see a list of <div>'s
instead of using a <ul>
.
For the most part your markup is fine. Each site presents slightly different problems. I would argue that your code could be improved by removing #intro
and just applying the CSS to the two columns.
Depending on the rest of your page, you may be able to do without the #header
div.
Additionally, you can style html
AND body
if needed to help with multiple backgrounds/containers. Just remember that body
starts acting like a div
(doesn't extend to the bottom of the browser) as soon as you start applying styles to html
.
Using divs
or the new HTML 5 block elements, is all about making semantic sense first, and giving places to hang your CSS second.
Since each of your div
elements serves a specific purpose where they provide semantic grouping of elements that go together, I would say your code is just fine.
For the record, this is divitis:
<div class='image'> <div class='shadow'> <div class='bottom-shadow'> <img src="..." alt="" /> </div> </div> <div class="clear"></div> </div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With