两个inline-block
元素彼此相邻。
.e{border:1px #ccc solid}
.e:hover{border-color:#555}
我希望将它们之间的1px
+ 1px
边框缩小为共享的1px
边框。
举例说明。
---------
| | |
---------
选择第一个元素。
+++++-----
+ + |
+++++-----
选择第二个元素。
-----+++++
| + +
-----+++++
通过将2px
或1px
设置为border-right
,将border-left
边框缩小为0
很简单,但如何保留1px
选择任一元素时共享边框?
没有JavaScript。
答案 0 :(得分:6)
你可以给它们一个-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/
根据HTML的结构,您可能需要稍微使用:first-child
;如果:first-child
或其他伪类不起作用,还有其他几个选项:
<div>
padding-left: 1px
将所有内容全部包裹在margin-left: -1px
周围。margin-left: 0
。答案 1 :(得分:0)
使:hover
状态具有2px边框,并在两边都给它-1px margin
。为:first-child
和last-child
设置例外情况,假设您不必关心那里的每个浏览器...我在看着你IE6 / 7