css - 1px 共享 :hover border on two elements

标签 css hover border

两个 inline-block 元素彼此相邻。

.e{border:1px #ccc solid}
.e:hover{border-color:#555}

我想要的是将它们之间的 1px+1px 边框缩小为共享的 1px 边框。

举例说明。

---------
|   |   |
---------

选择第一个元素。

+++++-----
+   +    |
+++++-----

选择第二个元素。

-----+++++
|    +   +
-----+++++

通过设置 border-rightborder-left2px 边框缩小到 1px 很简单到 0,但是如何在选择任一元素时保持 1px 共享边框?

没有 JavaScript。

最佳答案

您可以给它们一个 -1px 的左边距,让它们的边框重叠,然后在第一个边框上撤消该边距。然后调整z-index悬停(不要忘记 position: relative 使 z-index 起作用)。像这样:

.e {
    border: 1px #ccc solid;
    position: relative;
    margin-left: -1px;
}
.e:first-child {
    margin-left: 0;
}
.e:hover {
    border-color: #555;
    z-index: 5;
}

演示:http://jsfiddle.net/ambiguous/XTzqx/

您可能需要使用 :first-child有点取决于您的 HTML 的结构;如果:first-child还有其他几个选项或者另一个伪类将不起作用:

  • 将其全部包装在 <div> 中与 padding-left: 1pxmargin-left: -1px周围拼凑.
  • 向第一个具有 margin-left: 0 的类添加一个额外的类.

关于css - 1px 共享 :hover border on two elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7621749/

相关文章:

html - 在 HTML 表格上放置边框时出现问题

css - Outlook.com 不允许从外部加载样式表?

ios - Frame.size.width 不返回正确的 UIButton 宽度

css - 如何使用 css 或 javascript 创建 "dot-dash"边框?

css - 具有边框的元素的背景图像应覆盖边框

html - 如何使用@RenderPage 内嵌 CSS 内容 - MVC Razor

javascript - 如何在模式打开时停止触发 TAB 键事件

javascript - 悬停时将一个链接更改为两个

html - CSS -> 悬停效果不起作用

javascript - jQuery hoverIntent 插件的 cfg.hover 错误