我知道使用純CSS不可能選擇元素的以前的同胞。但我試圖用複雜的選擇器欺騙瀏覽器。
請參閱此jsFiddle。它包含了除其中2個是做工精細幾個CSS規則:CSS同級選擇器不能在裏面工作:not()
//set border color to white for all elements before .selected and .selected itself
div:not(.selected ~ div) {
border-color: #fff;
}
//set border color to green for the element previous to .selected
div:not(.selected ~ div):nth-last-child(2) {
border-color: #0f0;
}
但似乎這裏面:not()
兄弟選擇~
不起作用。
所以這兒有2個問題:
- 難道預計
~
並不裏面:not()
工作? - 有沒有針對這種情況的解決方法?
編輯:
最終的想法是讓與像純CSS一個不錯的懸停效果:
懸停圖像被簡單地縮放,圖像的正確可以發現並輕鬆風格,但左邊的那個...... div的例子就是一個例子。
我認爲唯一的(純CSS)方法是將所有邊框設置爲白色,然後覆蓋.selected之後的所有元素的樣式。 jQuery也可以幫助你使用index()和n-child,但是它會使用一個火箭筒來殺死一隻蒼蠅 – FLX
根據[(這裏的規格)](http://www.w3.org/TR/css3 -selectors /#negation):只允許簡單的選擇器作爲':not'的參數。所以,你不能使用組合器,只有簡單的選擇器。 – Abhitalks
其中的一種情況是,你過度想辦法取得相當簡單的結果。有時候,我們來到這裏並不是一個好的解決方案,並且希望人們在實際上通過暴露原始問題來解決問題會帶來快速和簡單的解決方案。 :) – melancia