HTML archive

Articles relating to web development using HTML.

Web design ‘pre-flight’ checklist

Over the years of being a freelance web designer, I’ve been developing my own processes for the business of designing websites. One of those processes has been compiling a list of tasks that need to be completed before launching a website, whether it be a new site or a redesign. This list is kept in a spreadsheet which I work through, ticking off each item after the client has given final sign off for the site to go live. I view it as my final quality control procedure and I usually find that the process will highlight a few of the ‘little things’ that I might have overlooked in general development. Usually nothing too major; more a case of ‘dotting all the Is and crossing all the Ts’.

More on Web design ‘pre-flight’ checklist

Site updated to Microformats Value Class Pattern

It may only be a very small amendment, but I’ve just updated the HTML of this site to bring it in line with the new Microformats Value Class Pattern which has just been released as an alpha draft.

More on Site updated to Microformats Value Class Pattern

Which is better for search engines: plain text or alt attributes?

Which is better in links from the search engines’ point of view: plain text or images with an alt attribute that says the same thing? For example, is this:

<a href="">This is a link</a>

better than this?

<a href=""><img src="" alt="This is a link"/></a>

More on Which is better for search engines: plain text or alt attributes?

Animated navigation items using jQuery


Dave Shea recently published an article on A List Apart (ALA), CSS Sprites2 – It’s JavaScript Time’, about how to use jQuery to create the effect of animated rollovers on navigation items.

The technique he outlines makes use of the same image replacement method as outlined in ALA’s original Sprites article. The problem with this method however is that it uses a large negative text-indent to remove the default text from screen, and with images turned off in the browser, you don’t see anything. This has accessibility implications not only from the perspective of those with disabilities, but also for those who deliberately turn images off, i.e. people on slower connections or those using handheld devices who are trying to limit the amount of information downloaded to their phone.

More on Animated navigation items using jQuery

First-letter bugginess

Recently I made some changes to the typography of subheadings on this site: I made them all uppercase and for the h2s I used the first-letter pseudo class to give the first letter a larger font-size (150%).

More on First-letter bugginess

Legends of Style Revised

When I wrote the original article on how to achieve cross-browser consistency when styling form legends, I noted that there was a bug in the way Firefox handled legends which required an additional div to be wrapped around the fieldset with positioning and other styling applied to the div rather than the fieldset. The bug appears to still have not been resolved, but as Thierry Koblenz pointed out in the comments on the original article, there is a way to achieve the same effect across browsers that doesn’t require the additional div.

More on Legends of Style Revised

HTML/CSS newbie FAQs

After spending a while on web development forums, you start to see the same questions being asked regularly. So here I’m going to answer some of these common beginner questions and hopefully save me typing answers out repeatedly in the future because I can just refer the poster to here or copy it myself. ;)

More on HTML/CSS newbie FAQs

HTML image no preload rollovers

Recognise this?

<script type="text/javascript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d .forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</d></script>
<a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('example','','/images/example_company_on.png',1)">
<img src="/images/example_company_off.png" alt="Example company" name="example" width="326" height="167"/></a>

Chances are you do. Even if you don’t own a copy of Dreamweaver, it’s likely you would have come across the code it outputs for creating image rollovers in your travels looking at the code of other sites.

More on HTML image no preload rollovers

Buttons – forgotten and immobile

Last year, Nick Cowie created a podcast on the <button> and how it is the “forgotten element”. Well, it seems that it is not only developers who have forgotten about it, but browser makers, or more specifically those making browsers for handheld devices, and the Open Mobile Alliance (OMA) (authors of the XHTML-MP specification) who have forgotten about it as well.

More on Buttons – forgotten and immobile

Centering a dropdown menu

Recently, I needed to create a centered version of the Suckerfish dropdown menu and realised that some significant modifications were going to be needed. This is because the method for getting the top level list items to sit in a row, on the same horizontal plane, is to use float: left. However, when you float elements, you can’t centre them unless you give them a width and use auto left and right margins.

More on Centering a dropdown menu