2015-01-04 75 views
4

僅當後面還有其他元素時,我纔想要元素。 這裏是我到目前爲止的代碼:製作:僅在元素後面有其他元素時

<table id='table_1'> 
    <tr> 
    <td>A</td> 
    <td>B</td> 
    <td>C</td> 
</tr> 
</table> 

是否有可能有:後後,A和B,但不是C?

我的CSS

#table_1 td:after{ 
content: ""; 
background: black; 
border: 1px solid black; 
position: relative; 
margin-left: 10px; 
} 

回答

3

最簡單的辦法做到這一點是使用不(:最後一子):

#table_1 td:not(:last-child):after{ 
    content: ""; 
    background: black; 
    border: 1px solid black; 
    position: relative; 
    margin-left: 10px; 
} 

Working exmaple

你有這樣,只有一個選擇和你不需要重寫你的代碼。

2

您可以使用td:last-child選擇任何td元素是它的父元素的最後一個孩子,然後隱藏其:after僞元素:

#table_1 td:last-child:after { 
    display:none; 
} 

演示:

#table_1 td:after { 
 
    content:""; 
 
    background: black; 
 
    border: 1px solid black; 
 
    position: relative; 
 
    margin-left: 10px; 
 
} 
 
#table_1 td:last-child:after { 
 
    display:none; 
 
}
<table id='table_1'> 
 
    <tr> 
 
     <td>A</td> 
 
     <td>B</td> 
 
     <td>C</td> 
 
    </tr> 
 
</table>

3

可以使用:before+舊的瀏覽器支持

Adjacent sibling selector

#table_1 td { 
 
    position: relative; 
 
} 
 
#table_1 td + td:before { 
 
    content: ""; 
 
    position: absolute; 
 
    background: black; 
 
    border: 1px solid black; 
 
    position: relative; 
 
    margin-left: 10px; 
 
    margin-right: 10px; 
 
}
<table id='table_1'> 
 
    <tr> 
 
    <td>A</td> 
 
    <td>B</td> 
 
    <td>C</td> 
 
    </tr> 
 
</table>

+0

把一些元素是不一樣的東西放在「才」下一個「後」元素,因爲僞元素出現在真實元素的內部(在其真實內容之前或之前)。所以這可能是一個有趣的不同方法,但這不是對問題的回答。 – 2015-01-04 12:17:21