Using the Flat Web Design Tutorial offered at 1webdesigner I tried converting the resulting PSD file to HTML5 and CSS3. While attempting to use sectioning elements in the markup I quickly found myself lost in how to maintain semantic code while also adhering to the original design. As a result there are more div tags than I initially desired. How can I achieve the same result using the HTML5 sectioning elements?
If you notice any other areas that could use improvement, please don't hesitate to point them out.
HTML
<html>
<head>
<meta charset="utf-8">
<title>John Doe | Web & Graphic Designer</title>
<link href="css/normalize.css" rel="stylesheet" type="text/css" media="screen">
<link href="css/style.css" rel="stylesheet" type="text/css" media="screen">
</head>
<body>
<header role="banner">
<div class="container">
<a href="/" title="Return to Home">
<img src="img/logo.gif" id="logo" alt="Logo" height="35" width="37">
</a>
<nav>
<ul>
<li><a href="#" title="Home">Home</a></li>
<li><a href="#" title="Services">Services</a></li>
<li><a href="#" title="Portfolio">Portfolio</a></li>
<li><a href="#" title="Blog">Blog</a></li>
<li><a href="#" title="Hire me">Hire me</a></li>
</ul>
</nav>
<h1>Holla.</h1>
<h2>I'm <span class="keywords">John Doe</span> a Philippines-based <span class="keywords">web</span> & <span class="keywords">graphic</span> designer who creates
clean and modern design for the world of web.</h2>
<a href="#" title="View my work" id="view-work" class="btn">View my work</a>
</div> <!-- end container -->
</header>
<div id="services" class="container">
<section class="column four">
<img src="img/browser.png" alt="Web Browser" height="48" width="48" class="services-icons">
<div class="column-content">
<h3>Web Design</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.</p>
<a href="#" title="Learn more">Learn more</a>
</div> <!-- end column-content -->
</section>
<section class="column four">
<img src="img/mobile.png" alt="Cell Phone" height="48" width="36" class="services-icons">
<div class="column-content">
<h3>Mobile Design</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.</p>
<a href="#" title="Learn more">Learn more</a>
</div> <!-- end column-content -->
</section>
<section class="column four">
<img src="img/camera.png" alt="Camera" height="48" width="48" class="services-icons">
<div class="column-content">
<h3>Photography</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.</p>
<a href="#" title="Learn more">Learn more</a>
</div> <!-- end column-content -->
</section>
</div> <!-- end services -->
<div id="projects">
<div class="container">
<div class="column six">
<h3>1stwebdesigner</h3>
<h4>01 july 2013</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<dl>
<dt>Client</dt>
<dd>Dainis Graveris</dd>
<dt>Role</dt>
<dd>Designer</dd>
<dt>Tools</dt>
<dd>Photoshop</dd>
</dl>
<a href="#" title="View Project" id="view-project" class="btn btn-secondary">View Project</a>
</div> <!-- end column -->
</div> <!-- end container -->
<img src="img/preview.png" id="preview" alt="Screenshot of 1stwebdesigner landing page">
</div> <!-- end projects -->
<footer role="contentinfo" class="container">
<h3>Say <span class="keywords">Hello.</span></h3>
<p>I'd love to hear from you.</p>
<nav>
<ul>
<li><a href="#" title="Email"><img src="img/email.png" alt="Email"></a></li>
<li><a href="#" title="Facebook"><img src="img/facebook.png" alt="Facebook"></a></li>
<li><a href="#" title="Twitter"><img src="img/twitter.png" alt="Twitter"></a></li>
<li><a href="#" title="Instagram"><img src="img/instagram.png" alt="Instagram"></a></li>
<li><a href="#" title="Dribbble"><img src="img/dribbble.png" alt="Dribbble"></a></li>
</ul>
</nav>
<p id="copyright">© 2013 <span class="keywords">John Doe</span>. All rights reserved.</p>
</footer>
</body>
</html>
CSS
/*
style.css
Colours
=======
Red: #f84242;
Darker Black: #111111;
Black: #25252a;
Dark Grey: #666666;
Grey: #9d9d9d;
Light Grey: #e5e5e5;
White: #ffffff;
*/
/* ------------------------
General Styles
------------------------ */
html {
-webkit-font-smoothing: antialiased;
text-rendering: optimizelegibility;
}
body {
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 15px;
line-height: 1.65;
color: #666666;
}
/* ------------------------
Typography
------------------------ */
h1, h2, h3, h4 {
margin: 0;
font-weight: 300;
line-height: 1.65;
}
h1, h2 {
color: #fff;
}
h4, dt {
font-weight: 400;
color: #9d9d9d;
}
h1, footer h3 {
font-size: 72px;
}
h2 {
font-size: 22px;
}
h3 {
font-size: 24px;
color: #111;
}
h4 {
font-size: 13px;
}
p {
margin: 0;
font-weight: 300;
color: #666666;
}
a {
color: #f84242;
text-decoration: none;
}
dt {
font-size: 11px;
text-transform: uppercase;
}
.keywords {
font-weight: bold;
}
#services h3 {
line-height: 2.0833;
}
#projects h3 {
margin-top: -6px;
font-size: 36px;
line-height: 1.3;
}
footer h3 .keywords {
font-weight: 300;
color: #f84242;
}
#copyright .keywords {
color: #111;
}
/* ------------------------
Layout
------------------------ */
.container {
margin: 0 auto;
padding: 120px 10px;
width: 940px;
overflow: auto;
}
header .container {
padding: 60px 10px 120px;
}
footer.container {
clear: right;
padding: 120px 10px 60px;
}
header {
background-image: url('../img/header-bg.jpg');
background-size: cover;
background-position: left bottom;
background-color: #f84242;
}
#logo {
float: left;
}
header h1 {
clear: both;
margin-top: 120px;
}
#view-work {
margin-top: 120px;
}
.column:last-child {
margin-right: 0;
}
.services-icons {
float: left;
margin: 0 6px;
}
#services img[width="36"] {
margin: 0 12px;
}
#services p {
margin: 10px 0 24px;
}
#projects {
background-color: #e5e5e5;
}
#projects p {
margin-top: 25px;
}
dd {
margin: 0 0 20px;
font-weight: 300;
}
#view-project {
margin-top: 28px;
}
#preview {
float: right;
margin-top: -580px;
}
/* ------------------------
Navigation
------------------------ */
header nav {
float: right;
margin: 0;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li {
display: inline-block;
}
header nav ul li a {
margin-right: 40px;
font-size: 16px;
font-weight: bold;
text-decoration: none;
color: #fff;
opacity: 0.6;
/* vertical align text */
height: 38px;
line-height: 38px;
vertical-align: middle;
}
header nav ul li:last-child a {
margin-right: 0;
}
header nav ul li a:hover {
border-bottom: 2px solid #fff;
opacity: 1;
}
footer nav {
float: none;
margin: 120px 0;
}
footer nav ul li {
vertical-align: top;
width: 128px;
height: 128px;
background-color: #e5e5e5;
text-align: center;
}
footer nav ul li a {
display: block;
margin: 40px auto;
width: 48px;
height: 48px;
}
/* ------------------------
Buttons
------------------------ */
.btn {
display: inline-block;
border-radius: 10px;
padding: 10px 20px;
background-color: #25252a;
font-size: 16px;
font-weight: bold;
color: #fff;
text-decoration: none;
cursor: pointer;
}
.btn-secondary {
border-radius: 2px;
background-color: #f84242;
}
/* ------------------------
Global Styles
------------------------ */
.column {
float: left;
margin-right: 20px;
}
.column-content {
margin-left: 80px;
}
.four {
width: 300px;
}
.six {
width: 460px;
}