我使用的表与交替行颜色与此。
t.d. d0 t.d.
background-color: # CC9999;
颜色:黑;
的
tr.d1 td
background-color: # 9999CC;
颜色:黑;
的
< table >
< tr =“d0级>
一号< td > < / td >
一号< td > < / td >
< / tr >
< tr课=“d1”>
二< td > < / td >
二< td > < / td >
< / tr >
- < table >
在这里,我将class用于tr,但我只想用于table。当我使用类表比这适用于tr替代。
我可以写我的HTML像这样使用CSS吗?
<table class="alternate_color">
<tr><td>One</td><td>one</td></tr>
<tr><td>Two</td><td>two</td></tr>
</table>
我如何能使行有“斑马条纹”使用CSS?
交替行选择器
以下是它的工作原理,以及如何使用模来在不同颜色的行之间交替(这里是3):
ol >李:nth-child (3 n + 1) {
背景颜色:蓝色;
}
ol >李:nth-child (3 n + 2) {
背景颜色:绿色;
}
/*下面的选择器等价于"n -child(3n)"* /
ol >李:nth-child (3 n + 3) {
背景颜色:红色;
}
< ol >
<李/ >
<李/ >
<李/ >
<李/ >
<李/ >
<李/ >
<李/ >
<李/ >
<李/ >
< / ol >
如前所述,选择器中使用的行索引从1开始(而不是0),这就是为什么第1、4、7行的选择器是第n -child(3n+1)。
选择器如何读取
对于索引i的行,选择器n -child(Mn+k)读起来就像(i % M == k)。例如,如果我们想选择所有以3为底取模等于2的行,我们可以在CSS中写n -child(3n+2),换句话说,选择器是这样做的:
const M = 3;
const k = 2;
for (let i = 1; i < 10; i+=1){
// The `nth-child(Mn+k)` selector:
if (i % M == k){
console.log(`${i} selected`);
}
}
输出
2 selected
5 selected
8 selected
在PHP中有一个相当简单的方法来做到这一点,如果我理解您的查询,我假设您在PHP中编码,您正在使用CSS和javascript来增强输出。
来自数据库的动态输出将携带一个for循环来遍历结果,然后将结果加载到表中。只需要像这样添加一个函数调用:
echo "<tr style=".getbgc($i).">"; //this calls the function based on the iteration of the for loop.
然后将函数添加到页面或库文件中:
function getbgc($trcount)
{
$blue="\"background-color: #EEFAF6;\"";
$green="\"background-color: #D4F7EB;\"";
$odd=$trcount%2;
if($odd==1){return $blue;}
else{return $green;}
}
现在,这将在每个新生成的表行中动态地在颜色之间交替。
这比在所有浏览器上都不能工作的CSS要容易得多。
希望这能有所帮助。