tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
392
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Skid Skid ist offline Mitglied Silber
    Registriert seit
    Sep 2006
    Beiträge
    91
    Hallo,

    ich bin derzeit an einer Website dran und verstehe ein Problem nicht ganz.
    Ich habe im Grunde einen DIV-Container der mittig mit position:alternative positioniert ist. Das funktioniert alles wunderbar. Jetzt habe ich jedoch innerhalb dieses Containers drei weitere Container die mittels float nebeneinander dargestellt werden. Siehe hier:
    Div nach scrollen erweitern-no_scroll.jpg

    Dabei ist der rote und gelbe Bereich jeweils ein 5px weites Div-Element, welches mittels Height 100% auf die Gesamtgröße des Browsers erweitert wird. Da drinnen befindet sich eine Hintergrund-Grafik, die ständig wiederholt wird. Der grüne Bereich ist der eigentliche _variable_ Inhalt, dieser kann sich, durch Einträge vergrößern.

    Das funktioniert so wunderbar, jedoch wenn der Inhalt des grünen Fensters über die Browsergröße drüber geht, das heißt der Scroll-Balken erscheint, passiert folgendes:
    Div nach scrollen erweitern-scroll.jpg

    Die beiden Border-DIVs werden nicht auf auf die Größe des mittleren DIVs angepasst.

    Kann mir jemand sagen, wie es möglich ist, dass sich die Größe des DIV-Containers der Größe des Hauptcontainers anpasst ?
    Ich habe es schon mit max-height und overflow etc. probiert, hat allerdings alles keinen Effekt.

    Beste Grüße und Danke,
    SKiD.
     

  2. #2
    Avatar von para_noid
    para_noid para_noid ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    144
    Ich würde den beiden äußeren Divs ein position: fixed geben.
     
    Für die Übereinstimmung von Niederschrift und Hirninhalt.

  3. #3
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    1. Die beiden äußeren in das mittlere Stecken

    2. Dem mittleren overflow:auto geben, damit innerhalb von diesem gescrollt wird

    3. (Wenn einfarbig: ) Die beiden äußeren weglassen und stattdessen border-left und border-right verwenden

    4. (Wenn Muster: ) Die beiden äußeren weglassen und stattdessen die eine Hintergrundgrafik dem body und die anderem dem html Element geben und dem mittleren mittels margin-left/right einen Abstat geben

    5. Was para_noid gesagt hat





    (in keiner besonderen Reihenfolge)
     

  4. #4
    Skid Skid ist offline Mitglied Silber
    Registriert seit
    Sep 2006
    Beiträge
    91
    Danke erst einmal für die Antworten. das mit Position:Fixed funktioniert zwar, habe mich aber aus anderen Gründen für einen etwas anderen Aufbau der Div-Tags entschieden. Alles funktioniert soweit einwandfrei, mir ist nur etwas seltsames aufgefallen, was ich nicht recht zu interpretieren weiß. Vielleicht könnt ihr mir das erklären.

    Ich habe folgenden Beispielcode:
    HTML-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Unbenanntes Dokument</title>
    <style type="text/css">
    #html, body
    {
    	margin-bottom: 0;
    	margin-top: 0;
    	height: 100%;
    }
    
    #content
    {
    	width: 500px;
    	height: 100%;
    	height: auto !important;
    	min-height: 100%;
    	background-color: #FF0000;
    }
    
    #top
    {
    	background-color: #00FF00;
    	min-height: 200px;
    }
    
    #middle
    {
    	width: 300px;
    	margin-left: 5px;
    	background-color: #FFFF00;
    	min-height: 50px;
    	float: left;
    }
    
    #bottom
    {
    	width: 175px;
    	margin-right: 5px;
    	background-color: #FF00FF;
    	min-height: 50px;
    	float: right;
    }
    
    #space
    {
    	min-height: 10px;
    	clear: both;
    }
    </style>
    </head>
        <div id="content">
            <div id="top">TITLE
            </div>
            <div id="middle">
                <p>CONTENT</p>
                <p>CONTENT</p>
                <p>CONTENT</p>
                <p>CONTENT</p>
                <p>CONTENT</p>
                <p>CONTENT</p>
            </div>
            <div id="bottom">
                <p>SIDE</p>
                <p>SIDE</p>
                <p>SIDE</p>
                <p>SIDE</p>
            </div>
            <div id="space">
            </div>
        </div>
    <body>
    </body>
    </html>
    Was mich interessiert ist, warum der Hintergrund von dem Content-Div nur bis Anfang des Middle- beziehungsweise Bottom-Divs gefüllt wird, wenn das Space-Div auskommentiert wird. Wenn ich das Space-Div drinnen lasse, wie hier angegeben, funktioniert es zwar wie gewünscht, der Effekt irritiert mich dennoch etwas.

    Woher kommt das ?

    Erwarten würde ich in diesem Fall, dass der Hintergrund des Bottom-Divs und Middle-Divs komplett gefüllt wird, bis diese komplett abgeschlossen sind.
     

  5. #5
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Weil die beiden DIVs floaten. Dadurch gehen sie über den Rand des #content div hinaus. Genau dafür ist #space da (clear:both hebt das floaten auf).
     

Ähnliche Themen

  1. Frame nach unten scrollen
    Von emptynick im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 30.06.08, 20:37
  2. von links nach rechts scrollen
    Von laokon im Forum CSS
    Antworten: 3
    Letzter Beitrag: 21.12.07, 06:46
  3. Langsames scrollen, nach Installation
    Von SMoeller im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 13.10.06, 17:28
  4. layer nach unten scrollen
    Von meiner0815 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 30.08.06, 22:09
  5. Nach Iframe laden, wieder nach oben scrollen
    Von MediaPlanet im Forum HTML & XHTML
    Antworten: 7
    Letzter Beitrag: 28.08.03, 22:15