【问题标题】:css link element jumps on hovercss链接元素在悬停时跳转
【发布时间】:2011-07-31 12:28:18
【问题描述】:

我试图在悬停时在链接周围放置边框,并且样式适用于它,但是当我将鼠标悬停在它上面时它会跳转(元素跳转)......我该怎么办? 代码:

  .navigation li:hover {
   border: 1px solid #ccc;
 }

【问题讨论】:

  • 是因为添加了边框而跳跃。元素的左侧出现左边框,元素向右移动 1 px

标签: css hyperlink hover element


【解决方案1】:
.navigation li {
    border: 1px solid transparent;
}

你可以在不悬停的时候添加一个透明的border,那么它就不会跳跃了。

或者,可以移除元素周围一共2px垂直padding,例如:

.navigation li {
    padding: 10px
}
.navigation li:hover {
    padding: 9px;
    border: 1px solid #ccc;
}

【讨论】:

  • @Laura Rafferty:原始答案的 CSS 是正确的。如果一个元素当前有padding: 10px,设置(悬停时)padding: 9px 将设置padding-top10px9pxpadding-bottom10px9px - 组合减少@987654334 @.
【解决方案2】:

你的“跳跃”是由边框的 1px 高度引起的,这会让你的 li 移动

你可以使用

 .navigation li:hover {
   border-color: #ccc;
 }

 .navigation li {
   border: 1px solid #<parentBackgroundColor/transparent>;
 }

相反。这样,边框从一开始就在此处,因此不会在悬停时跳转,并且它是不可见的,因为它与父容器的颜色相同或透明。

【讨论】:

  • +1 用于解决方案 - 但对答案稍作修改 - 按照@Clement Harreman 的建议在 .navigation li 中设置边框,但在 .navigation li:hover 中,仅更改边框颜色.它有助于继承一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 2013-04-17
  • 2017-12-30
  • 1970-01-01
  • 2013-11-10
  • 2016-07-18
  • 2013-02-09
相关资源
最近更新 更多