表格隔行换色
效果图
思路分析:
- 准备表格:表头thead与表体tbody
- 绑定事件:加载事件 onload()
- 获取元素:获取表格 document.getElementById()
- 获取行的长度:表体中tr的数量 length()
- 行数遍历:for循环
- 判断奇偶数行:tr的下标余2
- 设置背景颜色:css
步骤分析:
- 定义表格 table thead tbody tr th td
- 定义函数 onload
- 绑定函数
- 获取thead中的tr,设置背景颜色
- 获取tbody中的tr
- 循环遍历,判断奇偶数行
- 分别对奇数行与偶数行设置不同的背景颜色
JS版本:
<script type="text/javascript">
// 加载事件
window.onload = function() {
// 获取表格对象
var tab = document.getElementById("tab");
// 设置表头的背景颜色
tab.children[0].style.backgroundColor = "navajowhite";
// 设置表体中的tr的背景颜色
// 获取表体对象
var trLength = tab.tBodies[0].children.length;
// 对tr的长度进行遍历
for (var i = 0; i < trLength; i++) {
// 判断奇偶数行
if (i % 2 == 0) {
// 偶数行
tab.tBodies[0].children[i].style.backgroundColor = "skyblue";
} else {
// 奇数行
tab.tBodies[0].children[i].style.backgroundColor = "pink";
}
}
}
</script>
jQuery版本:
<script type="text/javascript">
// 获取表头对象,设置tr的背景颜色 (子代或后代选择器)
// 获取表体对象,判断奇数行与偶数行 (奇偶数选择器)
// :odd 选择奇数行
// :even 选择偶数行
// css() 给元素添加具体的样式
$(function(){
// 1.获取表头对象,设置tr的背景颜色 (子代或后代选择器)
$("thead tr").css("background-color","navajowhite");
// 2.获取表体对象,判断奇数行与偶数行 (奇偶数选择器)
$("tbody tr:even").css("background-color","pink");
$("tbody tr:odd").css("background-color","skyblue");
})
</script>
注意事项
-
HTML结构:确保表格的HTML结构正确,包括正确使用
<table>
、<thead>
、<tbody>
、<tr>
和<td>
等标签。 -
CSS选择器:使用CSS选择器来选择要设置背景色的表格行,通常使用
:nth-child
选择器或:nth-of-type
选择器。 -
兼容性:考虑不同浏览器的兼容性,特别是一些老旧浏览器可能不支持某些CSS选择器。
运用知识
-
CSS选择器:使用CSS选择器来选择需要设置背景色的表格行,如
:nth-child(odd)
表示选择奇数行,:nth-child(even)
表示选择偶数行。 -
CSS样式:使用CSS的
background-color
属性来设置背景色。 -
CSS类名:为了方便后续样式的修改和维护,可以使用CSS类名来给表格行设置背景色。
应用场景
数据展示:在展示大量数据的表格中,通过隔行换色可以提高数据的可读性,方便用户查看。
表单列表:在表单列表中,通过隔行换色可以使表格更加美观,突出不同的数据项。
案例优化方案
使用CSS类名:通过给表格行添加CSS类名,可以使样式的修改更加方便,同时也可以减少CSS选择器的使用。
使用CSS变量:使用CSS变量来定义背景色,可以方便地修改和调整颜色。
使用伪元素:使用伪元素来实现隔行换色效果,可以减少DOM操作和对表格行的样式修改。
考虑响应式布局:在移动端或小屏幕设备上,可能需要调整表格的样式和布局,确保隔行换色效果在不同屏幕尺寸下都能正常显示。