2016-05-13 29 views
16

我有一个有红色边框的父母。当用户悬停在孩子身上时,我试图改变孩子的边界以重叠父母。我怎样才能做到这一点?在悬停我怎么能让我的孩子边界重叠父母的边界?

.parent{ 
 
    border:1px solid red; 
 
    display:inline-block; 
 
} 
 

 
.parent a { 
 
    display:block; 
 
    padding:1em; 
 
    border-bottom:1px solid #ddd; 
 
} 
 

 
.parent a:hover{ 
 
    border:1px solid #ddd; 
 
}
<div class="parent"> 
 
     <a href="#">1</a> 
 
     <a href="#">2</a> 
 
     <a href="#">3</a> 
 
     <a href="#">4</a> 
 
     <a href="#">5</a> 
 
    </div>

回答

7

只要你知道边框的宽度,并能使用相对定位...我有为了清楚起见,在这里夸大了边界。

.parent { 
    border:5px solid red; 
    display:inline-block; 
    position: relative; 
} 

.parent a { 
    display:block; 
    padding:1em; 
    border-bottom:1px solid #ddd; 
    position: relative; 
} 

.parent a:hover{ 
    border:5px solid #ddd; 
    margin: -5px; 
} 

https://jsfiddle.net/kd0gf31z/

+0

这是一个更直接的问题答案,但其他答案也很好。 –

13

我做了你的风格有些变化:

.parent{ 
    display:inline-block; 
} 

.parent a { 
    display:block; 
    padding:1em; 
    border-right:1px solid red; 
    border-left:1px solid red; 
    border-bottom:1px solid #ddd; 
    border-top: none; 
} 

.parent a:first-of-type{ 
    border-top:1px solid red; 
} 

.parent a:last-of-type{ 
    border-bottom:1px solid red; 
} 

.parent a:hover{ 
    border-color:#ddd; 
} 

在这里看到的结果https://jsfiddle.net/IA7medd/343ydvhs/

+0

的红色边框可以添加边框父母顶部和底部的半径? – 3gwebtrain

+0

当然,我们可以将它添加到第一个和最后一个孩子 https://jsfiddle.net/IA7medd/343ydvhs/1/ –

-2

为什么不只是改变孩子悬停父CSS?

.parent a:hover .parent { 
//Some CSS 
} 
+1

你是先测试一下自己的吗? CSS中没有父选择器。 – Shaggy

+0

这会改变'a'类的后代,但是不存在。 –

3

您可以通过使用绝对定位伪元素实现这一点,就像这样:

*,*::before,*::after{box-sizing:border-box;font-family:sans-serif;} 
 
.parent{ 
 
    border:1px solid red; 
 
    display:inline-block; 
 
} 
 
.parent a{ 
 
    display:block; 
 
    padding:1em; 
 
    border-bottom:1px solid #ddd; 
 
    position:relative; 
 
} 
 
.parent a:last-child{ 
 
    border:0; 
 
} 
 
.parent a:hover::after{ 
 
    border:1px solid #ddd; 
 
    bottom:-1px; 
 
    content:""; 
 
    left:-1px; 
 
    position:absolute; 
 
    right:-1px; 
 
    top:-1px; 
 
}
<div class="parent"> 
 
    <a href="#">1</a> 
 
    <a href="#">2</a> 
 
    <a href="#">3</a> 
 
    <a href="#">4</a> 
 
    <a href="#">5</a> 
 
</div>

相关问题