Hi!
Der Denkfehler liegt bei float:none.
Das der Code dazu:
<style type="text/css">
#top {border: thin solid #0000FF; margin: 0px; padding: 0px;}
#top div.left { margin:0px; padding:5px 5px 5px 5px; float:left;}
#top div.middle { margin:0px padding:5px 5px 5px 5px; float:none;}
======
#top div.right{ margin:0px; padding:5px 5px 5px 5px; float:right;}
</style>
Was sagt float? Mit float sagst Du einem Element, dass es bitte nicht mehr Platz einnehmen soll, als es benoetigt, und sich dabei auf besagter Seite (left/right) halten soll, damit nachfolgende Elemente es umfliessen koennen. Nachfolgend ist hier das Zauberwort! Du sagst dem mittleren Element deutlich, dass es nicht floaten soll. Deshalb wird es vom folgenden Element auch nicht umflossen.
Wenn Du die gesamte Breite des aeusseren Divs benutzen moechtest, wirst Du um Breitenangaben nicht herumkommen.
Erstmal solltest Du dem mittleren Element aber mal ein float:left verpassen.