2010-09-14 24 views
7

Ich frage mich, ob Sie mir helfen können, zwei divs, mainContent und sideContent nebeneinander zu positionieren?CSS Positionierungselemente nebeneinander

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;} 

ich alle die CSS enthalten, weil ich nicht sicher war, was genau würde eine Wirkung auf diese Art der Sache haben. Außerdem habe ich versucht, sideContent und mainContent inline anzuzeigen, aber sie scheinen einfach zu verschwinden. Irgendeine Idee warum?

Antwort

10

Wenn Sie möchten, dass sie nebeneinander angezeigt werden, warum ist sideContent das Kind von mainContent? machen sie Geschwister dann verwenden:

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

auf beide von ihnen.

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

Mein Fehler, meiner tatsächliche Umsetzung waren sie Geschwister. Ich habe den ursprünglichen Post bearbeitet und bearbeitet, werde die Implementierung in Kürze versuchen. Vielen Dank! – djs22

+0

keine Sorgen! :) – sheeks06

+0

Arbeitete perfekt, aber aus irgendeinem Grund erbte ich nicht mehr den Hintergrund. Danke für die Hilfe! Ich bin unterwegs, um dieses Problem zu erforschen ... jeder Rat wäre großartig! – djs22

0

Wenn Sie nicht wissen, wie viele Elemente verwendet werden, oder wollen, dass sie die normale Breite haben, die einzige andere Möglichkeit ist, eine Tabelle zu verwenden:

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

Das Element '

' ist für das Layout niemals erforderlich. Tabellenlayoutregeln können für jedes Element mit 'display: table-cell' und' display: table-row' angewendet werden. Es gibt auch Flexbox ('display: flex') und CSS Grid Positioning (' display: grid'). – Dai