2009-08-24 11 views
2

Je suis impuissant, j'ai essayé ma meilleure compréhension CSS, mais ce n'est pas pour moi.Simple mise en page CSS MasterPage

Je voudrais faire un très simple MasterPage:

  • au sommet d'une div de largeur et 40 pixels de hauteur (1)
  • au fond aussi une div de largeur et 40 pixels de hauteur (2)
  • au milieu:
    • à gauche: une div de largeur 200 px (3)
    • sur le côté droit de la div gauche: un div avec ContentPlaceHolder (4)

Ce que je voudrais faire est: si je fais un certain site qui utilise ma page principale et placez un panneau dans la ContentPlaceHolder qui a une largeur 800px, je voudrais que mon site pour s'y adapter - top , divs moyen et inférieur pour avoir leur largeur de 1000px (200 + 800). Je ne voudrais pas non plus (et j'ai un gros problème avec ça) que le (4) descende si je redimensionne (rétrécisse) la fenêtre du navigateur - je voudrais que tous les divs soient bloqués.

Ceci est ma page html maître:

<div> 
    <div class="header"> 
    </div> 
    <div> 
     <div class="links"> 
     </div> 
     <div class="content"> 
     </div> 
    </div> 
    <div class="footer"> 
    </div> 
</div> 

Quel genre de CSS dois-je d'écrire pour faire ce travail finalement?

+0

J'ai répondu au commentaire que vous avez laissé sur une de mes réponses. – AaronSieb

Répondre

1

Vous ne savez pas si vous avez vérifié cela ou pas, mais nous utilisons le YUI-Grids CSS Framework pour nos mises en page. Cela nous évite d'avoir à passer beaucoup de temps sur CSS, ce qui ne nous permet pas d'être des développeurs.

Il y a même un grid builder qui vous permettra de mise en page graphique une page, puis copiez et collez le code HTML requis pour y arriver :)

+0

Les grilles +1 yui sont plutôt correctes. Ajoutez yui-fonts à cela aussi. vous pouvez également consulter 960grid et les modèles de Saint-Graal pour trouver le meilleur pour votre besoin. –

1

Pour éviter divs flottaient d'être « pressé » hors de l'alignement vous voulez, vous utilisez généralement soit la largeur ou la largeur minimale.

Par exemple, dans ce code, la div contenant les liens et le contenu ne sera jamais inférieure à 1000 pixels. Si l'écran est inférieur à 1000 pixels, une barre de défilement s'affiche.

<div style="min-width: 1000px"> 
    <div class="links"></div> 
    <div class="content"></div> 
</div> 

Vous pouvez également utiliser la largeur au lieu de min-width:

<div style="width: 1000px"> 
    <div class="links"></div> 
    <div class="content"></div> 
</div> 

La différence entre les deux est simple: si vous spécifiez min largeur, la div peut atteindre être plus grand si elle a besoin à. Si vous spécifiez width, la div sera exactement la taille que vous avez spécifiée. Sachez que la largeur minimale n'est pas prise en charge par IE6.

0

Voici un coup rapide sur CSS/Markup spécifique pour ce problème.

Markup:

<!-- Header, etc. --> 
<div class="contentView"> 
    <div class="links"> 
    </div> 
    <div class="content"> 
    </div> 
</div> 
<!-- Footer, etc. --> 

CSS:

.contentView { 
    /* Causes absolutely positioned children to be positioned relative to this object */ 
    position: relative; 
} 

.links { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 200px; 
} 

.content { 
    padding-left: 200px; 
} 

Vous voudrez peut-être votre pied de page à être "collant". Vérifiez ici pour plus d'informations à ce sujet: http://ryanfait.com/resources/footer-stick-to-bottom-of-page/

Cela dépend de ce que le design demande. Cela rend la section des liens plus d'une boîte flottante sur la gauche que d'une colonne par exemple.

Cela finit par ressembler à ceci (.content est vert, .links est rouge):

An example of this markup.

+0

Eh bien, mais qu'en est-il en-tête et pied de page? – agnieszka

+0

L'en-tête devrait juste être une question de laisser tomber le HTML dans où j'ai le "en-tête, etc." commentaire. Pour un pied de page simple (en bas du contenu) vous pouvez juste faire la même chose où j'ai le "Pied de page, etc." commentaire. Si vous voulez que le pied de page soit collé au bas du document, voir le lien dans ma réponse directement sous le code CSS. Laissez un autre commentaire si vous avez une question spécifique sur la mise en œuvre de ceux-ci. – AaronSieb