每4行改变一次css

时间:2011-07-31 07:33:58

标签: php javascript sql css

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

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

但其余部分应该正常显示:

<div></div>

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

SELECT LEN(column_name) FROM table_name

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

9 个答案:

答案 0 :(得分:4)

使用css like

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

答案 1 :(得分:4)

<div<?php echo $i % 4 == 0 ? ' class="last"' : '' ?>>...</div>

使用%得到除法余数,如果它等于零,那么它恰好是第四个div,我们需要用类打印它,否则什么都不打印。

答案 2 :(得分:3)

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

答案 3 :(得分:3)

<?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>";
?>

答案 4 :(得分:2)

qustion是荒谬的我不知道你为什么要在db中设置你的css风格..这样做不合逻辑你会不必要地增加查询的复杂性。

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

答案 5 :(得分:0)

您可以在CSS中使用nth-child伪选择器:http://www.w3.org/TR/css3-selectors/#nth-child-pseudo

目前,浏览器支持非常受限。所以我不推荐它。

你可以使用:nth-​​child()选择器和JQuery:http://api.jquery.com/nth-child-selector/ 或者你可以编写自己的Javascript,这也很简单。

或者,您可以在后端替换颜色(模板引擎,PHP,ASP等)。

从数据库中执行它只是奇怪而错误的地方:)

答案 6 :(得分:0)

这样的事情:

<?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>";
?>

答案 7 :(得分:0)

不要使用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++;
  }

答案 8 :(得分:0)

这就是 Bootstrap 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