<div>
und <span>
<div>
-Elemente. Ich habe ihnen eine beige Hintergrundfarbe
(background-color
) und
eine graue Umrandung (border
) gegeben und festgelegt, dass um jedes
<div>
-Element
etwas Spielraum (margin
) bleibt. Dieser Spielraum hat keine Farbe; er ist transparent.
<div>
-Elemente können nicht von Haus aus nebeneinander stehen.
<div>
-Elementen ist nämlich das display
-Attribut anfangs
auf block
gesetzt. Solche block
-Elemente füllen immer den ganzen verfügbaren
horizontalen Platz aus.
<span>
-Elemente.
Sie nehmen horizontal nur soviel Platz ein, wie sie brauchen.
Ich habe ihnen die Hintergrundfarbe lightpink
gegeben. Auch ihnen haben ich einen
margin
gegeben. Von Haus aus haben sie keinen,
und dann würden Sie die Lücken zwischen ihnen nicht sehen.
Jetzt tun Sie's aber.
display:inline-block
Dies ist auch ein solches <div>
-Element. Es ist ein block
-Element und hat
daher
maximale horizontale Ausdehnung (bzw. maximal bis auf den definierten margin
, den man als
weißen Rand rundherum sieht).
Und warum kann es mehrere Zeilen haben?
Die orangenen Elemente sind zwar auch <div>
-Elemente, allerdings habe ich
bei ihnen erstens die Hintergrundfarbe auf bisque
(ein blasses Orange-Pink)
und zweitens ihr display
-Attribut auf inline-block
gesetzt. Und somit
Sie können nur nebeneinander stehen, weil Ihr display
-Attribut den Wert
inline-block
hat.
Und jetzt alles noch einmal. Was mich stört, ist, dass die Oberkanten von Element 1 und 2 nicht abschließen. Wie erreiche ich das?
Das zweite steht daneben.
Es besteht aus mehreren Zeilen.
Die Oberkanten der orangenen Elemente schließen ab, weil ich ihr vertical-align
-Attribut auf top
gesetzt habe.
Natürlich kann ich auch drei Elemente nebeneinander stellen.
style="vertical-align:top"
gegeben habe.
Eigentlich hätte ich das mit CSS machen sollen, also
<div class="stick-to-top">
und dann im CSS
.stick-to-top {vertical-align:top;}
style="vertical-align:bottom"
gegeben habe.
Es geht von ganz oben bis danz unten. Sehen Sie aber, dass es dennoch nicht mehr horizontalen Platz
einnimmt.
Ich habe ihm eine feste Breite zugewiesen: ich habe sein width
-Attribut auf
29%
gesetzt.
Warum 29%
? Naja, weil drei davon reinpassen müssen, und 3*29 = 87, was noch genügend Platz
für den Spielraum rundherum lässt, bevor alles auf 100% kommt.
<div>
.
<div>
-Elemente das display
-Attribut
nicht geändert, also steht es immer noch auf dem Anfangswert block
, und sie
füllen die gesamte (in Ihrem Eltern-Element verfügbare) Breite aus.
Generell: passen Sie bei diesen Raumaufteilungen auf, dass Sie (inklusive Spielraum) etc. nicht über 100% kommen. Denn dann rutscht eines doch wieder in die nächste Zeile, was eventuell schlecht aussieht.
width:30%
.Unter-Elemente müssen natürlich nicht die gleiche Breite haben.
Dieses ist breiter.
width
-Attribut keinen Wert hinzugefügt habe. Sie
sind jetzt so groß, wie
es der Text erfordert. Stoßen sie, zusammen mit Ihrem margin
und dem padding
Ihres Eltern-Elements
allerdings an die Grenzen Ihres Eltern-Elements, dann fügt der Browser automatisch Zeilenumbrüche ein.
Ich, der hier den Text geschrieben habe, muss mir über Zeilenumbrüche keine Gedanken machen.