Positionierung mit CSS
Die CSS-basierte Positionierung ist wohl die gebräuchlichste. Selbst dynamische Anpassung an vordefinierte Bedingungen sind keine Zauberei mehr, was noch vor Jahren nur JavaSript zu erledigen schien. MSIE bis 8 konnte Anweisungen wie: position: absolute; top:0; bottom: 0; overflow: auto;
für Container nicht umsetzen. Die Höhe entsprach dem Inhalt. Das ist zwar Geschichte, aber nur mit JavaScript war eine einzuhaltende Höhe regulierbar.
Positionierung mit der Funktion calc(Berechnung)
Moderne WebLayouts werden oft so komplex aufgebaut, dass es so scheint, man käme nun an das Ende der Möglichkeiten der CSS-Formatierung. Der Entwurf zur Einführung dieser Funktion stammt bereits aus dem Jahr 2006 (!!!). Aber wie so oft, muss ich erst zufällig darüber stolpern, um überhaupt Kenntnis davon zu erhalten.
calc()
ist es nun möglich Berechnungen mit Prozent und px- oder em-Werten zu kombinieren. Im
Boxmodell wird deutlich, wie padding und margin sich auf die Endgröße auswirken. Elegant wird nun mit der Funktion gegengesteuert.
Anmerkung zu Browserverhalten: Firefox und Safari5 trennen die Schrift im aqua-farbenen Container ordentlich, IE11 nimmt den gesamten Container auf die linke Seite. Opera und Chrome trennen die 2. Zeile mitten durch. ( Hmm??? ) Auch das hat sich inzwischen erledigt. (25. Aug. '16)
Noch ein wenig QuellCode der Stylesheets:
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
.column { width: 856px; left: 0px; margin: 0; position: relative;
|
Mittig zentrieren
Eigentlich isses ´n oller Hut. Dennoch bin ich vor noch nicht allzu langer Zeit gefragt worden.
Von Interessse ist für „innen“ nur das:
top: 50%; height: 120px; margin-top: -60px; padding-top: 10px;
left: 50%; width: 160px; margin-left: -80px;
Alles klar? Na? Eigentlich nicht! Damit „innen“ nicht am oberen Rand anbabbt, ist der innere Abstand nach oben 10px groß. Die Box erhöht sich um 10px auf 130px und hängt tiefer. Das müssen wir wieder ausgleichen. Das ich das in Zeile 98 bis 103 per PHP einrichte, dient nur der Demo.
56 57 58 59 |
.aussenbox{ background-color: yellow; text-align: center; position: relative; z-index: 1;
|
97 98 99 100 101 102 103 |
|
Positionierung mit display: inline-block
Die CSS-Eigenschaft inline-block
kombiniert Eigenschaften von Inline- und Block-Boxen.
Die mit HTML 5 eingeführten Elemente, die einen Zusammenhang von Inhalt und seiner Begrifflichkeit klarer herausstellen, setze ich für ein übliches div
- oder span
-Element nun
und als figure
: kennzeichnet eine Abbildung
ein.figcaption
: Bildbeschreibung
Die Bilder setzen sich nebeneinander solange fort, wie Platz ist. Jede Bildreihe befindet sich in einen section
-Container mit der Klasseneigenschaft, sich nicht an den linken Rand zu quetschen. Diese Eigenschaft geht verlohren, wenn die Breite aller Bilder die zur Verfügung stehende überschreitet. Muss man also abwägen, ob der Container benutzt werden soll - dann immer einen neuen einsetzen oder keiner besser ist.
Und nun gibts die Beschreibung der Eigenschaften:
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#contained figcaption { color: white; } /* Bildtexte weiß */
|
unten ausgerichtet
oben ausgerichtet
Dokument geändert am: 25. Aug. 2016 19:34