Bootstrap Column Anordnung ändern (mobile)?
Hallo liebe Community,
ich arbeite gerade an einem Webshop und erstelle die Startseite selbst mit HTML und CSS und dem Bootstrap Grid Layout. Nun habe ich Bilder und Texte welche auf dem Desktop jeweils abwechselnd und untereinander kommen.
Also jeweils Bild und Text in einer "row" und dann entweder der Text oder das Bild als erstes. So ergibt sich in der Reihenfolge: Text-Bild, Bild-Text.
Für die Desktopansicht ist das auch genau so gewünscht, allerdings hätte ich gerne wenn die Columns beim Smartphone untereinander rutschen, dass nicht zwei Bilder nacheinander kommen, sondern: Text-Bild, Text-Bild.
Wie lässt sich das realisieren?
Hier mal ein bisschen Code, sehr reduziert.
Doppelter Content und ein/ausblenden über "hidden" ist für mich nicht möglich aus SEO-Gründen.
Danke :)
<div class="container">
<div class="row">
<div class="col-lg-9">
<h3>Überschrift</h3>
<p>Lorem ipsum dolor.</p>
</div>
<div class="col-lg-3">
<img src="img/platzhalter.jpg">
</div>
</div>
<div class="row">
<div class="col-lg-3">
<img src="img/platzhalter.jpg">
</div>
<div class="col-lg-9">
<h3>Überschrift</h3>
<p>Lorem ipsum dolor sit.</p>
</div>
</div>
</div>
3 Antworten
Einfach mal in die Doku schauen. Mit "Push" und "Pull" kannst Du die Positionen ändern.
Dankeschön, habe mir das in der Doku gerade angeschaut und ausprobiert, hat so aber leider nicht funktioniert und ich weiß nicht was ich falsch mache. Kannst du mir evtl. sagen wie der Code, denn aussehen müsste?
Da Bootstrap für row das Flexbox-Layout verwendet, könntest du mit flex-direction die Reihenfolge der Boxen beeinflussen. Dies sollte natürlich nur für SmartPhone-Breiten gelten und nur für jedes zweite Element. Von seitens Bootstrap wird da aber vermutlich nichts diesbezüglich angeboten.
Du solltest also einen eigenen Selektor ergänzen. Dieser könnte so aussehen:
@media only screen and (max-width: 480px) {
.teaser-list > .row:nth-child(even) {
flex-direction: row-reverse;
}
}
Ob die Breite des definierten Breakpoints so für dich passend ist, müsstest du selbst noch einmal prüfen.
Dem Container wird schlussendlich noch die Klasse teaser-list zugeordnet.
<div class="container teaser-list">
Du kannst auch die Klasse col-xs-12 für Handy noch dem class attribut hinzufügen.
Ja genau, das war eh der Plan. Nur wenn ich dann alle meine Columns mit col-xs-12 untereinander habe auf dem Handy, wie bestimme ich dann, dass sich die Reihenfolge der Inhalte ändert?