2011-04-07 96 views
2

我想在懸停的鏈接周圍放置一個邊框,並且樣式適用於它,但是當我將它懸停時,它會跳轉(元素跳轉)...我該怎麼辦? 代碼:css鏈接元素跳轉懸停

.navigation li:hover { 
    border: 1px solid #ccc; 
} 
+0

因爲添加邊框而跳躍。從元素左邊出現左邊框,元素右邊爲1 px – 2011-04-07 09:11:10

回答

12

你「跳」是由邊界1px的高度,使你的李舉動引起

您可以使用

.navigation li:hover { 
    border-color: #ccc; 
} 

.navigation li { 
    border: 1px solid #<parentBackgroundColor/transparent>; 
} 

代替。通過這種方式,邊界從一開始就在這裏,所以沒有懸停跳躍,並且它是不可見的,因爲它與父容器的顏色相同或是透明的。

+1

解決方案的+1 - 但對答案稍作修改 - 按照@Clement Harreman的建議在.navigation li中設置邊框,但在.navigation li:hover中,只更改邊框顏色。它有助於繼承。 – 2011-04-07 09:28:30

+0

同意,編輯完成。 – 2011-04-07 12:17:17

7
.navigation li { 
    border: 1px solid transparent; 
} 

您可以添加一個透明border,當你不徘徊,那麼它不會跳。

或者,您可以刪除共有的元素周圍2px垂直padding,例如:

.navigation li { 
    padding: 10px 
} 
.navigation li:hover { 
    padding: 9px; 
    border: 1px solid #ccc; 
} 
+0

@Laura Rafferty:原始答案的CSS是正確的。如果一個元素當前擁有'padding:10px',設置(懸停時)'padding:9px'會將'padding-top'從'10px'設置爲'9px','padding-bottom'從'10px'設置爲'9px' - 合併減少2px。 – thirtydot 2017-04-10 23:57:41