tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
1860
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ich versuche derzeit ein div vertikal zu zentrieren, aber irgendwie bin ich zu blöd, das hinzukriegen ...
    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    div.info {
        background: #CCCCCC url(../images/info.png) no-repeat 10px 10px;
        padding: 10px;
        padding-left: 65px;
        border: 1px solid #666666;
        min-height: 45px;
    }
     
    div.info div {
        color: #666666;
        font-weight: bold;
    }

    HTML-Code:
    <div class="info"><div>Mein Hinweistext.</div></div>
    Der Hinweistext kann eine odere mehrere Zeilen lang sein, wodurch line-height ausscheidet. auf den Text angewandt. WIe könnte ich denn nun das innere div vertikal zentrieren?
    Geändert von Radhad (28.08.09 um 14:47 Uhr)
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  2. #2
    Maik Tutorials.de Gastzugang
    Hi,

    dies funktioniert über die Tabelleneigenschaften der display-Eigenschaft in Verbindung mit vertical-align:middle.

    Ein Beispiel incl. IE-Workaround bzgl. der mangelhaften Unterstützung dieser display-Tabellenwerte gibt es hier: http://www.pmob.co.uk/temp/vertical-align11.htm

    mfg Maik
     

  3. #3
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ich versteh nicht ganz wie ich das bei einem Fließtext mit unterkriegen soll. Meine Versuche mit display: table & display: table-cell haben nicht im EInklang mit min-height funktioniert ...
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  4. #4
    Maik Tutorials.de Gastzugang
    Willst du den inneren <div>-Block, oder darin den Fließtext vertikal zentrieren?

    Und in welchem Höhen-Kontext soll die vertikale Zentrierung stehen, wenn ein vertikaler Außen- und/oder Innenabstand beim Ausrichten nicht weiterhilft? Mit einer Angabe zur Mindesthöhe ist es meines Wissens so nicht möglich.

    Achja, ist das da ein Tippfehler im Selektor "div.infor {}"? Oder wo findet sich im Markup das gleichnamige Element?

    mfg Maik
     

  5. #5
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    "infor" ist ein Tippfehler, sollte "info" sein, sorry.

    Also ich denke mal, das einfachste wäre doch eigentlich, den inneren div vertikal zu zentrieren. Ich nutze "min-height", weil sich die größe ändern soll, wenn mal viel Text dort vorhanden ist. Falls du eine andere Möglichkeit kennst, wäre mir das auch Recht.
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  6. #6
    Maik Tutorials.de Gastzugang
    Ohne eine Höhenangabe kannst du die vertikale Zentrierung nur über padding und/oder margin regeln.

    mfg Maik
     

  7. #7
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ok, und wenn ich von min-height auf height wechsel?
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  8. #8
    Maik Tutorials.de Gastzugang
    Ausgehend von dem empfohlenen Beispiel http://www.pmob.co.uk/temp/vertical-align11.htm:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    <style type="text/css">
    * {margin:0;padding:0}
    html,body{height:100%}
    #wrapper{
            [b]height:200px;[/b] /* Von mir frei gewählt */
            width:100%;
            display:table;
            vertical-align:middle;
            [b]border:1px solid red;[/b] /* Zur Visualierung der vertikalen Zentrierung */
    }
    #outer{
            display:table-cell;
            vertical-align:middle;
    }
    #formwrap{
            position:relative;
            left:50%;
            float:left;
    }
    #form1{
            border:1px solid #000;
            padding:20px 20px;
            position:relative;
            text-align:right;
            left:-50%;
    }
    p{margin:1em 0}
    input{position:relative;background:#ffffcc}
     
    </style>
    <!--[if lt IE 8]>
    <style type="text/css">
    #wrapper{        overflow:hidden;/* stop hoz scroll bar from appearing*/}
    #formwrap {top:50%}
    #form1{top:-50%;}
    </style>
    <![endif]-->
    </head>
    <body>
    <div id="wrapper">
            <div id="outer">
                    <div id="formwrap">
                            <form id="form1" method="post" action="">
                                    <p>
                                            <label for="t1">Name: </label>
                                            <input type="text" name="t1" id="t1" value="I'm in the middle" />
                                    </p>
                                    <p>
                                            <label for="t2">Password: </label>
                                            <input type="password" name="t2" id="t2" />
                                    </p>
                            </form>
                    </div>
            </div>
    </div>
    </body>
    </html>


    mfg Maik
     

  9. #9
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ok, jetzt sieht es schon besser aus, nur ein Problem habe ich noch: die Box ragt auf der rechten Seite aus der Seite raus bei width: 100%.

    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    div.informationBox {
        background: #CCCCCC url(../images/info.png) no-repeat 10px 10px;
        margin: 10px;
        padding: 10px;
        padding-left: 65px;
        border: 1px solid #666666;
        height: 45px;
        display: table;
        vertical-align: middle;
    }
     
    div.informationBox div {
        color: #666666;
        font-weight: bold;
        display: table-cell;
        vertical-align: middle;
    }

    Wie kann ich das noch in den Griff kriegen?

    PS: den margin hab ich vorhin wohl gelöscht, soll natürlich ein wenig abstand zu den anderen Elementen haben.
    Geändert von Radhad (28.08.09 um 16:38 Uhr)
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  10. #10
    Maik Tutorials.de Gastzugang
    Zitat Zitat von Radhad Beitrag anzeigen
    nur ein Problem habe ich noch: die Box ragt auf der rechten Seite aus der Seite raus bei width: 100%.
    Gemäß dem Box-Modell werden die festgelegten horizontalen Außen- und Innenabstände, sowie die Rahmenstärke zu dieser Eigenschaftsangabe hinzuaddiert, was für .informationBox eine tatsächliche Boxenbreite von "100% + 3*10px + 65px + 2*1px" ergibt, und vom Browser entsprechend breiter dargestellt wird.

    Um diesen Konflikt zu vermeiden, und für .informationBox die erforderliche relative Breitenangabe nutzen zu können, damit sich die Boxenbreite (bedingt durch display:table) dem Elternelement angleicht, könntest du die angesprochenen CSS-Deklarationen im Markup geschickt aufteilen:
    HTML-Code:
    <div class="marginWrapper">
         <div class="informationBox">
              <div>Mein Hinweistext.</div>
         </div>
    </div>
    Code css:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    div.marginWrapper {
        margin: 10px;
        border: 1px solid #666666;
        height: 1%;
    }
     
    div.informationBox {
        background: #CCCCCC url(../images/info.png) no-repeat 10px 10px;
        width: 100%;
        height: 45px;
        display: table;
        vertical-align: middle;
    }
     
    div.informationBox div {
        color: #666666;
        font-weight: bold;
        display: table-cell;
        vertical-align: middle;
        padding: 10px;
        padding-left: 65px;
    }

    mfg Maik
     

  11. #11
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Super, vielen Dank, jetzt klappt es wunderbar
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

Ähnliche Themen

  1. div vertikal zentrieren die 2te
    Von ne0hype im Forum CSS
    Antworten: 12
    Letzter Beitrag: 07.02.08, 17:20
  2. Div im Div vertikal zentrieren
    Von hubbl im Forum CSS
    Antworten: 1
    Letzter Beitrag: 24.01.08, 16:49
  3. Div Inhalt Vertikal zentrieren
    Von D-LuX im Forum CSS
    Antworten: 3
    Letzter Beitrag: 15.10.07, 14:29
  4. div vertikal zentrieren
    Von tinella im Forum CSS
    Antworten: 0
    Letzter Beitrag: 29.09.06, 10:57
  5. Im DIV Tag vertikal zentrieren
    Von JanQ im Forum CSS
    Antworten: 5
    Letzter Beitrag: 29.09.04, 21:17