开发者

how to add big space

      <?php foreach ($rows as $id => $row): ?>
  <li class="<?php print $classes[$id]; ?>"><?php print $row; ?></li>
    <?php endforeach; ?>

the above code is used to output an article list. now i want to add big space after the lines which is the multiple of 10.namely,add a big space (eg:margin-bottom:30px,only to after every 10 bullet points but the space between other li is 15px )after every 10 bullet points. how to change t开发者_如何学JAVAhe above code. then i can use css to get that. –


Although I don't have a clue what you mean by 'big space', I assume you want to place an arbitry HTML tag after every 10th list item. You can do this like so, for example:

 <?php $i = 0; ?>
 <?php foreach ($rows as $id => $row): ?>
     <li class="<?php print $classes[$id]; ?>"><?php print $row; ?></li>
     <?php if ($i++ === 10): ?><br /><?php $i = 0; endif; ?>
 <?php endforeach; ?>

EDIT, you clarified:

no,eg:30px, but the space between other <li> is 20px.

Which can be done like so:

 <?php $i = 1; ?>
 <?php foreach ($rows as $id => $row): ?>
     <?php $i++; ?>
     <li style="margin-bottom:<?php echo ($i === 10) ? : '30' : '20'); ?>px;" class="<?php print $classes[$id]; ?>"><?php print $row; ?></li>
     <?php if ($i === 10) $i = 1; ?>
 <?php endforeach; ?>


The modulus operator (%) is ideal for this:

<?php $i = 0; foreach ( $rows as $id => $row ): ?>
<li style="margin-bottom: <?php echo $i ++ % 10 ? '30' : '20' ?>px;" class="<?php echo $classes[$id] ?>">
    <?php echo $row ?>
</li>
<?php endforeach ?>


As a slight amendment to Aron's code, if you wanted to use CSS to style the <li>:

 <?php $i = 1;
 foreach ($rows as $id => $row):
     if($i === 10){
         $end_class = ' end-class';
         $i = 1;
     } else {
         $end_class = '';
         $i++;
     }
     echo '<li class="' . $classes[$id] . $end_class . '">' . $row . '</li>';
 endforeach;
 ?>

You can then apply the style to .end-class.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜