tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
17
ZUGRIFFE
796
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    owned139 owned139 ist offline Mitglied Bronze
    Registriert seit
    Jun 2009
    Beiträge
    26
    Hallo liebe Community,
    ich habe mal wieder ein Problem. Wie bekommt man bei einem 3 zeiligen Design die mittleren DIV`s so groß, das sich das Design auf 100% des sichbaren Bereichs erstreckt?

    HTML:
    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>
            <link rel="stylesheet" type="text/css" href="style.css" />
        </head>
        <body>
            <div id="header"></div>
            <div id="navigation"></div>
            <div id="content"></div>
            <div class="clear"></div>
            <div id="footer"></div>
        </body>
    </html>
    CSS:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    html,body{
        padding:0;
        margin:0;
        border:none;
        width:100%;
        height:100%;
    }
    #header{
        width:100%;
        height:100px;
        background:#4e4e4e url(img/black_border.gif) bottom repeat-x;
    }
    #navigation{
        float:left;
        width:240px;
        height:400px;
        background:#646464 url(img/menu_spacer.jpg) right repeat-y;
    }
    #content{
        margin:0 0 0 240px;
        height:400px;
        background:#393939;
    }
    #footer{
        width:100%;
        height:40px;
        background:#4e4e4e url(img/black_border.gif) repeat-x;
    }
    .clear{
        clear:both;
    }

    navigation und content sollen eine variable Höhe haben.
     

  2. #2
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Indem ein weiteres DIV deine existierenden DIVs ein-/umschließt, das zum einen mit einer Mindesthöhe von 100% ausgestattet wird, und zum anderen als Hintergrund den von #navigation übernimmt, da dieser eine absolute Breite besitzt (Hintergrundfarbe und -bild werden in einer Grafik vereint).

    Den breitenvariablen Hintergrund für den Inhalt wiederum besorgt dann stattdessen das <body>-Element.

    Auf diese Weise gleichen sich auch die Spaltenhöhen automatisch an, was mit deinem CSS ebenso nicht der Fall wäre.

    Code xhtml:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    <!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>
            <link rel="stylesheet" type="text/css" href="style.css" />
        </head>
        <body>
            <div id="wrap">
                <div id="header"></div>
                <div id="navigation"></div>
                <div id="content"></div>
                <div id="footer"></div>
            </div>
        </body>
    </html>
    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    body {
       background:#393939;
    }
    #wrap {
       background:url(naviBg.jpg) repeat-y;
       min-height:100%;
       height:auto !important;
       height:100%;
    }
    #navigation{
        float:left;
        width:240px;
    }
    #content{
        margin:0 0 0 240px;
    }


    Wozu dient hier überhaupt diese unnötige "DIV-Suppe" im HTML-Code?
    Code xhtml:
    1
    2
    
    <div class="clear"></div>
    <div id="footer"></div>
    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    
    #footer{
        width:100%;
        height:40px;
        background:#4e4e4e url(img/black_border.gif) repeat-x;
    }
    .clear{
        clear:both;
    }

    Wo hier doch die verkürzte Fassung mit dem alleinigen DIV #footer möglich ist.

    Sei es so:
    Code xhtml:
    1
    
    <div id="footer" class="clear"></div>
    Oder so:
    Code css:
    1
    2
    3
    4
    5
    6
    
    #footer{
        width:100%;
        height:40px;
        background:#4e4e4e url(img/black_border.gif) repeat-x;
        clear:both;
    }
    Geändert von spicelab (09.11.10 um 19:54 Uhr)
     

  3. #3
    owned139 owned139 ist offline Mitglied Bronze
    Registriert seit
    Jun 2009
    Beiträge
    26
    Danke
    Ich mach fürs "clearen" immer ein extra DIV, ist übersichtlicher wie ich finde
    aber wieso extra ein DIV drum herum? Hätte man das nicht unter html, head{} defninieren können?

    Edit:
    Funktioniert im FF leider garnicht.
    Geändert von owned139 (09.11.10 um 21:55 Uhr)
     

  4. #4
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Zitat Zitat von owned139 Beitrag anzeigen
    Ich mach fürs "clearen" immer ein extra DIV, ist übersichtlicher wie ich finde
    Ah ja, und was ist bitte in deinen Augen an meinen aufgezeigten Möglichkeiten unübersichtlich?

    Wenn du den HTML-Code unnötig (mit inhaltsleeren DIVs) aufblähen willst, was bei einem umfangreicheren / komplexeren Quellcode noch stärker zum Tragen kommt, wünsch' ich dir mal einen guten Appetit mit deiner DIV-Suppe

    Zitat Zitat von owned139 Beitrag anzeigen
    aber wieso extra ein DIV drum herum? Hätte man das nicht unter html, head{} defninieren können?
    Nö, solange die Spaltenhöhen variabel sein sollen.

    Zitat Zitat von owned139 Beitrag anzeigen
    Edit:
    Funktioniert im FF leider garnicht.
    Doch, doch. Hier fehlt blos noch das Sahnehäubchen, damit der Footer am unteren Fensterrand positioniert wird.

    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    #wrap {
       background:url(naviBg.jpg) repeat-y;
       min-height:100%;
       height:auto !important;
       height:100%;
       position:relative;
    }
     
    #footer{
        width:100%;
        height:40px;
        background:#4e4e4e url(img/black_border.gif) repeat-x;
        clear:both;
        position:absolute;
        bottom:0;
    }
    Sowie
    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    #navigation{
        float:left;
        width:240px;
        padding-bottom:40px;
    }
    #content{
        margin:0 0 0 240px;
        padding-bottom:40px;
    }
    ...damit deren Inhalt nicht den Footer unterwandert.
    Geändert von spicelab (10.11.10 um 10:38 Uhr)
     

  5. #5
    owned139 owned139 ist offline Mitglied Bronze
    Registriert seit
    Jun 2009
    Beiträge
    26
    Es funktioniert weiterhin nicht, obwohl ich deinen Code 1zu1 übernommen habe!
    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>
            <link rel="stylesheet" type="text/css" href="style.css" />
        </head>
        <body>
            <div id="wrap">
                <div id="header"></div>
                <div id="navigation"></div>
                <div id="content"></div>
                <div id="footer"></div>
            </div>
        </body>
    </html>
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    body {
       background:#393939;
    }
    #header{
        width:100%;
        height:100px;
        background:#4e4e4e url(img/black_border.gif) bottom repeat-x;
    }
    #wrap {
       background:url(naviBg.jpg) repeat-y;
       min-height:100%;
       height:auto !important;
       height:100%;
       position:relative;
    }
    #footer{
        width:100%;
        height:40px;
        background:#4e4e4e url(img/black_border.gif) repeat-x;
        clear:both;
        position:absolute;
        bottom:0;
    }
    #navigation{
        float:left;
        width:240px;
        padding-bottom:40px;
    }
    #content{
        margin:0 0 0 240px;
        padding-bottom:40px;
    }
    So sieht es aus: http://img826.imageshack.us/img826/7...benanntcxv.jpg
    und so sollte es aussehen: http://img185.imageshack.us/img185/6483/unbenann2t.jpg (sind fixe Werte, Problem besteht also weiterhin)
    spicelab bedankt sich. 

  6. #6
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Meine bislang gezeigten CSS-Codes sind selbstverständlich im eingangs gezeigten CSS-Code einzuarbeiten. Und damit funktioniert es einwandfrei.
     

  7. #7
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Den Grund, warum es bei dir bislang nicht funktioniert, kannst du übrigens hier nachlesen:
     

  8. #8
    owned139 owned139 ist offline Mitglied Bronze
    Registriert seit
    Jun 2009
    Beiträge
    26
    Ok es funktioniert jetzt, allerdings sind die DIV`s #navigation und #content nur so hoch/groß wie der Inhalt und erstrecken sich nicht über die freie fläche zwischen header und footer.
    Geändert von owned139 (10.11.10 um 18:40 Uhr)
     

  9. #9
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Kann ich nicht bestätigen, was deren Hintergründe betrifft, denn die erstrecken sich innerhalb von <body> und <div id="wrap"> über die komplette Höhe im Viewport. Mehr ist da auch nicht möglich, wenn es sich hierbei um Blöcke mit variablen Höhen handeln soll, als mit ihnen (den Hintergründen) beim Betrachter diesen optischen Eindruck zu erwecken.
    Geändert von spicelab (10.11.10 um 19:03 Uhr)
     

  10. #10
    owned139 owned139 ist offline Mitglied Bronze
    Registriert seit
    Jun 2009
    Beiträge
    26
    Hab dir noch mal nen Bild hochgeladen: http://img708.imageshack.us/img708/9...benannttex.jpg

    CSS:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
    html,body {
        height:100%;
        margin:0;
        background:#393939;
    }
    #header{
        width:100%;
        height:100px;
        background:#4e4e4e url(img/black_border.gif) bottom repeat-x;
    }
    #wrap {
        background:url(img/menu_spacer.jpg) repeat-y;
        min-height:100%;
        height:auto !important;
        height:100%;
        position:relative;
    }
    #navigation{
        float:left;
        width:240px;
        padding-bottom:40px;
        background:#646464 url(img/menu_spacer.jpg) right repeat-y;
    }
    #content{
        margin:0 0 0 240px;
        padding-bottom:40px;
    }
    #footer{
        width:100%;
        height:40px;
        background:#4e4e4e url(img/black_border.gif) repeat-x;
        clear:both;
        position:absolute;
        bottom:0;
    }

    Hab ich i.was übersehen?
     

  11. #11
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Zitat Zitat von owned139 Beitrag anzeigen

    Hab ich i.was übersehen?
    i.was heißt noch immer irgendwas - soviel Zeit darf sein.

    Jo. Meinen CSS-Code in Post #2, sowie deinen in Post#5, worin die Hintergrunddefinition für den Navigationsbereich noch stimmt.

    Liest du eigentlich auch die erhaltenen Antworten und Erläuterungen aufmerksam durch? Im Zweifelsfall und zur Sicherheit auch nochmal von oben beginnend?
    Geändert von spicelab (10.11.10 um 19:39 Uhr)
     

  12. #12
    owned139 owned139 ist offline Mitglied Bronze
    Registriert seit
    Jun 2009
    Beiträge
    26
    Ja lese ich
    und ob ich Wörter abkürze oder nicht kannst du mir überlassen.
    In Post #5 enthält der Navigationsbereich gar keine Hintergrunddefinition.
     

  13. #13
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Zitat Zitat von owned139 Beitrag anzeigen
    Ja lese ich
    Macht hier aber nicht den Eindruck.

    Zitat Zitat von owned139 Beitrag anzeigen
    In Post #5 enthält der Navigationsbereich gar keine Hintergrunddefinition.
    Ebend. Bei mir nämlich auch nicht

    Oder wofür steht hier wohl das Hintergrundbild "naviBg.jpg"?

    Zitat Zitat von spicelab Beitrag anzeigen
    Indem ein weiteres DIV deine existierenden DIVs ein-/umschließt, das zum einen mit einer Mindesthöhe von 100% ausgestattet wird, und zum anderen als Hintergrund den von #navigation übernimmt, da dieser eine absolute Breite besitzt (Hintergrundfarbe und -bild werden in einer Grafik vereint).

    Den breitenvariablen Hintergrund für den Inhalt wiederum besorgt dann stattdessen das <body>-Element.

    Auf diese Weise gleichen sich auch die Spaltenhöhen automatisch an, was mit deinem CSS ebenso nicht der Fall wäre.

    [...]

    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    body {
       background:#393939;
    }
    #wrap {
       background:url(naviBg.jpg) repeat-y;
       min-height:100%;
       height:auto !important;
       height:100%;
    }
    #navigation{
        float:left;
        width:240px;
    }
    #content{
        margin:0 0 0 240px;
    }
    Geändert von spicelab (10.11.10 um 19:45 Uhr)
     

  14. #14
    owned139 owned139 ist offline Mitglied Bronze
    Registriert seit
    Jun 2009
    Beiträge
    26
    Ja schön, aber hättest du meine Posts gelesen wüsstest du, dass ich nicht mit dem wrap den BG der Navigation "faken" möchte, sondern die Höhe der beiden DIV`s so anpassen, dass sie sich über den freien Bereich zwischen header und footer erstecken, auch ohne Inhalt!
    Dies funktionert mit deinem Code, was ich dir aber schon mehrmals mitgeteilt habe, nicht!
    Falls deine nächste Antwort wieder so herablassen und patzig sein sollte klemm sie dir
    Geändert von owned139 (10.11.10 um 19:58 Uhr)
     

  15. #15
    Avatar von spicelab
    spicelab spicelab ist offline ZENmechanic
    Registriert seit
    Feb 2010
    Beiträge
    1.744
    Dass du dies nicht faken möchtest, bringst du hier an dieser Stelle zum ersten Mal zum Ausdruck.

    Ich hab von dir nur mehrmals zur Antwort bekommen, dass es bei dir nicht funktioniert.

    Und wie ich auch schon erwähnte, ist dein Vorhaben mit variablen Blockhöhen so nicht möglich.
     

Ähnliche Themen

  1. Auf Größenänderung des Bildschirms reagieren
    Von PositivDenker im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 22.06.10, 09:18
  2. Antworten: 2
    Letzter Beitrag: 01.12.08, 12:56
  3. Popup in der Mitte des Bildschirms?
    Von housewaerts im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 08.10.05, 20:17

Stichworte