2015-10-10 63 views
1

我有這種佈局,需要堆疊在一起的一堆盒子,它們都有一個1px邊框。 爲了使邊框始終爲1px,我將-1px的邊距底部放在所有框中,但是當我更改懸停時的邊框顏色時,它並不像預期的那樣工作。這裏是一個例子: Border collapsedCSS - 堆積邊框

我怎樣才能讓它在懸停時不重疊?

我的代碼:

.main-content ul li a { 
    margin-bottom:-1px; 
    padding:15px 23px; 
    display:block; 
    border:1px solid #545353; 
    color:#545353; 
} 
.main-content ul li a:hover { 
    border-color:#fff; 
    color:#fff; 
} 

我試圖讓他們所有的z-index,然後做出更高懸停,但它沒有工作,要麼... 任何想法?

謝謝!

編輯添加HTML

<div class="row main-content"> 
    <div class="container"> 
    <div class="col-md-8 col-md-offset-2"> 
     <ul> 
     <li><a href="#">Bienvenida</a></li> 
     <li><a href="#">¿Por qué es la decisión correcta?</a></li> 
     <li><a href="#">¿Cómo funciona este servicio?</a></li> 
     <li><a href="#">¿Cuánto cuesta este servicio?</a></li> 
     <li><a href="#">Estoy interesado, ¿qué hago?</a></li> 
     <li><a href="#">Registro</a></li> 
     </ul> 
    </div> 
    </div> 
</div> 
+0

使用'的位置是:絕對的;'和'Z-index'上':hover'操作呢? – leonixyz

回答

2

您可以使用屬性:

box-sizing: border-box; 

所以元素正是你想他們是寬度和高度。元素中的邊框將爲1px,而不是伸展到其他元素。

爲了保持邊界在1px的,使用這個CSS:

.main-content ul li a { 
position: relative; 
z-index: 30; 
margin-bottom:-1px; 
padding:15px 23px; 
display:block; 
border:1px solid #545353; 
color:#545353; 
} 
.main-content ul li a:hover { 
border-color:#fff; 
color:#fff; 
z-index: 99; 
} 

我所做的更改了設置的z-index兩個unhovered鏈接和鏈接徘徊。位置:相對被添加,因爲除非指定了位置,否則z-index不會反映。

+0

這是有效的,但當箱子見面有兩個邊緣因爲兩個邊界相交時,我想要的是邊框堆疊在一起,但是當我將鼠標懸停在元素邊框應該是「頂部」的項目上時 – Dogmatics

+0

您可以嘗試使用z-index,並將其應用於懸停時的框。 z-index所做的是將屏幕上的一個元素優先於另一個元素,這似乎是你想要的。您可以通過以下方式執行此操作: .main-content ul li a:hover { z-index:10; } 而其餘的z-索引小於該值。您還需要將位置設置爲絕對或相對才能工作。 –

+0

我試過把z-index:99;在:懸停,但也沒有工作,有什麼我在這裏失蹤?我怎麼能讓它與pos一起工作。絕對? – Dogmatics

0

試試這個https://jsfiddle.net/L565nwaL/1/

<div class="main-content"> 
    <ul> 
     <li><a href="#">item one</a></li> 
     <li><a href="#">item two</a></li> 
     <li><a href="#">item three large</a></li> 
     <li><a href="#">item four</a></li> 
    </ul> 
</div> 

CSS

.main-content ul li a { 
    padding:15px 23px; 
    display:block; 
    border:1px solid #545353; 
    border-bottom: transparent; 
    color:#545353; 
} 
.main-content ul li a:hover { 
    border:1px solid #fff; 
    color:#fff; 

} 

.main-content { 
    background: #161616; 
    box-sizing: border-box; 

} 
+0

這是有效的,但再次,有兩個像素的地方,在那裏應該只有一個 – Dogmatics

+0

我想過,但由於一些盒子比其他人大,你可以看到有沒有底部邊界 – Dogmatics

+0

是我想到了在我發佈回答後:)對不起。 –