Je ne suis pas d'accord avec Dominic Rodger: un framework serait trop lourd pour quelque chose d'aussi simple. Bien sûr, vous devriez avoir une sorte de grille sous-jacente, mais vous n'avez pas besoin de l'intégralité de 960.gs, blueprint ou tout autre «framework» qui pollue votre balisage avec des classes inutiles.
Les frameworks nécessitent l'utilisation de noms de classes prédéfinis tels que .grid_2
, .grid_12
et autres, qui vous lient éternellement à cette disposition. Ce genre de vaincre le découplage de HTML et CSS: une refonte vous obligerait à modifier à la fois votre feuille de style et votre balisage, qui se détraque rapidement. En général, je ne le recommanderais pas.
Vos exigences sont assez basiques et peuvent faire sans cadres tout à fait bien.En gros, tout ce que vous avez à faire est d'ajouter un autre conteneur à votre balisage (aussi, vous devez utiliser id
au lieu de class
si un seul de ces éléments peuvent exister sur une page donnée):
<div id="container">
<div id="sidebar">
</div><!-- #sidebar -->
<div id="main">
<div id="content">
</div><!-- #content -->
<div id="subscript">
</div><!-- #subscript -->
</div><!-- #main -->
</div><!-- #container -->
(j'utiliser ces commentaires pour être en mesure de faire correspondre les balises de fermeture avec leur homologue, ne hésitez pas à les omettre)
maintenant, tout ce que vous avez à faire est de faire flotter les éléments en fonction de vos besoins.
#container {
overflow: hidden; /* don't collapse (floated children) */
width: 960px; /* fixed width for entire site */
}
#sidebar {
float: left; /* floating to the left in #container */
height: 200px; /* fixed height */
width: 320px; /* fixed width */
}
#main {
float: right; /* floating to the right of #container */
overflow: hidden; /* don't collapse (floated children) */
width: 640px; /* width of #container - width of #sidebar */
}
#content {
/* you shouldn't even need rules for this one */
}
#subscript {
float: left; /* floated to be only as wide as needed for content */
}
div
s sont des éléments de bloc, alors à moins qu'ils ne soient flottants ou aient une largeur fixe, ils occupent tout l'espace disponible (voir #content
).
Maintenant éléments flottants d'autre part ne pas une hauteur, de sorte que leur conteneur parent serait tout simplement l'effondrement (vous ne seriez pas en mesure de remplir les espaces blancs des zones avec une couleur avec #container { background: red }
. Pour éviter de s'effondrer #container
, overflow: hidden
est nécessaire.
en fait, chaque fois que vous flottez un élément quelque part sur votre page, son conteneur parent doit avoir overflow: hidden
(voir #container
et #main
).
de toute évidence, vous devez modifier les dimensions selon vos besoins
"Incroyablement avancé" ...? C'est le 1er avril? –
http://en.wiktionary.org/wiki/its – reisio
Coronatus, possible, pour moi ce serait "incroyablement avancé", parce que je ne suis pas un assistant CSS maintenant (je pense, je suis un petit sorcier :)) – AntonAL