先来看一个简单的方法。
在 css 中定义两种样式 .odd{...} 和 .even{...} 分别用于奇数行和偶数行的不同背景颜色。在网页加载后通过 javascript 获取要变色的标签列表,执行如下代码:
// 当文件加载时,执行代码。 window.onload = function() { // 获取<ul id="list" />对象 var list = document.getElementById('list'); // 获取list下面的所有li var items = list.getElementsByTagName('li'); // 遍历items for (var i = 0; i < items.length; i++) { var className = (i % 2 == 0) ? ' odd' : ' even'; items[i].className += className; } }
实现不同行的不同颜色,这样变完全在前端处理,不会与后端的逻辑混淆,是一种比较好的解决方案。
那么这种代码实现起来效果基本上是这样的:
不过,这种方法存在一些问题:
将其代码进行改进并移入到一个单独的函数中去:
/** * 此方法用于列表的隔行变色效果,可以灵活得为指定ID的列表指定隔行的颜色。 * * @param id 列表的id * @param item 要变色的行的标签 * @param odd 奇数行的样式类名,如果不指定,则默认为odd * @param even 偶数行的样式类名,如果不指定,则默认为even * @param start 开始变色的行的索引,如果不指定,则默认为0 * @param end 结束变色的行的索引,如果不指定,则默认为列表长度 */ function rowRender(id, item, odd, even, start, end) { // 获取列表容器 var list = document.getElementById(id); // 获取列表 var items = list.getElementsByTagName(item); // 修正初始位置,如果不是一个数字或者越界,则从0开始 if (isNaN(start) || (start < 0 || start >= items.length)) { start = 0; } // 修正结束位置,如果不是一个数字或者越界,则为列表末尾 if (isNaN(end) || (end < start || end >= items.length)) { end = items.length; } // 如果没有指定odd,则默认为'odd' odd = odd || 'odd'; // 如果没有指定even, 则默认为'even' even = even || 'even'; // 遍历列表并渲染效果 for (var i = start; i < end; i++) { var className = ' ' + ((i % 2 == 0) ? odd : even); items[i].className += className; } }
用法:
window.onload = function() { // 渲梁list1下所有的li标签,使用默认的样式和起始位置 rowRender('list1', 'li'); // 渲梁list2下所有的li标签,使用指定的odd和默认的even,使用指定的起始位置 rowRender('list2', 'li', 'odd1', null, 2, 6); // 渲梁table1下所有的tr标签,使用指定的odd和even,使用默认的起始位置 rowRender('table1', 'tr', 'tr-odd', 'tr-even'); // 渲梁table2下所有的tr标签,使用指定的odd和even,使用指定的起始位置 rowRender('table2', 'tr', 'tr-odd', 'tr-even', 1); }
示例:
Table 1
rowRender('table1', 'tr', 'tr-odd', 'tr-even');
Table 2
rowRender('table1', 'tr', 'tr-odd', 'tr-even', 1);
本文向大家介绍基于JavaScript实现表格隔行换色,包括了基于JavaScript实现表格隔行换色的使用技巧和注意事项,需要的朋友参考一下 表格隔行换色 需求分析 我们商品分类的信息太多,如果每一行都显示同一个颜色的话会让人看的眼花,为了提高用户体验,减少用户看错的情况,需要对表格进行隔行换色 技术分析 table对象 集合 cells[]:返回包含表格中所有单元格的一个数组。 rows[]:
本文向大家介绍javascript实现table表格隔行变色的方法,包括了javascript实现table表格隔行变色的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript实现table表格隔行变色的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。
本文向大家介绍使用css实现悬浮提示文本相关面试题,主要包含被问及使用css实现悬浮提示文本时的应答技巧和注意事项,需要的朋友参考一下
本文向大家介绍Javascript实现Web颜色值转换,包括了Javascript实现Web颜色值转换的使用技巧和注意事项,需要的朋友参考一下 最近一直忙碌于完成业务需求,好长时间没有写博客了。今天稍微有些时间,翻看了一下最近项目中的一些前端代码,看到Web颜色转换功能的时候,突然想到当我们在做一些颜色设置/编辑的需求时,经常会涉及到各种颜色值格式的互换。于是我决定记录一下我在做这一部分功能的时候
我试着用Bulma CSS使这个块图像带有文本。我尝试了很多东西(相对,z-index等),但我没有成功为台式机或移动设备做一些很棒的东西。每一次,文本都被溢出或得到框外。我无法设置标题字符限制,所以如果可能,我也尝试在第二行使用断字。 下面是我正在寻找的示例: 以下是我的HTML: 和当前CSS(不工作): 结果: 有没有一些关于这种事情的提示,或者Bulma的扩展? 谢谢你的帮助!
我有一个列有几个项目的垂直列表。每个项目都是用FlexBox制作的两列布局。左列具有固定的宽度。右列包含任意文本,应占用所有可用空间。 当窗口变窄时,我仍然想要一个两列布局。在这里,第二列应该变小,里面的文本应该换行。 当窗口变得更窄时(第二列的大小与第一列大致相同),我希望第二列移动到第一列的下面。 我只是给第一列一个固定的宽度,并在容器上放置。问题是,当右列中的文本超过一行时,flex-wra