CSS与JS实现隔行变色

HTML代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>隔行变色</title>
	</head>
	<link rel="stylesheet" href="css/index.css" />
	<body>
		<ul id="newBox">
			<li>我是第一个li</li>
			<li>我是第二个li</li>
			<li>我是第三个li</li>
			<li>我是第四个li</li>
			<li>我是第五个li</li>
		</ul>
		<script>
			//[context].getElementsByTagName([tagname]):
			//在指定context范围之内,通过标签名获取一组元素(元素集合)
			//集合和数组很相似,也是以数字索引作为属性名,
			//有length属性储存长度,但不是数组,属于"类数组"
			var newsBox = document.getElementById("newBox") ;
			var newsList = newsBox.getElementsByTagName('li') ;
			
			//1.循环所有获取的li,判断每一个;li的奇偶行,让其有不同的背景色
			for(var i = 0 ; i < newsList.length ; i++){
				//第一轮:i=0 操作第一个Li newsList[0]
				//第二轮:i=1 操作第一个Li newsList[1]
				var curLi = newsList[i] ;
				//i = 0(偶数) 第一个LI 奇数行
				//i = 1(奇数) 第二行LI 偶数行
				//=>当前这一行的索引如果是偶数,那么它是奇数行,否则是偶数行
				//偶数判断的标准:能被2整除(除2的余数为0)
				var cc = i % 2 === 0 ?'#FFF':'#DDD' ;
				curLi.style.background = cc;
				
				//2.循环的时候给每个LI都绑定mouseover/mouseout事件
				curLi.onmouseover = function(){
					//this:当前操作的这个LI
					this.style.background = "lightblue" ;
				}
				curLi.onmouseout = function(){
					this.style.background = '#fff' ;
				}
			}
		</script>
	</body>
</html>

CSS代码:

*{
	margin: 0;
	padding: 0;
}
ul{
	list-style: none;
}
#newBox{
	box-sizing: border-box;
	margin: 20px auto;
	padding: 20px;
	width: 300px;
	border: 2px solid lightblue;
}
#newBox li{
	line-height: 60px;
	border-bottom: 1px dashed lightcoral;
	cursor: pointer;
}
/*获取UI倒数第一个*/
#newBox li:nth-last-child(1){
	border-bottom: none;
}
/*基于CSS实现*/
#newBox li:nth-child(even){
	background: lightgray;
}
#newBox li:hover{
	background: lightgreen;
}

效果图: 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值