【问题标题】:While / For Loop for alternating CSS class? [duplicate]While / For Loop 用于交替的 CSS 类? [复制]
【发布时间】:2013-10-20 21:45:48
【问题描述】:

我写了一个简单的while循环:

while($fetch = $stm->fetchAll()) {
    echo '<tr class=""'>;
    echo '<td>' . $fetch['name'] . '</td>';
    echo '</tr>';
}

我怎样才能让 class="" 每次交替,以便每隔一行是白色的,每隔一行是灰色的?我已经有了 CSS 类“greyRow”,但不知道如何合理地使用它来使它们在 PHP 中交替出现。

我假设我需要一个 for 循环,但我如何将它用于我想要做的事情?

谢谢。

【问题讨论】:

    标签: php css


    【解决方案1】:

    一个简单的方法是实现一个变量来“计数”

    $odd_row = 1;
    while($fetch = $stm->fetchAll()) {
        if ($odd_row == 0) 
            echo '<tr>';
        else
            echo '<tr class="greyRow">';
        echo '<td>' . $fetch['name'] . '</td>';
        echo '</tr>';
        $odd_row = !$odd_row;
    }
    

    但有更好的方法,严格使用 CSS。

    Using CSS :even and :odd pseudo-classes with list items

    【讨论】:

      【解决方案2】:

      如果$counter % 2 == 0(或!($counter % 2))您位于偶数行,您可以使用计数器变量。不然很奇怪。

      $counter = 1;
      while($fetch = $stm->fetchAll()) {
          echo '<tr class="', (!($counter % 2) ? 'even' : 'odd'), '">';
          echo '<td>' . $fetch['name'] . '</td>';
          echo '</tr>';
          $counter++;
      }
      

      您也可以尝试使用nth-child CSS 选择器,完全避免在 PHP 中这样做。但是,它不是跨浏览器。如果需要支持 IE

      例子:

      #your-table tr:nth-child(odd) {
         // style odd rows differently
      }
      

      【讨论】:

        【解决方案3】:

        这是我的方法:

        while($fetch = $stm->fetchAll()) {
        
          if( !isset( $row_num ) ) $row_num = 1; // at first $row_num does not exist so create it and make uneven (start with 1)
          $row_class = (++$row_num % 2) ? 'even' : 'odd'; // then check whether $row_num is odd or even and assign it the corresponding class name
        
          echo '<tr class="'.$row_class.'">';
          echo '<td>' . $fetch['name'] . '</td>';
          echo '</tr>';
        }
        

        【讨论】:

          猜你喜欢
          • 2014-01-11
          • 2015-07-06
          • 2021-12-24
          • 2021-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-24
          • 1970-01-01
          相关资源
          最近更新 更多