2013-09-03 18 views
5

Mam strukturę HTML tak:CSS Kolejnym elementem (brak rodzeństwa) selektor

<svg> 
    <path/> 
</svg> 
<img/> 

Czy istnieje sposób, aby zrobić coś w stylu „display: block;” do <, gdy jest ukryty, tylko z CSS?

+2

Nie, ale w zależności od rzeczywistego svg i użytych ścieżek można zastosować wskaźnik myszy do 'svg'? – SmokeyPHP

+2

Dodatkowe czytanie: http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector – SmokeyPHP

+0

@SmokeyPHP Przestań wnosić tak wiele dobrych komentarzy tak szybko, że mogę przegłosować co pięć sekund. :) – insertusernamehere

Odpowiedz

2

Jest to możliwe tylko wtedy, gdy można wybrać rodzica <path/>, co niestety nie jest możliwe, więc odpowiedź brzmi, że nie jest to możliwe.

Jeśli chciałbyś wypróbować to z javascript, mogę dostarczyć ci przykład jQuery (nie najlepszy).

$('svg > path').hover(function(){ 
    $(this).parent().next().addClass('hover'); 
}, function() { 
    $(this).parent().next().removeClass('hover'); 
}); 

Następnie w swoim css możesz zrobić.

img.hover{ 
    // These styles take effect when you hover `<path>` 
} 
+0

Uwaga: pytanie w tej chwili rzeczywiście ma odpowiedź "NIE", ponieważ określa "tylko CSS", ale można to oczywiście osiągnąć za pomocą JavaScript ([przykłady jQuery] (http://stackoverflow.com/questions/ 8055830/select-sibling-of-parent-on-hover-with-jquery # answer-8055865)) – SmokeyPHP

+0

@SmokeyPHP tak, wiem. – iConnor

+0

Tak, to było bardziej dla innych widzów tej odpowiedzi niż dla ciebie. – SmokeyPHP