Drei mögliche Lösungen, obwohl jeder seine eigenen Vorbehalte hat.
jsFiddle demo
Die erste Lösung basiert auf line-height: 220px; vertical-align: bottom;
den Text mit dem Boden der DIV
auszurichten. Die zweite Lösung erstellt ein :before
psuedo-Element, das den Text an den unteren Rand des DIV
(das erfordert kein zusätzliches Markup) schiebt. Beide Lösungen in IE7 oder früher scheitern, und beide werden Probleme haben, wenn:
- Die Schriftgröße ändert
- Der Text auf eine zweite Zeile umbrochen
- Die Größe des umschließenden Elements ändert
Die dritte Lösung basiert auf der Eigenschaft display: box;
, bei der es sich um eine CSS-Eigenschaft handelt, die ausläuft (mehr Details unter Quick Hits With the Flexible Box Model). Diese Lösung wird nur von Chrome seit v4, Firefox seit v2 und IE10 beta unterstützt. Ein neuer Flexbox-Standard wurde zwar standardisiert, die Browserunterstützung ist jedoch minimal. Diese Lösung könnte als "zu neu" angesehen werden, um effektiv verwendet zu werden (html5please.com/#flexbox).
Im Allgemeinen sollten Sie ein neues Verpackungselement um Ihren Text herum betrachten, das es ermöglicht, das Element position: absolute; bottom: 0;
unten auf dem übergeordneten Element zu kaschieren. Dies hat den Vorteil, dass das untergeordnete Element nach oben wächst, wenn die Schriftgröße oder Textlänge zunimmt, und unabhängig von den Abmessungen des übergeordneten Containers ist. Abhängig davon, wie wichtig Ihre Positionierung für Ihr Layout ist, können Sie dieses neue Element mit Javascript hinzufügen.Dies ist wahrscheinlich nicht ideal für die Frage, die Sie gestellt haben, aber Browser-Unterstützung ist nicht weniger als ideal für die verrückten CSS-Lösungen, die ich oben aufgeführt habe: -p
Vielen Dank für Die extrem detaillierte Antwort Es scheint, als würde ich die Wrap-Methode auswählen, da sie für mich die solideste ist Allerdings ist ein weiteres Problem, das ich habe, dass ich nicht in der Lage bin, wenn ich die Wrap-Methode verwende Zum Zentrieren des nach unten gesendeten Texts Der Wrapper verfügt bereits über text-align: centre on it .. – Mia
Wenn Sie den Wrapper absolut innerhalb des übergeordneten Elements positionieren, stellen Sie sicher, dass er 100% der Breite des übergeordneten Elements hat. Entweder "width: 100%;" oder "left: 0; right: 0;" erreicht diesen Effekt. Ohne Angabe von Dimensionen auf einem absolut positionierten Element wird das Element versuchen, die kleinsten möglichen Dimensionen zu werden : Mitte r; 'richtet es auf diese schmale Breite statt auf die Breite des Elternelements aus. Wenn Sie sich den Wrapper im DOM-Inspektor Ihres Browsers ansehen, erhalten Sie eine bessere Vorstellung davon, was gerade passiert: -p – thirdender
Hier ist die problematische Situation http://jsfiddle.net/ZUX2n/ – Mia