【问题标题】:change css for every 4th row每第四行更改一次css
【发布时间】:2011-10-16 19:39:07
【问题描述】:

我想用不同的 CSS 显示从数据库中抓取的每 4 行:

<div class="last"></div>

但其余的应该正常显示:

<div></div>

我正在使用简单的查询从数据库中获取数据:

SELECT LEN(column_name) FROM table_name

我看到了这种类型的东西,但我不记得如何正确地做到这一点。有什么想法吗?

【问题讨论】:

  • 请发布您正在使用的 PHP 代码。
  • 添加了 CSS 和 Javascript 标记,因为它们(连同 php)是将类动态应用到数据表的最佳选择。

标签: php javascript sql css


【解决方案1】:

这就是引导does it

.table-striped tbody tr:nth-child(odd) {  
    background-color: rgba(0, 0, 0, 0.05);
} 

因此您可以创建自己的类并将odd 替换为4n

.table-striped-4th tbody tr:nth-child(4n) {  
    background-color: rgba(0, 0, 0, 0.05);
} 

https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child

【讨论】:

    【解决方案2】:
    <?php 
        $query = "SELECT LEN(column_name) FROM table_name";
        $result = mysql_query($query);
        $i = 1;
        echo  "<table>";
        while ($row = mysql_fetch_assoc($result)) {
            echo  "<tr><td>";
            echo  "<p";
            if ($i % 4 == 0) print " class='stripe'";
           echo  ">" . $row['item'] . "</p></td></tr>";
            $i++;
         }
        echo  "</table>";
    ?>
    

    【讨论】:

      【解决方案3】:

      不要用 SQL 查询,用 PHP 做:

        $result = mysql_query("SELECT * FROM table_name");
        $i = 1;    
        while($row = mysql_fetch_array($result))
        {
           $class = ($i % 4 == 0) ? ' last' : '';        
           echo '<div class="'.$class.'"></div>';
           $i++;
        }
      

      【讨论】:

        【解决方案4】:

        类似这样的:

        <?php 
            $query = "SELECT LEN(column_name) FROM table_name";
            $result = mysql_query($query);
            $i = 1;
            print "<table>";
            while ($row = mysql_fetch_assoc($result)) {
                print "<tr><td>";
                print "<p";
                if ($i % 4 == 0) print " class='stripe'";
                print ">" . $row['item'] . "</p></td></tr>";
                $i++;
             }
             print "</table>";
        ?>
        

        【讨论】:

          【解决方案5】:
          <div<?php echo $i % 4 == 0 ? ' class="last"' : '' ?>>...</div>
          

          使用 % 来获得除数余数,如果它等于 0,那么它就是 div 并且我们需要用 class 打印它,否则什么也不打印。

          【讨论】:

            【解决方案6】:

            这不是你应该在 SQL 中做的事情。 PHP 中有一个变量作为一个从 0 开始的计数器,当计数器的 4 的模数为 3 时使用备用类。

            【讨论】:

              【解决方案7】:

              使用 css like

              tr:nth-child(4n) {  
                 background-color:yellow;
              } 
              

              【讨论】:

                【解决方案8】:

                这个问题很荒谬,我不明白你为什么要在数据库中设置你的 css 样式。这样做是不合逻辑的,你会不必要地增加查询的复杂性。

                无论如何,我的建议是在您的 Web 层中执行相同的操作,即一旦您从数据库中检索记录并呈现页面。只需编写将添加 css 类的 sm 逻辑..

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2021-09-09
                  • 2021-10-22
                  • 1970-01-01
                  • 2017-05-18
                  • 1970-01-01
                  • 2015-03-20
                  • 2012-11-05
                  • 1970-01-01
                  相关资源
                  最近更新 更多