【问题标题】:How to bring overlapping border to front when hovered?悬停时如何将重叠边框放在前面?
【发布时间】:2012-11-23 17:51:15
【问题描述】:

我有几个 div 水平排列,黑色边框为 1px。它们在左侧/右侧重叠。我不想添加边距,因为当元素彼此相邻时,这会导致边框为 2px。

当用户将鼠标悬停在边框上时,边框变为白色。问题是第二个元素(以及第一个元素之后的其他元素)的左边框隐藏在前一个元素的后面,并且左边框似乎没有改变颜色。如何使悬停的元素位于顶部?我尝试了 z-index 没有任何变化。

.upcoming a:before{
    display:block;
    content:'';
    position:absolute;
    width:184px;
    height:277px;
    border:1px solid #666;
}

.upcoming a:hover:before{
    border-color:#CCC;
}

(我使用 :before 的原因与边框重叠的框阴影不同)

编辑:添加图片

在这个屏幕截图中,“秋天”海报被悬停,也被放大了很多。注意左边的边框不是浅色的(因为它被拳头边框重叠了)。

【问题讨论】:

  • 能不能加个图片或者jsfiddle?
  • 添加截图,见编辑。

标签: css border overlap


【解决方案1】:

虽然您已经尝试过了,但我认为z-index 是这里的最佳选择。它纯粹是为了能够管理每个元素的 z 位置而设计的。

例如看这个jsfiddle:

http://jsfiddle.net/CjYa9/1/

也许你在做一些不同的事情。

【讨论】:

  • 这可能是:before 或绝对定位的问题,但在这种情况下它根本不起作用......
  • @DominicM 你能在 jsfiddle 中复制吗?
  • 我发现是 :before 元素由于空间有限而导致边框重叠,所以现在我修复了我似乎根本无法让边框重叠(位置相对或绝对导致所有元素消失)。如果我设法让边界重叠,z-index 现在可能会工作:)
  • 看起来如果不使用不同的盒子阴影方法就无法实现我想要的。 z-index 否则对于我想要接受的内容是正确的。
  • @Curt 似乎这个解决方案在使用 box-shadow 时不起作用。它不重叠。任何解决方法? - 更新: 我找到了这个答案,它解决了我的 z-index 和 box-shadow 问题。 stackoverflow.com/questions/20208200/…
猜你喜欢
  • 2018-03-17
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
相关资源
最近更新 更多