2009-08-14 13 views
9

Ich habe ein zentriertes Div-Layout. Die linke Seite des div im Hintergrund sollte weiß sein und die rechte Seite sollte grün sein. Beide sollten bis ins Unendliche reichen.Unterschiedliche Hintergrundfarbe für linke und rechte Hälfte von div

Ich denke, es sollte ziemlich einfach sein, aber ich bekomme es gerade nicht sofort. Jede einfache Lösung? Vielen Dank!

----------------------------------------------------- 
(div 1)  __________________________ 
      |(div 2)   |   | 
      |    |   | 
      |    |   | 
<- white |  white  | green | green -> 
      |    |   | 
      |    |   | 
      |________________|_________| 

------------------------------------------------------ 
+0

Sie könnten einige weitere Ideen erhalten, wenn Sie auf doctype.com fragen –

Antwort

6

hinzufügen Hintergrundbild mit den zwei Farben an der äußeren div und ermöglichen es dem Browser es zu skalieren (anstatt es zu kacheln).

Jede Farbe sollte genau 50% der Breite des Bildes ausfüllen, um sicherzustellen, dass die Farben auf keiner Seite auslaufen.

Vielleicht sogar das Bild absolut hinter dem inneren div positionieren.

Für Ideen, wie das Bild strecken, sieht diese Frage: CSS Background Repeat

+0

Danke, klappt ziemlich cool! Ich wusste nicht mal, dass du bg-Bilder strecken kannst. – Christoph

0

hatte ich nach innen, dass div zwei anderen divs setzen und ihnen die entsprechenden Größen und Farben backgound

+0

Das zentrierte div2 ist bereits in diesem anderen div1. Es wird mit margin: auto zentriert. Ich glaube nicht, dass ich zwei andere Divs dort drinnen haben kann? – Christoph

+0

sicher kannst du. Sie müssen die zwei weiteren Divs hinzufügen oder sich mit einem sich wiederholenden Hintergrundbild beschäftigen, das die Farbänderung für Sie ausführt. – YetAnotherDeveloper

1

Sie zwei Divs auf der Außenseite haben könnten, und dann einen des divs in jeweils. Rechtsbündig ausrichten bzw. links ausrichten. Wie so:

----------------------------------------------------- 
(div)      | (div) 
      _________________|_________ 
      |(div)   | (div) | 
      |    |   | 
      |    |   | 
<- white |  white  | green | green -> 
      |    |   | 
      |    |   | 
      |________________|_________| 
          | 
------------------------------------------------------ 
+0

Aber das funktioniert nur, wenn die Linie zwischen den beiden äußeren divs genau bei 50% des Bildschirms ist (was es nicht in meinem Layout ist)? – Christoph

7

Verwenden Sie die ::after und ::before psuedo Elemente. Auf diese Weise können Sie sogar drei Farben erhalten und die italienische Flagge machen!

div { 
    height:300px; 
    width:100%; 
    outline:thin solid black; 
    position:relative; 
    background:white; 
} 
div::after, div::before { 
    height:300px; 
    content:' '; 
    position: absolute; 
    top: 0; 
    width: 33%; 
} 
div::after { 
    right: 0; 
    background-color: red; 
} 
div::before { 
    left: 0; 
    background-color: green; 
} 

Hier ist eine Geige: http://jsfiddle.net/g8p9pn1v/

und ihre Ergebnisse: enter image description here

1

Wie etwa zwei divs bg-links und bg-Recht zu schaffen, mit einer Position absolut innerhalb einer vollen Breite Behälter. Da sie absolut positioniert sind, können Sie dann den Inhalt darüber schichten. So zum Beispiel mit Bootstrap-Markup:

<div class="fullwidth"> 
    <div class="bg-left"></div> 
    <div class="bg-right"></div>  

    <div class="container"> 
     <div class="row"> 
      <div class="col-xs-6"> 
       Insert left side content here... 
      </div> 
      <div class="col-xs-6"> 
       Insert right side content here... 
      </div> 
     </div> 
    </div> 
</div> 

Dann CSS:

.fullwidth { 
    position: relative; 
    width: 100%; 
} 
.bg-left { 
    background: #000; 
    left: 0; 
    top: 0; 
    bottom: 0; 
    position: absolute; 
    width: 50%; 
} 
.bg-right { 
    right: 0; 
    top: 0; 
    bottom: 0; 
    background: #ddd; 
    position: absolute; 
    width: 50%; 
} 
0

können Sie Gradient verwenden. Dies ist eine Website, wo Sie den Cross-Browser-Code von dem bekommen können, was Sie brauchen.

http://colorzilla.com/gradient-editor/

Es kann ein wenig verwirrend sein, am Anfang zu verwenden, aber ich es ein sehr leistungsfähiges Werkzeug finden.

Grüße!

Verwandte Themen