Das Media Object, eine Menge von Wegen

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Das Medienobjekt-Muster ist: Bild-Dingens links, Überschrift und Text rechts.

Das hat Nicole Sullivan es genannt und der Name blieb. Es ist ein ziemlich einfaches Muster, aber wie bei allen Dingen im Webdesign kann es auf viele Arten umgesetzt werden.

Die Version von Bootstrap, die in v3 das Tabellenlayout und in v4 Flexbox verwendet.

Lassen Sie uns einige dieser Wege ausprobieren. In diesen Demos konzentriere ich mich nicht besonders auf Benennungskonventionen, Semantik oder Browserunterstützung. Nur Möglichkeiten.

Mit Floats

Sicherlich könnten wir das Bild links flottieren!

Siehe den Pen Media Block #1 von Chris Coyier (@chriscoyier) auf CodePen.

Aber nur zu flottieren bedeutet, dass es zu einem Zeilenumbruch kommt. Ein Zeilenumbruch kann völlig in Ordnung sein, oder Sie möchten ihn vielleicht nicht.

Ich würde sagen, im typischen Media-Object-Muster gibt es keinen Zeilenumbruch.

Um das zu beheben, könnten wir sicherstellen, dass der gesamte Text in einem Element umschlossen ist, und dann sicherstellen, dass dieses Element einen left-padding hat, der der Breite des Bildes und jeglichem Leerraum dazwischen entspricht.

Siehe den Pen Media Block #2 von Chris Coyier (@chriscoyier) auf CodePen.

Oder Sie könnten *beide Seiten* flottieren

Siehe den Pen Media Block #3 von Chris Coyier (@chriscoyier) auf CodePen.

Mit Flexbox

Flexbox macht da schnell kurzen Prozess!

Siehe den Pen Media Block #4 von Chris Coyier (@chriscoyier) auf CodePen.

Beachten Sie, dass wir dem <img> erlauben, ein Flex-Item zu werden. Wir haben align-items: flex-start; verwendet, um sicherzustellen, dass es sich nicht auf die gleiche Höhe wie der Text dehnt.

Mit Tabellen

Das Media-Objekt könnte eine zweizellige Zeile einer Tabelle sein

Siehe den Pen Media Block #5 von Chris Coyier (@chriscoyier) auf CodePen.

Wenn Sie Nicht-<table>-Markup beibehalten möchten, ist es immer noch möglich, es sich wie eine Tabelle verhalten zu lassen, über display: table;

Siehe den Pen Media Block #6 von Chris Coyier (@chriscoyier) auf CodePen.

Mit Grid

Grid-Layout ermöglicht es uns, eine Reihe von Spalten zu definieren. Es ist ziemlich einfach, die erste Spalte auf die gewünschte feste Breite einzustellen und die zweite Spalte den Rest des Platzes einnehmen zu lassen.

Siehe den Pen Media Block #7 von Chris Coyier (@chriscoyier) auf CodePen.

Wie bei Flexbox können wir verhindern, dass das Bild sich selbst dehnt, indem wir es mit align-self: start; oben ausrichten.


Ich bin sicher, ihr könnt noch ein Dutzend weitere Wege finden, es zu tun!