Mic*_*ael 1 html javascript css html-table css-selectors
我使用CSS设置表格有问题.
所以我的HTML文件中有一个表:
<table class="altrowstable" id="alternatecolor">
<tr>
<th>Info Header 1</th><th>Info Header 2</th><th>Info Header 3</th>
</tr>
<tr>
<td>Text 1A</td><td>Text 1B</td><td>Text 1C</td>
</tr>
<tr>
<td>Text 2A</td><td>Text 2B</td><td>Text 2C</td>
</tr>
<tr>
<td>Text 3A</td><td>Text 3B</td><td>Text 3C</td>
</tr>
<tr>
<td>Text 4A</td><td>Text 4B</td><td>Text 4C</td>
</tr>
<tr>
<td>Text 5A</td><td>Text 5B</td><td>Text 5C</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
这是我的JavaScript文件:
function altRows(id){
if(document.getElementsByTagName){
var table = document.getElementById(id);
var rows = table.getElementsByTagName("tr");
for(i = 0; i < rows.length; i++){
if(i % 2 == 0){
rows[i].className = "evenrowcolor";
}else{
rows[i].className = "oddrowcolor";
}
}
}
}
window.onload=function(){
altRows('alternatecolor');
}
Run Code Online (Sandbox Code Playgroud)
这是我的CSS文件:
table.altrowstable {
font-family: verdana,arial,sans-serif;
font-size:11px;
color:#333333;
border-width: 1px;
border-color: #a9c6c9;
border-collapse: collapse;
}
table.altrowstable th {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
table.altrowstable td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
table.oddrowcolor{
background-color:#d4e3e5;
}
table.evenrowcolor{
background-color:#c3dde0;
}
Run Code Online (Sandbox Code Playgroud)
问题是它不会改变颜色,既不是奇数行,也不是奇数.
我究竟做错了什么?
谢谢.
我会为你提供一个CSS解决方案:
table.class_name tr:nth-child(odd) {
/* Styles */
}
table.class_name tr:nth-child(even) {
/* Styles */
}
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的,尽管它在IE 8及更早版本中不受支持.
对于表格标题,您可以简单地使用不同的选择器来覆盖背景样式
table.altrowstable tr th {
background: #fff;
}
Run Code Online (Sandbox Code Playgroud)