一、表格基础样式
表格是网页常用的展示数据的方式,优化表格的样式可以提升用户体验,以下是我们常用的基础样式。
table { border-collapse: collapse; width: 100%; } thead { background-color: #f1f1f1; } th, td { text-align: left; padding: 8px; } tr:nth-child(even) { background-color: #f2f2f2; } th { background-color: #4CAF50; color: white; }
我们可以利用border-collapse属性将单元格边框合并,这样可以使表格看起来更为整洁。使用width: 100%;属性使表格宽度占满整个父元素。通过thead元素的background-color属性让表格表头区域的颜色有所区别。使用text-align属性确定单元格中文本的对齐方式,padding属性增加单元格内部与边框的间距,background-color属性增加斑马线样式。最后,th元素通过background-color属性定义表头单元格的背景色和color属性定义字体颜色。
二、表格样式优化
1.增加斑马线颜色的对比度
默认情况下,斑马线的颜色与单元格填充颜色相同,因此可能难以识别。为了提高可读性,应该增加斑马线颜色的对比度。下面是实现这种效果的 CSS 代码:
table { border-collapse: collapse; width: 100%; } tr:nth-child(even) { background-color: #f2f2f2; } tr:nth-child(odd) { background-color: #fff; }
这种方法是使用不同的背景颜色来区分相邻的行。
2.固定表头和列
当表格超出屏幕时,用户必须滚动才能看到全部内容。这种情况下,表头和列标注可能会离开视图,变得难以识别。要解决这个问题,可以使用CSS的position:fixed属性。
table { width: 100%; } thead { position: fixed; } tbody tr td:first-child { position: sticky; left: 0; z-index: 1; background: #fff; border-right: 1px solid #ddd; } tbody tr td { border-bottom: 1px solid #ddd; }
这些CSS规则将表头设置为固定,这样即使您使用滚动条滚动页面,表头也会保持在视图的顶部。同时,使用position:sticky属性让标签栏也跟随表头一起固定,left:0和z-index:1的值则用于确定要固定的列在表格中的位置。background和border-right属性则用于渲染背景色和右边框。
3.隐藏边框和表格线
有时,人们想要实现更加简洁的表格样式,这时候去掉边框和表格线就是一个不错的选择。
table { border: none; width: 100%; border-collapse: collapse; } td { padding: 5px; vertical-align: top; } td:not(:last-child) { border-right: 1px solid #ccc; }
这些CSS规则会删除表格周围的边框,内部单元格也使用“无边框”的样式,同时使用border-right属性增加了单元格之间的线条。
三、通过JS实现表格样式
有时候,样式优化超出了CSS的能力范围,就需要使用JavaScript修改HTML文档来实现。以下是一些实现方法:
1.固定表头
(function () { var table = document.querySelector('table'); var tableHead = table.querySelector('thead'); var tableBody = table.querySelector('tbody'); tableHead.style.position = 'fixed'; tableHead.style.zIndex = 10; tableHead.style.backgroundColor = '#fff'; tableHead.style.top = 0; var ths = table.querySelectorAll('th'); var trs = tableBody.querySelectorAll('tr'); for(var i=0; i<trs.length; i++) { trs[i].querySelector('td:first-child').style.position = 'sticky'; trs[i].querySelector('td:first-child').style.left = 0; trs[i].querySelector('td:first-child').style.background = '#fff'; trs[i].querySelector('td:first-child').style.zIndex = 1; trs[i].querySelector('td:first-child').style.borderRight = '1px solid #ddd'; } })();
这段JS代码选中了HTML文档中的table标签,然后找到其thead和tbody元素。使用style属性将表头固定在页面顶部,然后使用循环遍历表格的每一行,并将第一个单元格(即列标注)固定到表格的左侧。
2.调整表格宽度
(function() { var ths = document.querySelectorAll('th'); var trs = document.querySelectorAll('tr'); var tds = document.querySelectorAll('td'); var widths = []; for (let i = 0; i < trs.length; i++) { var row = trs[i]; for (let j = 0; j widths[j]) { widths[j] = cell.clientWidth; } } } for (let i = 0; i < ths.length; i++) { var th = ths[i]; th.style.width = `${widths[i]}px`; } for (let i = 0; i < trs.length; i++) { var tds = trs[i].querySelectorAll('td'); for (let j = 0; j < tds.length; j++) { var td = tds[j]; td.style.width = `${widths[j]}px`; } } })();
这段JS代码处理表格宽度,遍历了HTML文档中的所有表格行和单元格。通过clientWidth属性确定了每个单元格的宽度,然后将宽度赋值给列标签和每个表格单元格。这样表格看起来就更舒适和整洁。
四、总结
通过上述技巧,可以大幅优化网页中表格的样式,提升页面的用户体验。正确的表格样式可以吸引用户的视线,帮助用户更快更好地了解数据,而无论是通过CSS还是JavaScript,优化表格样式都是十分容易的。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/237718.html