|
|||
Vertikale Positionierung von Elementen in einer inline-block Liste
Moin moin alle zusammen,
Ich bin neu hier im Forum und freue mich an dieser Stelle schonmal auf die zukünftigen Info-Austausch! Folgendes Problem treibt mich um: Mit ein paar Freunden veranstalten wir ein kleines Festival für das ich gerade eine einfache Homepage baue. In der Liste der teilnehmenden Bands sollen diese in Kacheln jeweils mit Name, Logo und Herkunft dargestellt werden. Das setze ich mit einer <ul> um. Die einzelnen Kacheln sollen später mal folgendermaßen aussehen: oben ein <div> mit fester Höhe, darin das Logo vertikal zentriert. Darunter der Name und Herkunft. Klappt aber nicht wie es soll, da das Bandlogo permanent am oberen Rand des divs und damit auch des <li>-Elements liegt. Der Code sieht so aus: HTML-Code:
<ul id="bandlist"> <li> <a href="bands.php?name=bandname"> <div class="listlogo"> <img src="bands/band-logo.jpg" /> </div> <span>Bandname</span> <img src="herkunft.jpg" /> </a> </li> ... </ul> Code:
#bandlist { margin: 0; padding: 0; } #bandlist li { list-style: none; width: 200px; text-align: center; display: inline-block; background-color: black; padding: 1%; margin: 1%; } .listlogo { height: 150px; } .listlogo img { vertical-align: middle; } Schon einmal vielen Dank für eure Antworten! |
Sponsored Links |
|
|||
Hallo MrMurphy,
Habe ich getan, es ändert sich leider nichts. Weiterhin klebt das Logo-img am oberen Rand des divs. Ich habe es zur Veranschaulichung mal mit einer grellen Hintergrundfarbe gesehen, kann also sicher sagen, dass das div genau die Höhe hat, die es haben soll und dass das entsprechende img oben dran klebt. Was ist denn da los? Schöne Grüße, Kone |
|
|||
Wie siehts mit display: table aus, schon probiert?
Edit: Außerdem gehört vertical-align: middle nicht zum img-Element, sondern in das Eltern-Element. Geändert von dazzle89 (14.12.2015 um 16:38 Uhr) |
|
|||
Moin dazzle89,
Danke für deinen Hinweis, aber das klappt leider auch nicht. By the way hab ich mal probiert, die Elemente mit dem top-Argument zu verschieben. Dabei bewegen sie sich auch nicht. Nur Styling wie Border oder Background funktionieren. Ich verstehe es nicht!!! Geändert von kone (14.12.2015 um 19:55 Uhr) |
|
|||
Dann schick mal bitte den angepassten Code von dir.
Mit display: table-cell und vertical-align: middle beim Eltern-Element sollte das eigentlich klappen. Und die top-Eigenschaft funktioniert nur, wenn das Element absolute, relative oder fixed positioniert ist. Ich habe mal eine Demo für dich erstellt, die müsste auf deine Bedürfnisse reduziert sein und vielleicht kannst du dich daran orientieren: https://jsfiddle.net/6ev8hfo8/ Geändert von dazzle89 (15.12.2015 um 08:05 Uhr) |
|
|||
Hier siehst du alle Möglichkeiten, wie du etwas horizontal und/oder vertikal zentrieren kannst.
Meine Empfehlung: Verwende Flexbox Vertical-align hat in dem Sinne, wie du es verwendest, nichts mit vertikalem zentrieren zu tun. Auch wenn es sich schön vom englischen so ins deutsche übersetzen ließe. Es wirkt sich auf die Textposition aus. |
Sponsored Links |
|
|||
Hallo
Zitat:
Code:
.listlogo { height: 150px; display: table-cell; vertical-align: middle; } Das habe ich erst jetzt nach etwas intensiverer Rechere verstanden. Mit display: inline oder display: inline-block des umgebenden Elements lassen sich Bilder nicht vertikal ausrichten. vertical-align funktioniert bei der Ausrichtung eines Bildes nur zusammen mit display: table oder display: table-cell. Intern machen die Browser daraus jeweils vollständige Tabellen mit table, table-row und table-cell. Das ganze Konstrukt verhält sich dann auch wie eine Tabelle mit allen Vor- und Nachteilen. display: flex ist aktuell die sinnvollste Lösung. Die Eigenschaft ist unter anderem für solche Ausrichtungen eingeführt worden. Gruss MrMurphy |
Sponsored Links |
Stichwörter |
div, listendarstellung, vertical-align |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Verschiebungen bei größerem Bildschirm | seelefant | CSS | 4 | 28.07.2014 15:43 |
FAQ -- Häufig gestellte Fragen und häufig gegebene Antworten | mazzo | CSS | 10 | 05.04.2012 17:32 |
div als inline Hintergrund auch bei block Elementen | css7545 | CSS | 2 | 22.06.2009 22:16 |
display: block und inline | maggie | CSS | 21 | 05.05.2009 13:24 |
Liste (inline) Umbruch erzeugen | Steakfred | CSS | 3 | 09.05.2006 12:27 |