Make your layout look good a different screen and font sizes.
What it looks like
Here’s what the form example (example 1) is supposed to look like.
At 1024 x 768 pixels, the navigation links and Save button are positioned fixed in a column to the left.

At 800 x 600 pixels, the navigation links are only shown on hover over the icon in the top-left corner; the Save button is tucked under the form itself.


What you need
Grab layout.js.
You also need Prototype.js.
What you need to do
Include the scripts in your page.
<script src="javascripts/prototype.js" type="text/javascript"></script> <script src="javascripts/layout.js" type="text/javascript"></script>
Activate layout switching in the head of your page
<script type="text/javascript">
//<![CDATA[
Event.observe(window, 'load', function() {
Layout.initialize({observeFontSize: true});
});
//]]>
</script>
Most likely, the default size thresholds set in layout.js won’t fit your needs. See the file itself for how to set them to different values.
(Re-)Write your stylesheets so that they make use of the size information. As an example, here’s the CSS I use for styling the navigation list on the two example pages.
#navitrigger {
display: none;
}
#navigation {
position: fixed;
top: 0em;
left: 0em;
margin: 1em;
padding: 0;
text-align: right;
z-index: 10;
}
#navigation ul {
width: 10em;
margin: 0;
padding: 0;
list-style-type: none;
}
#navigation li {
font-weight: bold;
}
#navigation .current {
display: block;
width: 100%;
color: #bbb;
background-color: #ffecac;
}
#navigation li.admin {
border-top: 1px solid #bbb;
}
#navigation li a {
display: block;
width: 100%;
}
body.small #navigation {
position: absolute;
text-align: left;
z-index: 30;
}
body.small #navigation ul {
display: none;
background: #fff;
border: 1px solid #888;
}
body.small #navitrigger {
display: block;
font-size: 150%;
font-weight: bold;
}
body.small #navigation:hover ul {
display: block;
}