css - 用一些背景颜色突出显示每隔 li 行
问题描述
我想尝试更改每隔 li 行的背景颜色,例如具有标题的 ul 的背景颜色。第一行应该有默认颜色,然后第二行应该有自定义颜色,依此类推。
我尝试将 nth-of-child(even) 设置为 li 但它没有按预期工作,因为它计算的是单个 li 元素而不是整行
.widthh {
width: 100%;
}
.cont {
background: #f2f2f2;
}
.email {
display: inline-block;
list-style: none;
word-wrap: break-word;
width: 35%;
margin-right: 10px;
vertical-align: top;
margin-bottom: 20px
}
.subject {
display: inline-block;
list-style: none;
width: 15%;
vertical-align: top;
word-wrap: break-word;
margin-right: 15px;
}
.from {
display: inline-block;
list-style: none;
width: 10%;
vertical-align: top;
word-wrap: break-word;
margin-right: 10px;
}
.action {
display: inline-block;
list-style: none;
width: 10%;
vertical-align: top;
}
<ul class="widthh cont">
<li class="email">
Email
<li class="subject">
Subject
<li class="from">
From
</li>
<li class="action">
Action
</li>
</ul>
<ul class="widthh">
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
</ul>
解决方案
重复模式。
您的模式可以这样描述:
四个没有背景的元素,然后是四个有背景的元素,依此类推。
这意味着它每八个元素重复一次。
你可以使用nth-child()
它
.widthh + .widthh li:nth-child(8n+5), /* 5, 13, 21 */
.widthh + .widthh li:nth-child(8n+6), /* 6, 14, 22 */
.widthh + .widthh li:nth-child(8n+7), /* 7, 15, 23 */
.widthh + .widthh li:nth-child(8n+8) /* 8, 16, 24 */ {
background: red;
}
以你的例子:
.widthh + .widthh li:nth-child(8n+5), /* 5, 13, 21 */
.widthh + .widthh li:nth-child(8n+6), /* 6, 14, 22 */
.widthh + .widthh li:nth-child(8n+7), /* 7, 15, 23 */
.widthh + .widthh li:nth-child(8n+8) /* 8, 16, 24 */ {
background: red;
}
<!DOCTYPE html>
<!-- By cupusasa -->
<html>
<head>
<title></title>
<style>
.widthh{
width: 100%;
}
.cont{
background: #f2f2f2;
}
.email {
display: inline-block;
list-style: none;
word-wrap: break-word;
width: 35%;
margin-right: 10px;
vertical-align: top;
}
.subject {
display: inline-block;
list-style: none;
width: 15%;
vertical-align: top;
word-wrap: break-word;
margin-right: 15px;
}
.from {
display: inline-block;
list-style: none;
width: 10%;
vertical-align: top;
word-wrap: break-word;
margin-right: 10px;
}
.action {
display: inline-block;
list-style: none;
width: 10%;
vertical-align: top;
}
</style>
</head>
<body>
<ul class="widthh cont">
<li class="email">
Email
<li class="subject">
Subject
<li class="from">
From
</li>
<li class="action">
Action
</li>
</ul>
<ul class="widthh">
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li><li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
</ul>
</body>
</html>
编辑:
如果你想让它看起来更像行(li 的高度相同),你可以使用一些 flex。
但是,您需要调整列的宽度以匹配您的第一个列表。
.widthh + .widthh li:nth-child(8n+5), /* 5, 13, 21 */
.widthh + .widthh li:nth-child(8n+6), /* 6, 14, 22 */
.widthh + .widthh li:nth-child(8n+7), /* 7, 15, 23 */
.widthh + .widthh li:nth-child(8n+8) /* 8, 16, 24 */ {
background: red;
}
.widthh + .widthh {
display: flex;
flex-wrap: wrap;
}
.widthh + .widthh li {
margin: 0;
}
<!DOCTYPE html>
<!-- By cupusasa -->
<html>
<head>
<title></title>
<style>
.widthh{
width: 100%;
}
.cont{
background: #f2f2f2;
}
.email {
display: inline-block;
list-style: none;
word-wrap: break-word;
width: 35%;
margin-right: 10px;
vertical-align: top;
}
.subject {
display: inline-block;
list-style: none;
width: 15%;
vertical-align: top;
word-wrap: break-word;
margin-right: 15px;
}
.from {
display: inline-block;
list-style: none;
width: 10%;
vertical-align: top;
word-wrap: break-word;
margin-right: 10px;
}
.action {
display: inline-block;
list-style: none;
width: 10%;
vertical-align: top;
}
</style>
</head>
<body>
<ul class="widthh cont">
<li class="email">
Email
<li class="subject">
Subject
<li class="from">
From
</li>
<li class="action">
Action
</li>
</ul>
<ul class="widthh">
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
<li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li><li class="email">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<li class="subject">
adipiscing elit, sed do eiusmod tempor
<li class="from">
Devid Jon
</li>
<li class="action">
Delete
</li>
</ul>
</body>
</html>
推荐阅读
- python - 模板化 Terraform 文件是个好主意吗?
- javascript - JQuery检查JSON数据是否包含某个键
- javascript - 在量角器中,如何将函数中的值返回到“it block”
- python - Curve_fit python 有很多参数
- json - 使用 JQ 从 curl 的 JSON 输出中过滤
- python - 卡在继续?[y/n] 在 Jupiter Notebook 中
- google-ads-api - Adwords API - 如何使用 AWQL 从 Adwords 报告中排除 NULL 值
- java - 如何通过使用 Selenium Grid 将文件从本地计算机传输到远程 Web 服务器来上传文件
- javascript - Apexcharts:将 xTicks 和标签与热图单元格的开头对齐
- python-3.x - 如何通过匹配 Pandas 中两个不同数据框中的列来更新一个数据框的列