2016-04-08 12 views
-1

So habe ich eine HTML-Struktur wie folgt aus:SCSS Selektoren, kann ich eine Ulme bei einem Kind eines Elternteils

<g> 
    <text></text> 
</g> 
<g> 
    <g> 
     <path></path> 
    </g> 
    <g> 
     <text></text> 
    </g> 
</g> 

Und ich möchte die Textelemente CSS nach einer psudeo ändern: von dem Pfad bewegen, kann ich das irgendwie mit SCSS anvisieren? Hier ist, was ich habe, so sind:

g{ 
    path{ 
    &:hover { 
     && + g{ 
      text{ 
       opacity: 1.0 !important; 
       filter: alpha(opacity=100) !important; 

So möchte ich nur greifen die Seite von g-Tag aus dem Weg-Tags CSS, ist das möglich?

+0

Perphaps dies kann Ihnen helfen: https://css-tricks.com/child-and-sibling-selectors/ – Boratzan

+0

Der 'text' kann nicht von einem nachfolgenden Geschwister oder Nachkommen beeinflusst werden ... Sie können nicht gehen Sichern Sie das DOM. –

+0

Sofern Sie kein Sass-> CSS-Kompilierungsproblem haben, ** veröffentlichen Sie nur das kompilierte CSS **. – cimmanon

Antwort

2

In CSS ist es nicht möglich, einen Elternteil von einer bestimmten Aktion auf einem Kindelement zu adressieren ... da SASS nur CSS erzeugt, ist es dann auch unmöglich.

könnte eine Lösung, die ein Textelement in jedem Pfadelement (oder g Elementen enthält Pfad) und dann zu schreiben, setzen sein:

HTML:

<g> 
    <g> 
     <path> 
      <text></text> 
     </path> 
    </g> 
</g> 

SCSS:

g { 
    g:hover > path > text { 
     color: #FFF; 
    } 
} 

Wenn Sie die HTML-Struktur nicht ändern möchten und den Stil eines übergeordneten Elements aus dem Hover-Pseudo-Selektor eines untergeordneten Elements ändern möchten, sollten Sie Javascript oder ein Javascript-Framework/library (li ke jQuery, Angular, reagieren, ...).

Verwandte Themen