[CSS] Hintergründe verschwinden

Garbanas

Cadet 4th Year
Registriert
Mai 2010
Beiträge
72
Hallo alle zusammen

Eine Lösung zu dem folgenden Problem habe ich bereits, jedoch frage ich mich, ob es nicht eleganter geht.

Nimmt man unten angefügten Code und verkleinert das Browserfenster auf unter 850px Breite, so dass die Scrollbalken auftauchen, und bewegt sich dann auf die ganz rechte Seite innerhalb des Fensters, dann verschwinden die Hintergrundfarben, da sich die Elternelemente der Breite des Fensters anpassen.

css-bg-thingy-at-cb-1.png


wird zu

css-bg-thingy-at-cb-2.png


HTML:
<html>
<head>
 <title>Test</title>
 <style type="text/css">

.outer {
	padding: 10px 0;
	background-color: LightSkyBlue;
}

.inner {
	margin-left: 450px;
	background-color: SpringGreen;
}

.content {
	padding: 10px;
	width: 400px;
	height: 300px;
	border-left: 2px solid red;
	border-right: 2px solid red;
}

 </style>
</head>
<body>

<div class="outer">
  <div class="inner">
    <div class="content"><h1>Lorem ipsum dolor sit amet</h1></div>
  </div>
</div>

</body>
</html>

Gibt man im CSS für die Eltern-Container jeweils eine passende Mindestbreite (min-width) an, dann funktioniert natürlich aller super.
Meine Frage ist: Geht es auch anders? Kann ich irgendwie nur die Breite des Content-Elements festlegen während die anderen Elemente genau bis zum rechten Ende eben dieses Elements reichen?

Danke für Eure Antworten
Garbanas
 
wenn ich das richtig verstehe musst doch doch einfach nur bei content die "width: 100%" setzen
 
Soldier Boy schrieb:
wenn ich das richtig verstehe musst doch doch einfach nur bei content die "width: 100%" setzen

Na - dann ist aber der Content eben 100% breit und nicht mehr 400px wie im obigen Beispiel bzw. der rechte Begrenzungsbalken (rot) wäre dann immer ganz rechts am Ende der Seite.
Aber du bringst mich da grad auf eine Idee...

edit: nope. Mehr Verschachtelungen bringen auch nichts ;)
 
Zuletzt bearbeitet:
weil der Text die breite des Containers sprengt?


h1 {
width: 100%;
}

aehm nein, Sorry ^^

Verwende "Opera Dragonfly" da seh ich das der Outer Container im errechnenten Style kleiner wird
 
Zuletzt bearbeitet:
Du musst .outer eine min-width geben, dann kann es nicht mehr kleiner werden. Dabei ist die Mindestbreite die Summe aller Breiten (CSS-Box-Modell) der Kindelemente, in deinem Fall 874 Pixel.

Code:
.inner           = 450px
.content         = 400px
.content border  = 2 x 2px
.content padding = 2 x 10px
-----------------------------------
min-width        = 874px

HTML:
<!DOCTYPE HTML><html><head><meta charset=utf-8><title>Test</title><style>
.outer {
	min-width: 874px;
	padding: 10px 0;
	background-color: LightSkyBlue;
}

.inner {
	margin-left: 450px;
	background-color: SpringGreen;
}

.content {
	padding: 10px;
	width: 400px;
	height: 300px;
	border-left: 2px solid red;
	border-right: 2px solid red;
}
</style>
</head><body>

<div class="outer">
  <div class="inner">
    <div class="content"><h1>Lorem ipsum dolor sit amet</h1></div>
  </div>
</div>
 
Danke für eure Antworten.

Fleshgrinder schrieb:
Du musst .outer eine min-width geben, dann kann es nicht mehr kleiner werden.

Das ist mir bewusst. Die Frage war, ob's auch anders get. Natürlich ist das Anpassen von zwei Werten nicht die Welt. Dennoch: warum kann sich das nicht selbst berechnen? Das war ja die Eingangsfrage :)

Crizzo schrieb:

Das Beispiel ist nur auf's Wesentlich beschränkt. Im Original ist's XHTML 1.0 Transitional. Macht dort aber keinen Unterschied.
 
Das geht auch:

HTML:
<!DOCTYPE HTML><html><head><meta charset=utf-8><title>Test</title><style>
.outer {
	width: 100%;
	display: table;
	padding: 10px 0;
	background-color: LightSkyBlue;
}

.inner {
	margin-left: 450px;
	background-color: SpringGreen;
}

.content {
	padding: 10px;
	width: 400px;
	height: 300px;
	border-left: 2px solid red;
	border-right: 2px solid red;
}
</style>
</head><body>

<div class="outer">
  <div class="inner">
    <div class="content"><h1>Lorem ipsum dolor sit amet</h1></div>
  </div>
</div>
 
@Fleshgrinder: Sehr gut. Danke :)
Natürlich muss man dann noch schaun, wo IE 6 & 7 bleiben...
 
Bitte lass jegliche IE6 Unterstützung weg, wenn immer alle für den dämlichen Browser stylen, wir das Ding nie aussterben. Selbst Google (mit YouTube) bietet keine Unterstützung für IE6!
 
Das ist immer vom Kunden abhängig bzw. wie man seine Prioritäten setzt.

Ich selbst löse dies mit min-width und einem kleinen JS Schnipsel für IE6. Eine andere Lösung ist mir für dieses Problem nicht bekannt.
 
Zurück
Oben