2016-05-13 66 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>

相關問題