Hintergrundbilder über zwei div-Bereiche passgenau

Status
Nicht offen für weitere Antworten.

NTDY

Erfahrenes Mitglied
Code:
|-body------------------------|
|     |-A2--------------|     |
|     |  |-A3--------|  |     |
|     |  |           |  |     |
|     |  |           |  |     |
|     |  |           |  |     |
|     |  |           |  |     |
|     |--|           |--|     |
|        |           |        |
|        |           |        |
|        |           |        |
|        |           |        |
|--------|-----------|--------|
Ich möchte gern eine Seite realisieren, die Folgendes erfüllt.

<body> besitzt eine Hintergrundbild: hintergrund.jpg. Das Element <body> ist in css so definiert:

color:#000000;
font-family:Arial,Helvetica,sans-serif;
font-size:14px;
line-height: 120%;
background-image:url(hintergrund.jpg);

Im Element <body> befindet sich das div Element A2. Innerhalb von A2 gibt es das div-Kindelement A3.
Beide div-Elemente A2 und A3 besitzen Bilder als Hintergrund mit dem Parameter: background-image. Beide Hintergrundbilder in A2 und A3 fließen ineinander (das Bild A2 geht über seine Grenzen hinaus, in den Bildbereich A3 hinein). Die Seite soll so angelegt sein, dass sich A2 und A3 in der Mitte befinden (siehe Skizze). Die Webseite ist für eine Bildschirmgröße von 1024px Breite optimiert. Daher ist der A3-Bereich 989px breit. Nur wenn der Benutzer eine größere Bildschirmgröße besitzt, soll der A2 Bereich auch sichtbar sein. Mit einer Bildschirmbreite von 1024px soll nur der A3 Bereich sichtbar sein und zusätzlich sollen keine Scrollbalken vertikal zu sehen sein.

Mein folgendes Konstrukt funktioniert leider noch nicht perfekt:
Code:
<html>
<head>
<style>
*{
	margin:0;
	padding:0;
}

body{
	color:#000000;
	font-family:Arial,Helvetica,sans-serif;
	font-size:14px;
/*	line-height: 120%;*/
	background-image:url(images/cp_hintergrund.jpg);
	background-color:#00FF00;
}

.wrapper{
	background-image:url(images/cp_hintergrund2.jpg);
	background-repeat:no-repeat;
	margin:0px auto;
	height: 400px;
}	
	
.style1{
	background-image:url(images/cp_mittelteil.jpg);
	width:989px;
	height:400px;
	margin: 0px auto;
}
</style>
</head>

<body>
  <div class="wrapper">
	<div class="style1">12345678</div>
  </div>    
</body>
</html>

Suchwörter: überlappend, Bild überlappt 2 div-Bereiche, ineinaderfließende div-Bereiche mit Bild, überlappende Grafik
 
Zuletzt bearbeitet:
Hi,

und was funktioniert bei dir mit dem Stylesheet nicht perfekt?

Falls es im IE an der horizontalen Ausrichtung der Blöcke im Viewport scheitert, liegt es am Darstellungsmodus "Quirksmode", in den die Browser bei der Übergabe des HTML-Dokuments ohne jegliche Doctype-Deklaration schalten, Stichwort "Doctype-Switch", und vom IE u.a. mit Fehlinterpretationen des "CSS-Boxmodells" quittiert wird.

Lösung in diesem Fall: Entweder das HTML-Dokument den Browsern im standardkonformen Modus übergeben, oder folgende CSS-Regel ergänzen:
Code:
body{
        color:#000000;
        font-family:Arial,Helvetica,sans-serif;
        font-size:14px;
/*        line-height: 120%;*/
        background-image:url(images/cp_hintergrund.jpg);
        background-color:#00FF00;
        text-align:center; /* Horizontale Zentrierung im IE */
        overflow:auto; /* Scrollleiste bei übergroßem Inhalt  */
        overflow-y:hidden; /* Vertikale Scrollleiste unterdrücken */
}

.style1{
        background-image: url(images/cp_mittelteil.jpg);
        width:989px;
        height:400px;
        margin: 0px auto;
        text-align:left; /* Elementinhalt linksbündig ausrichten */
}


mfg Maik
 
Hi,

ich weiß nicht obs hier relevant ist, aber da von scrollbalken in divs die rede ist gehe ich mal davon aus, dass du feste width und height werte für deine div's benutzt.

In diesem fall würde dir der Befehl: overflow bestimmt helfen.

hier mal ein kleiner hilfelink:
http://www.css4you.de/overflow.html

vielleicht findest du damit auch eine lösung die scrollbars auf hidden zu setzen ;-)

Ich hoffe ich konnte helfen.

mfg Into
 
Ich glaube, hier ist lediglich von den "Haupt"-Scrollleisten im Browserfenster die Rede, die ab einer gewissen Fenstergröße nicht erscheinen sollen ;)

mfg Maik
 
Also ich habe es soweit geschafft, dass die Bilder übereinanderlappend in den div-Elementen wrapper und style1 passen. Ich habe einfach innerhalb von style1 den Parameter position verwendet.
Was noch nicht klappt ist, dass wenn ich das Browserfenster verkleinere, sich ab einer kleineren Breite als 1290px ein horizontaler Scrollbalken bildet. Dieser Scrollbalken soll aber erst ab der Breite 989px vorkommen und soll dann auch nur noch den style1 Bereich zeigen.

Code:
<html>
<head>
<style>
*{
	margin:0;
	padding:0;
}
body{
	background-image:url(cp_hintergrund.jpg);
	background-repeat:repeat-x;
	text-align:center; /* Horizontale Zentrierung im IE */
	overflow:auto; /* Scrollleiste bei übergroßem Inhalt  */
	overflow-y:hidden; /* Vertikale Scrollleiste unterdrücken */
}
.wrapper{
	width:760px;
	margin:0px auto;
	background-image:url(cp_hintergrund2.jpg); /* Bild: width: 1290px / height: 400px */
	max-width:1290px;
	min-width:1290px;
	max-height:500px;
	min-height:500px;
	background-repeat:no-repeat;
}

.style1{
	margin:0px auto;
	background-image:url(cp_mittelteil.jpg); /* Bild: width: 989px / height: 647px */
	height:647px;
	background-repeat:no-repeat;
	width:989px;
	position:relative;
	top:130px;	
	left:-58px;
	text-align:left; /* Elementinhalt linksbündig ausrichten */
}
</style>
</head>

<body>
  <div class="wrapper">
	<div class="style1">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
	</div>
  </div>  
</body>
</html>
 
Moin,

der horizontale Scrollbalken ergibt sich durch die min-width:1290px-Deklaration für .wrapper, die auf "989px" herabgesetzt gehört, wenn erst unterhalb dieser Fensterbreite im Browser der Scrollbalken erscheinen soll.

Somit ist dann der Hintergrund von .wrapper beim horizontalen Scrollen im runterskalierten Viewport auch nicht mehr sichtbar.

mfg Maik
 
Da passieren leider gleich zwei Fehler:

1. Das Bild in wrapper wird auf einmal nur noch 989px breit.
2. Der Paramater postion in style1 greift nicht mehr und style1 verschiebt sich.
 
Diese Fehler kann ich bei mir nicht nachvollziehen / reproduzieren.

Steht das Konstrukt incl. der Hintergrundbilder zur Begutachtung irgendwo online zur Verfügung?

mfg Maik
 
Die aufgetretenen Darstellungsfehler resultieren meines Erachtens schlichtweg durch den "Boxenhintergrund" im .wrapper-Hintergrundbild, der sich nicht in der Bildmitte befindet, um mit dem darin horizontal zentrierten Block .style1 zu korrespondieren.

Daher auch dein Versuch, dies mit einer negativen left-Deklaration für den Block .style1 auszugleichen.

mfg Maik
 
Also so richtig funktioniert dies nicht mit dem min-width und dem max-width. Ich habe mal ein anderes Beispiel mit drei Spalten genommen und min-width und max-width angereichert.

HTML:
<html>
<head>
<style type="text/css" media="screen">
html { 
  padding:0px;
  margin:0px;
}

body {
  background-color:#FFCC66;
  text-align:center;
  margin:0px;
  padding:0px;
}

#box {
width:1290px;
margin: 0px auto;
padding:0px;
text-align:left;
background-color:#0000FF;
}

#links {
width:150.5px;
height:400px;
padding:0px;
float:left;
background-color:#00FFFF;
min-width:0;
max-width:150.5px;
}

#inhalt {
width:989px;
max-width:989px;
min-width:989px;
padding:0px;
float:left;
background-color:#CCCCCC;
}

#rechts {
width:150.5px;
height:400px;
padding:0px;
float:left;
background-color:#00FF00;
min-width:0;
max-width:150.5px;
}
</style>
</head>

<body>

<div id="box">	
	<div id="links">
	</div>

	<div id="inhalt">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.   

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.   

Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.   

Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.   

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.   

At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
</div>

	<div id="rechts">
	</div>
</div>

</body>
</html>
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück