Initial impressions is that it is indeed a marked improvement -- it just "feels" way better than it did... I'd consider shrinking the max-width as the full width paragraphs are a bit hard to follow, but apart from that on the surface it's way nicer.
Peeking under the hood, a few suggestions:
Code:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
If you have to say that, you've screwed up somewhere -- though most likely that line came with one of the scripts or layout frameworks you're working with... so they screwed up, not you.
Code:
<meta name="keywords" content="MicroMuseum,Micro Museum,UK,1980s,1990s,collection,museum,virtual,vintage,old,retro,micro,PC,British,restoration">
Overstuffed keywords meta. It should be seven or eight words (proper names like "Micro Museum is acceptable") that exists inside BODY as CDATA... what you have there mostly has zero relevance to the page and is far too many terms. It's also redundant as the separate instances of "micro" and "museum" would in fact also catch "Micro Museum". A lot of people say it doesn't matter as no engines pay attention to the keywords META anymore, but they only ignore it if you don't use it right. 7 or eight words totalling 90 characters or less that exist inside the BODY as plaintext. It's simple, shocking how many tutorials and even books get it wrong; so most people get it wrong as they blindly copypasta.
Code:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
I'd suggest removing user-scaleable, as that's the default state (just a tiny waste of code, not a big deal) -- I'd suggest adding height=device-height as some Android devices incorrectly report faux-height as width when rotated to portrait. (pain in the ...)
Code:
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
Lose the "type="image/x-icon" part, it will in fact block the icon from loading in IE and some versions of FF (a regression that comes up every other version). Much like the viewport meta it's another thing that you in fact declared it correctly, but that doesn't mean browsers implemented it right.
Code:
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="js/flexslider/flexslider.css">
<link rel="stylesheet" href="css/basic-style.css">
Those should all also have the type="text/css" declaration on them, and they should likely also be declared as media="screen,projection,tv" so you aren't sending them to UA's where it doesn't make any sense... like print, handheld, aural... Media targets are the stepping stone BEFORE media queries.
Code:
<script async src="js/libs/modernizr-2.6.2.min.js"></script>
<script async src="js/jquery-1.11.0.min.js"></script>
You have these in the head -- you could likely lose the async on the first one and move it to right before the other scripts in the footer, it will actually load faster there. The second one? Well, you see down at the bottom where you have this?
Code:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.9.0.min.js">\x3C/script>')</script>
If you're going to use the bloated train wreck of how not to write javascript known as jQuery, lose the load in the header as it's redundant to the load after the footer. IF you're going to use that init method to detect if Google loaded it properly, change that to load the newer version thus:
Code:
<script>window.jQuery || document.write('<script src="js/jquery-1.11.0.min.js">\x3C/script>')</script>
Normally I'd rail against using document.write since it forces a reflow, but since that's before </body> in the markup as a loader it's fine... still though, such a simple slider shouldn't need 220k of scripting (doing 8k's of scripting and CSS' job).
Basically the way you have it now you're loading two, possibly three (in some browsers) versions of jQuery at the same time. Bad enough using it's 94k of extra "code for nothing" without loading it multiple times.
Code:
<div id="banner">
<div id="logo"><a href="index.php"><img src="images/logo.png" alt="logo"></a></div>
</div>
Should probably be a H1 with a image replacement method... all the rest of your h1 on the page should be h2... of course if you went that route you could axe all the "section for nothing" -- but to be frank all those HTML 5 tags serve no legitimate purpose other than code-bloat; same for the aria roles.
Code:
<header class="wrapper clearfix">
There are more than enough ways to wrap floats, this is 2014 not 2004, you don't need "clearfix". (NOT that we ever did really)
You have a lot of comments:
Code:
</div><!-- end row -->
</section>
<!-- end content area -->
</div>
<!-- #end div #main .wrapper -->
That could trip rendering bugs. Avoid placing comments between sibling level tags.... the first two in that are ok as they are wedged between closures, but that last one is before a sibling level tag and that can trip the "disappearing content" and "double render" bugs in legacy IE, particularly if positioning and/or floats are involved. It's usally better to put the comment before the closure preventing the chance of that ever happening.
<!-- row --></div>
For example. You also don't need to say "end", that's what the / in </div> means.
Normally I'd not make a big deal out of that on modern browsers, but since you're wasting time including modernizr just so you can add the pointless HTML 5 bloat to the site on legacy browsers, you might want to avoid potential headaches in IE8/earlier since that's the only reason to include that script.
likewise:
Code:
<!-- footer area -->
<footer>
<div id="colophon" class="wrapper clearfix">
<p>© 2014 Chris Long.</p>
</div>
</footer>
<!-- #end footer area -->
Really, <footer> is the start of the footer and </footer> is the end of the footer? Whoddathunkit? Avoid making comments that are painfully redundant to the code. Likewise not sold that you need the DIV or the inner P... (one or the other) but that goes for most of your DIV and the classes for nothing everywhere.
But for all that, it is far better than it was. Sorry if I took you to task before, but it pains me to see people new to making websites being repeatedly led down the garden path to failure by bad tutorials, bad books, and general bad practices... sadly much of said rubbish outdated practices are being treated as new and bleeding edge by the "HTML 5 generation"; pitching the past decade and a half of progress in the trash so they can have a new higher digit number and PRETEND they are using less code and making things more "semantic" while doing the exact opposite. They say HTML 5 means less code, it doesn't... they say using jQuery makes less code and makes things easier to follow, it doesn't... they say layout frameworks that rely on presentational classes like "grid_7" or "rightFloat" makes layout easier, it doesn't...
Really makes me wonder if it's intentional, or simply ignorance. You're new to this, it's hardly shocking with all web-rot misleading crap that it's so easy to be led astray.