利用CSS选择器nth-child实现隔行设置不同样式

利用CSS选择器nth-child实现隔行设置不同样式 经验总结 第1张

奇葩老板就会有奇葩需求,他要求像上图一样,每两行用一条横线隔开,但这是循环出来的呀,怎么才能每隔一行选中5个呢?

可以用 CSS 选择器 nth-child 来实现:

nth-child 有不少扩展应用,比如:

nth-child(odd) 匹配奇数个(1、3、5)。

nth-child(odd) 匹配偶数个(2、4、6)。

nth-child(3n) 匹配3的倍数个(3、6、9)。

nth-child(3n+1) 匹配3的倍数加1个(1、4、7、10)。

利用CSS选择器nth-child实现隔行设置不同样式 经验总结 第2张

我们就可以利用上面的方法,实现每隔2行,加一条下边框,实现横线隔开的效果了。

HTML代码:

<ul class="icon">
    <li><span>W</span></li>
    <li><span>3</span></li>
    <li><span>H</span></li>
    <li><span>5</span></li>
    <li><span>.</span></li>
    <li><span>前</span></li>
    <li><span>端</span></li>
    <li><span>资</span></li>
    <li><span>源</span></li>
    <li><span>网</span></li>
    <li><span>欢</span></li>
    <li><span>迎</span></li>
    <li><span>您</span></li>
    <li><span>!</span></li>
    <li><span>!</span></li>
    <li><span>有</span></li>
    <li><span>你</span></li>
    <li><span>,</span></li>
    <li><span>真</span></li>
    <li><span>好</span></li>
</ul>

CSS:

*{
    margin: 0;
    padding: 0;
}
ul,li{
    list-style: none;
}
.icon{
    display: flex;
    flex-wrap: wrap;
    width: 350px;
    justify-content: space-between;
    margin: 20px auto;
}
.icon>li>span{
    display: inline-block;
    width: 50px;
    height: 50px;
    line-height: 50px;
    margin: 10px;
    border-radius: 50%;
    background: #0a94ff;
    text-align: center;
    font-size: 22px;
    color: #FFF;
}
.icon>li:nth-child(10n-0),.icon>li:nth-child(10n-1),.icon>li:nth-child(10n-2),.icon>li:nth-child(10n-3),.icon>li:nth-child(10n-4){
    border-bottom: 1px solid #ccc;
}

主要是通过 .icon>li:nth-child(10n-0),.icon>li:nth-child(10n-1),.icon>li:nth-child(10n-2),.icon>li:nth-child(10n-3),.icon>li:nth-child(10n-4) 选中第 678910 个,设置下边框。


推荐阅读:

CSS3中元素背景的 gradient 渐变属性

阿里巴巴矢量图标库 iconfont 的使用方法

Linux下导入SQL文件及MySQL常用命令

Linux下如何重置MySQL密码

WDLinux故障 Linux系统网站数据备份笔记

赞 (2)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)