我想要一个背景有点透明的列表,以及一个包含具有自己背景颜色的跨度的列表项。我想要 li 之间的间距,但要保留的颜色和悬停只取 span 容器的高度(不是完整的 li)标记是这样的:
<div>
<ul>
<li><span>hello</span></li>
<li><span>world</span></li>
</ul>
</div>
这是CSS:
ul {
list-style:none;
background: rgba(255, 0, 0, .5);
}
li {
margin-left: 20px;
}
li:hover {
background: gray;
}
span {
border-top: solid rgba(0,255,0,1) 5px;
display: inline-block;
width: 80%;
height: inherit;
background: rgba(0,255,0,1);
}
span:hover {
background: gray;
}
只有当您尝试将鼠标悬停在元素上时才会出现问题,li 的高度大于 span 的高度。另一个限制是 ul-li 标记是一成不变的。但是,我可以更改 li 内的任何内容(因此不需要跨度)。
jsFiddle:
当前状态(悬停在 hello 列表项上):
仍然不可接受的状态(在 hello 列表项悬停时)
所需状态(悬停在 hello 列表项上):
如果您需要更多信息,请告诉我。