[CSS] Exakt mittige Darstellung von Vorschaubildchen

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

[CSS] Exakt mittige Darstellung von Vorschaubildchen

Beitrag 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ö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Beitrag 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.
Signatur und so
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Beitrag 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ö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Beitrag 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ö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: [CSS] Exakt mittige Darstellung von Vorschaubildchen

Beitrag 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
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten