html - 悬停具有 border 属性的元素会移动

标签 html css

悬停在 li 元素上时,我想在底部和顶部添加边框。代码如下所示:

#overview li:hover {
    background: rgb(31, 31, 31);
    border-top: 1px solid white;
    border-bottom: 1px solid white;
}

http://jsfiddle.net/rwDYR/ (将导航悬停在左侧)

问题是,它将 li 元素移动了 1 或 2 个像素。我已经尝试为悬停状态添加 margin-top: -1px,但这并没有解决问题。

有什么想法吗?

最佳答案

当您不悬停 <li> 时添加透明边框(并且仅更改 :hover 上边框的颜色)

#overview li {
   padding: 5px;
   border-top: 1px solid transparent;
   border-bottom: 1px solid transparent;
}

#overview li:hover {
   border-color: #fff;
   /* other style ... */
}

(在你的 fiddle 上进行了即时测试,它似乎工作正常)

关于html - 悬停具有 border 属性的元素会移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15686894/

相关文章:

jquery - 如何获取包含内容的文本区域?

html - 我试图将我的旋转木马标题放在顶部,但它不起作用

css - 在 Bootstrap 3.2.0 中使用网格列创建问题

html - 去除图像边框

CSS 缓存问题

html - div 内的行间距均匀

jquery - 将 HTML 加载到 div - 异常问题

向下滑动的 Jquery Image Slider

html - 相对定位的 HTML 元素与父元素重叠

jquery - 无法将自定义光标添加到可排序(jQuery、CSS)