Bir foreach döngü içinde son satır için bir sınıf ekleme

2 Cevap

, Tüm HI

Bu kod mükemmel CSS ile her liste öğesinin altındaki sınırları ile tüm 5 sonuç baskı çalışır.

Ancak orada gibi son öğe kimliği hiçbir sınır olması. Nasıl son yineleme liste öğesine bir sınıf ekleyebilirsiniz?

<?php list($parent) = split('/', $this->url); ?>
<?php  $last_articles = $this->find('/news')->children(array('limit'=>5, 'order'=>'page.created_on DESC')); ?>
<ul id="latest-news">
<?php foreach ($last_articles as $article): ?>
<li>
<?php echo '<h3>'.$article->link($article->title()).'</h3>'; ?>
<?php echo strip_tags(substr($article->content(),0,100)).'...'; ?>
</li>
<?php endforeach; ?>
</ul>

Yardımlarınız için teşekkürler.

2 Cevap

<?php list($parent) = split('/', $this->url); ?>
<?php  $last_articles = $this->find('/news')->children(array('limit'=>5, 'order'=>'page.created_on DESC')); ?>
<ul id="latest-news">
<?php $count = count($last_articles); $num = 0; ?>
<?php foreach ($last_articles as $article): ?>
<li <?php if($num == $count-1){ ?> class="last-item" <?php } ?>>
<?php echo '<h3>'.$article->link($article->title()).'</h3>'; ?>
<?php echo strip_tags(substr($article->content(),0,100)).'...'; ?>
</li>
<?php $num++ ?>
<?php endforeach; ?>
</ul>

BTW, bu işlenen son öğeye sınıf "son öğe" ekler.

Ve evet, bu yüzden onun okunabilir kodunuzu yeniden gerekir.

: Sen :last-child CSS değiştirici kullanabilirsiniz

ul.latest-news:last-child { border-bottom: none; }

Ama bunu yapmak üzereyiz şekilde muhtemelen en açık .last sınıf olduğunu ekleyerek, (henüz) yani yaygın olarak desteklenen değil.