实现隔行变色的几种方法

752 阅读2分钟
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>

第一种方式

用css的方式实现:先给li设置一个css样式,然后使用css样式中的奇偶数行xxx:nth-child(2n/2n+1)的代码来实现隔行变色

<style>
       ul li {
           width: 400px;
           height: 100px;
           border: 1px solid coral;
           margin: 0 auto;
           list-style: none;
       }

       li:nth-child(2n){
           background: rgb(36, 218, 193);
       }
       li:nth-child(2n+1){
           background: rgb(187, 43, 43)
       }
   
   </style>

第二种方式

第二种我们可以采用js中的方法来设置,种类有很多,一共分为五个小部分。

第一小部分较为复杂,简单来说就是给每一行设置一个背景色,所设计的代码较多。

首先我们设一个变量,获取整个li,拿到一个集合

var olis =document.getElementsByTagName('li')

然后给每一行设置一个不同的颜色 注意索引[]

 olis[0].style.background ='red'
 olis[1].style.background ='orange'
 olis[2].style.background ='yellow'
 olis[3].style.background ='green'
 olis[4].style.background ='skyblue'
 olis[5].style.background ='blue'
 olis[6].style.background ='purple'

之后我们就可以拿到一个彩虹状的隔行变色了

第二小部分我们可以用for循环来做,具体代码如下:

同样的先获取li元素,步骤同上。然后做一个for循环。

var olis =document.getElementsByTagName('li')
for (var i = 0; i < 7; i++)

      olis[i].style.background='skyblue'
      i++
      olis[i].style.background='pink'
      console.log(i)

第三小部分我们可以用判断语句来写,具体代码如下

同样的先获取li元素,步骤同上。然后做一个IF ELSE判断语句。

var olis =document.getElementsByTagName('li')
 console.log(i%2)
     if (i % 2 == 0) {
         olis[i].style.background = 'skyblue'
      } else {
          olis[i].style.background = 'pink'
      }

第四小部分我们可以用三元运算来做,‘?’ ‘:’的方式

`同样的先获取li元素,步骤同上。然后做一个三元运算`
var olis =document.getElementsByTagName('li')
console.log(i%2)
i%2==0?olis[i].style.background='skyblue':olis[i].style.background='pink'}

第五小部分实际上是第四部分的简化版,作用一样,从繁化简

olis[i].style.background =i%2==0 ?'skyblue':'pink'

这就是我总结的几种不同方式的隔行变色的方法!