2010-09-14 5 views
7

Je me demande si vous pouvez m'aider à placer deux divs, mainContent et sideContent l'un à côté de l'autre?Éléments de positionnement CSS les uns à côté des autres

HTML:

<div id='main'> 
    <div id='mainContent'> 
    </div> 
    <div id='sideContent'> 
    </div> 
</div> 

CSS: #

#main { width: 100%; min-height: 400px; 
    background: #0A3D79; /* for non-css3 browsers */ 
    background: -webkit-gradient(linear, left top, left bottom, from(rgb(20,114,199)), to(rgb(11,61,122))); /* for webkit browsers */ 
    background: -moz-linear-gradient(top, rgb(20,114,199), rgb(11,61,122));} /* for firefox 3.6+ */ 
    /*gradient code from http://www.webdesignerwall.com/tutorials/cross-browser-css-gradient*/ 

    #mainContent { width: 75%; margin-top: 20px; padding-bottom: 10px; min-height: 400px; background-color: blue; } 
    #sideContent { width: 22%; margin-top: 20px; padding-bottom: 10px; min-height: 400px; background-color: red; border-style: solid; border-left-width: 3px; border-left-color: white;border-right-width:0px;border-top-width:0px;border-bottom-width:0px;} 

J'inclus tous les css parce que je ne savais pas exactement ce qui a un effet sur ce genre de chose. De plus, j'ai essayé de faire en sorte que sideContent et mainContent s'affichent en ligne, mais ils semblent juste disparaître. Une idée pourquoi?

Répondre

10

Si vous voulez les afficher côte à côte, pourquoi sideContent est-il l'enfant de mainContent? faire les frères et sœurs puis utiliser:

float:left; display:inline; width: 49%; 

sur les deux.

#mainContent, #sideContent {float:left; display:inline; width: 49%;} 
+0

Mon erreur, à mon mise en œuvre réelle, ils étaient frères et soeurs. J'ai parcouru et édité le post original, je vais essayer votre implémentation sous peu. Merci! – djs22

+0

pas de soucis! :) – sheeks06

+0

A fonctionné parfaitement mais pour une raison quelconque je n'hérite plus du fond. Merci pour l'aide! Je pars explorer ce problème ... tout conseil serait génial! – djs22

0

Si vous ne savez pas combien d'éléments seront utilisés, ou si vous voulez qu'ils aient la largeur normale, la seule façon est d'utiliser une table:

<div id='main'> <table> <tbody> 
    <tr> 
    <td><div id='mainContent'></div></td> 
    <td><div id='sideContent'></div></td> 
    </tr> 
</tbody> </table> </div> 
+0

L'élément '

' n'est jamais nécessaire pour la mise en page. Les règles de disposition de table peuvent être appliquées à n'importe quel élément en utilisant 'display: table-cell' et' display: table-row'. Il y a aussi Flexbox ('display: flex') et CSS Grid Positioning (' display: grid'). – Dai

Questions connexes