Seite 1 von 1

[CSS] Exakt mittige Darstellung von Vorschaubildchen

Verfasst: 23.03.2012 17:35
von WPö
Moin!

Suche mir bei CSS wiedermal einen Wolf - oder ich steh' einfach nur auf der Leitung.
  • Ich will zahlreiche <div>s mit Rahmen darstellen, die nach Fensterbreite automatisch umlaufen. Ist erledigt.
  • Darin enthalten sind das Vorschaubildchen und ein Kommentar. Da nun aber bei einer Auflistung von Zillionen Bildchen diese sowohl im Hoch- wie im Querformat vorkommen können (wobei das Seitenverhältnis frei ist und die größte Abmessung 160px beträgt), wird ein Quadrat mit 160px Seitenlänge reserviert. Dieses Bildchen ist anklickbar und führt zu einem Bild im Vollformat (hier wegen evtl. Bandbreitenbeschränkung bei Euch auch nur ein anderes Vorschaubild). Auch dies ist erledigt.
  • Jetzt kommen wir nur noch zur Positionierung des Bildes mit dem umschließenden Anker im <div> der zweiten Ebene, also mit 160x160px Größe. Das Bild im Hochformat wird korrekt zentriert, das im Querformat aber nicht (es sollte auf halber Höhe dargestellt werden). Offenkundig funktioniert das vertical-align: middle; nicht.

Code: Alles auswählen

<!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" xml:lang="de">
 <head>
  <title>Dokumenttitel</title>
  <style type="text/css">
  /*<![CDATA[*/
   div.Bild {width: 160px; height: 216px; margin: 0 5px 5px 0; border: 1px inset #906030; padding: 1px; float: left;}
   div.Bild div {display: inline-block; width: 160px; height: 160px; text-align: center; vertical-align: middle;}
   div.Bild div a {margin: auto; text-decoration: none;}
   div.Bild div a img {max-width: 160px; max-height: 160px; margin: 0; padding: 0;}
   div.Bild p {margin: 0; font-size: 0.7em;}
  /*]]>*/
  </style>
 </head>
 <body>
  <div class="Bild">
   <div><a href="http://xn--wp-gka.de/Gfx/Hibiskus_Vorschau1.jpg"><img src="http://xn--wp-gka.de/Gfx/PY_2012/DSCF0004_Vorschau1.jpg" alt="Paraguays Pflanzenwelt" /></a></div>
   <p><b>Abb. 3: Beispieltext.</b><br />Gr&ouml;&shy;&szlig;e des Bil&shy;des: 3648&times;2736 (2,49 MB)</p>
  </div>
   <div class="Bild">
    <div><a href="http://xn--wp-gka.de/Gfx/Hibiskus_Vorschau1.jpg"><img src="http://xn--wp-gka.de/Gfx/PY_2012/DSCF0013_Vorschau1.jpg" alt="Paraguays Pflanzenwelt" /></a></div>
    <p><b>Abb. 7: Weiterer Text.</b><br />Gr&ouml;&shy;&szlig;e des Bil&shy;des: 2736&times;3648 (2,48 MB)</p>
   </div>
 </body>
</html>
Weiß jemand Rat, wie ich das allein mit CSS hinbekomme, aber nach Möglichkeit auf calc() verzichte? Mit calc() bräuchte ich attr(height), was bei mir aber nicht funktioniert. Ich verwende Opera 11.61 und Firefox 11. Hierauf soll die Lösung zumindest funktionieren. JavaScript ist absolut keine Option! Auch die Positionierung per PHP in den HTML-Quelltext einzufügen, ist keine saubere Sache. Es wird doch wohl eine Lösung in CSS geben?

Gruß - WPö

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Verfasst: 23.03.2012 18:14
von Derren
Mit ner Tabelle klappts. Allerdings musst du cellpadding und cellspacing auf 0 stellen. Und zwar inline, weil es auch dafür kein CSS Äquivalent gibt.

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Verfasst: 23.03.2012 19:03
von WPö
Danke schonmal, Derren!

Leider ist das ja nicht, was ich suche. CSS wurde ja gerade wegen der Unart eingeführt und ausgebaut, die Tabellen für die Gestaltung bedeuten. Einige wenige Spezialfälle werden noch immer nicht mit CSS abgedeckt, aber ich kann mich nicht daran erinnern, daß dies hier der Fall wäre. Selbstverständlich ist mir klar, daß es mit einer Tabelle klappen würde, aber ich möchte bei CSS bleiben. Es wird doch eine Möglichkeit geben, dieses vertical-align zum Laufen zu bewegen?

Gruß - WPö

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Verfasst: 23.03.2012 19:15
von Derren

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Verfasst: 23.03.2012 19:27
von WPö
Ha! Habe jetzt ebenfalls eine Lösung gefunden, die der Deinen gleichkommt, bin aber 5 Minuten zu spät. Danke vielmals, Derren! Mit vertical-align darf sich das W3C nochmals 'was ausdenken, daß man nicht display: table-cell; nutzen muß. So ein Vorgehen halte ich für eine Zweckentfremdung. Aber gut, es funktioniert erstmal.

Gruß - WPö

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Verfasst: 24.03.2012 11:42
von PMV
vertical-align ist für Inline-Elemente gedacht zum Ausrichten
anhand der Basislinie. Wenn du das umrahmende DIV weg lassen
würdest kämst du der Sache zumindest näher. So ist
vertical-align in in der klassischen Bedeutung nicht für dich von
Bedeutung. display: table-cell mag zwar nach nem "hack" klingen,
ist aber so gewollt und im Standard integriert ... zudem die
einfachste mir bekannte Lösung mit normalen CSS.

MFG PMV