Neu 60/40 Grid aus foreach Schleife?

Groundhog

Sehr aktives Mitglied
11. Januar 2011
439
54
Austria
Hallo mal wieder,


Ich möchte in der News Overview ein unregelmäßiges Grid erzeugen. Dabei sollen sich 60% / 40% Boxen, mit 40% / 60% Boxen Reihenweise abwechseln. Die einzelnen News Vorschauen kommen aus einer foreach Schleife aus blogs/overview.tpl.


Kann ich ohne Javascript und CSS irgendwie so ein abwechselndes 60/40er Raster erzeugen?
Mit Css sollte es ja nicht das Problem sein (nth-child mit prozentueller width sollte ja gehen), ebenso könnte man ja auch die Klassen mittels JS austauschen....(remove/addClass). Gehts aber auch anders?
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.706
2.733
Berlin
Firma
css-umsetzung
  • Gefällt mir
Reaktionen: Groundhog

Groundhog

Sehr aktives Mitglied
11. Januar 2011
439
54
Austria
@css-umsetzung Du bist der Hammer!

Mal davon abgesehen dass ich ein komplettes Smarty Lulu bin, funktioniert das mit {cycle} bereits super. Ich bekomme jetzt pro Beitrag eine andere Klasse....aber, wie dreh ich das um....

Ziel ist folgendes: 60/40/40/60/60/40
Aktuell hab ich : 40/60/40/60/40/60

Somit müsste nach der 2ten Ausgabe nicht direkt widerholt, sondern 1 mal übersprungen werden..

EDIT: Vergiss es...Ich Trottel...hab {cycle} einfach 4 Werte gegeben...nicht nur 2...jetzt läufts 😀
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Hallo,
du musst einfach für die erste Box {cycle name="left" values="40,60"} und für die Zweite {cycle name="right" values="60,40"} verwenden.
 

Groundhog

Sehr aktives Mitglied
11. Januar 2011
439
54
Austria
Mein aktueller Code sieht so aus:

PHP:
{foreach name=uebersicht from=$oNewsUebersicht_arr item=oNewsUebersicht}
    <div class="blogbox {cycle values="col-md-7,col-md-5,col-md-5,col-md-7"}"  itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
...
{/foreach}

Ist das so korrekt?
 

Groundhog

Sehr aktives Mitglied
11. Januar 2011
439
54
Austria
Hallo,
du musst einfach für die erste Box {cycle name="left" values="40,60"} und für die Zweite {cycle name="right" values="60,40"} verwenden.

Zeilen gibt es ja eigentlich eine da sich die Blogbeitragsvorschauen ja nicht über Zeilen anordnen, sondern nur über die Spalten. Die Zeilen entstehen ja gezwungenermaßen. Die beabsichtigte Zeile (<div class=".row"></div>) muss ja vor die foreach Schleife, sonst wird ja pro Item eine Row erzeugt.
 

Ähnliche Themen