You don't need to float at all.
Code:
#wrapper {
width: 960px;
height: 600px;
position: relative;
}
#header {
width: 100%;
height: Equal to the height of your images.
}
#left {
width: equal to the width of your picture;
height: equal to the height;
position: absolute;
top: 0px;
left: 0px;
}
#middle {
width: equal to the width of your picture;
height: equal to the height;
position: absolute;
top: 0px;
left: equal to the width of your left image;
}
#right {
width: equal to the width of your picture;
height: equal to the height;
position: absolute;
top: 0px;
left: 0px;
}
You are going to want to add background: url("imagepath"); as well to all the divs.
You don't want to load them with an <img> tag, you want pure css.
In order to see everything properly we don't use % we use the exact pixel width.
If you are going for a page that stretches, then you need some kind of repeating image. The image will not expand far enough for all monitor sizes anyway. You are going to need to either do backgrounds with exact size, and then use the code I gave you just now.
The idea, is that your container div will contain all absolute's inside of itself. By doing so, you can define where they will be using position: absolute, and how the height, and width will go as well. This is a layering technique that's perfect for you!
To display the links, you don't need to use the image. You could actually just use something transparent. You don't want your page elements to be sloppy ever, so this is the best way. You could use a transparent button with a width and height, or you could place the image tags inside the appropriate divs and remove the borders.