html - 悬停时我的边框效果无法正常工作

标签 html list

我正在用很少的 CSS 设计一个简单的列表。在此设计中,如果用户将鼠标悬停在列表项上,它将突出显示顶部和底部边框。但是,除了最后一个悬停,只有一个边框被突出显示。

如果我删除 margin-bottom: -1px; 那么它会显示 2px 边框。

.list {
  list-style-type: none;
  color: #333;
  padding: 0;
  background-color: #fff;
}

.list-item {
  padding-top: 10px;
  padding-bottom: 10px;
  border-top: 1px solid #eeeeef;
  border-bottom: 1px solid #eeeeef;
  margin-bottom: -1px;
}
.list-item:hover {
  color: #0275d8;
  border-top: 1px solid #0275d8;
  border-bottom: 1px solid #0275d8;
  
}
<ul class='list'>
  <li class='list-item'>Sample List 1</li>
  <li class='list-item'>Sample List 2</li>
  <li class='list-item'>Sample List 3</li>
</ul>

Fiddle

最佳答案

这是因为下面的.list-item 仍然有一个#eeeeef border-top。解决这个问题的一个简单方法是说下一个 .list-item 的 border-top 也应该更改为 #0275d8

我们可以这样做:

.list {
  list-style-type: none;
  color: #333;
  padding: 0;
  background-color: #fff;
}
.list-item {
  padding: 10px 0;
  border: solid #eeeeef;
  border-width: 1px 0;
  margin-bottom: -1px;
}
.list-item:hover {
  color: #0275d8;
  border-color: #0275d8;
}

/* next .list-item */
.list-item:hover + .list-item {
  border-top-color: #0275d8;
}
<ul class='list'>
  <li class='list-item'>Sample List 1</li>
  <li class='list-item'>Sample List 2</li>
  <li class='list-item'>Sample List 3</li>
</ul>

希望这对您有所帮助。

关于html - 悬停时我的边框效果无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40802498/

相关文章:

javascript - Css 悬停选择器应该选择完整的行

字典列表的 Python 集合计数器

list - 更新Kotlin列表

python - 从 python 中的字典列表中选择一个字段

html5 - 如何在响应式布局中禁用水平滚动

html - 循环 "flash"动画3次,然后延迟5秒,再用Animate.css循环

html - 我怎样才能使从左侧滑入的 flexbox 过渡到页面居中?

r - 通过梯形规则在 R 中查找曲线下面积 (AUC)

python - 从元组中获取相同的元素并返回两个索引列表

javascript - 从函数内的数组中选择所有复选框