2012-07-04 64 views
1

code在這種情況下,我不能使用:first-child選擇器嗎?

<div class="allegati-item"> 
    <div class="allegati-titolo">Download</div> 
    <a class="allegati-link" href="/documenti/DocumentoTest.pdf">Link1</a> 
    <a class="allegati-link" href="/documenti/DocumentoTest.pdf">Link2</a> 
</div> 

.allegati-link 
{ 
    border-top:1px solid #FF0000; 
    display:block; 
    margin-bottom:4px; 
} 

.allegati-item a.allegati-link:first-child 
{ 
    border:0; 
}​ 

我想在第一allegati-link元素刪除邊界,但因爲有前一個div中,allegati-item裏面,看來這可能是不可能的?

回答

3

很可能,你試試這個:

.allegati-item .allegati-titolo + a.allegati-link{ 
3

使用:first-of-type代替或

.allegati-item > .allegati-titolo + a 

的最後一個版本有稍微好一點的瀏覽器支持(從IE7上),而第一個是更少地依賴於你標記。

+0

+1涵蓋所有解決方案。 –

+0

@RobW不是所有的,':nth-​​type-type(1)'都是錯過的) – Engineer

+0

@Engineer我省略了這個,因爲顯然不需要;)你可能會喜歡這些選擇器。 – Christoph

2

這爲前提是:first-of-type可能是最好的選擇,這裏是另一種替代的瀏覽器不支持然而這僞類

.allegati-link { border: 0; } 
.allegati-link + .allegati-link { border-top: ...} 

這樣做,你將只能從第一個鏈接刪除邊框。

0

您可以在此也

$(".allegati-titolo").next().attr("style", "border-top:0px; display:block; margin-bottom:4px;"); 

這將首先選擇具有DIV CLASS =「allegati-TITOLO」的下一個元素,然後將樣式應用於第一個鏈接。

+0

這不是CSS。 – BoltClock

+0

+1:這不是CSS,但是使用JS並不是什麼壞主意,因爲IE9不支持CSS3選擇器。 –

+0

@JezenThomas css3在這裏並不是必須的。相鄰選擇器'+'是css 2.1的一部分,甚至可以通過IE7支持它:) – fcalderan

相關問題