Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS][svg] zmiana koloru po najechaniu na obiekt
Forum PHP.pl > Forum > Przedszkole
poczatkujaca12
mam svg
  1. <svg width="86" height="86" viewBox="0 0 86 86" fill="none" xmlns="http://www.w3.org/2000/svg" class="svgFill">
  2. <defs>
  3. <style type="text/css"><![CDATA[
  4. .svg{
  5. fill: #000;
  6. }
  7. .svg:hover{
  8. fill: #0f0;
  9. }
  10. ]]></style>
  11. </defs>
  12. <path d="...." class="svg"/>
  13. </svg>

jak otwieram sam obrazek to działa - po najechaniu zmienia kolor
ale w aplikacji na stronie już nie chce

próbowałam dodać też w stylach strony
  1. img:hover {
  2. fill: #0f0 !important;
  3. }


lub
  1. div:hover > img {
  2. fill: #0f0 !important;
  3. }

  1. div:hover > img > svg {
  2. fill: #0f0 !important;
  3. }


Ale nie działa - mam tylko czarny obrazek... ktoś wie dlaczego?
trueblue
Tabelka na końcu: https://www.smashingmagazine.com/2014/11/st...-svgs-with-css/
Tam też jest rozwiązanie Twojego problemu.
poczatkujaca12
Dzięki, embed rozwiązało problem, ale nadal mam z manipulowaniem właściwością fill i nie mogę zmusić by się zmieniał już po najechaniu na diva, a nie dopiero na obrazek...
  1. <div><embed src="obraz.svg"/></div>

  1. div:hover > embed {
  2. fill:#0f0 !important;
  3. }

  1. div:hover > embed > svg{
  2. fill:#0f0 !important;
  3. }

i żadna wariacja nie działa.

Czy jedyna możliwość manipulowania fill to umieszczenie obrazka inline w kodzie html?
trueblue
W tym przypadku tak.
<embed> nie ma właściwości fill, w kodzie nie istnieje również element <svg> zagnieżdżony w <embed>, a więc nie dostaniesz się do fill.
poczatkujaca12
OK, na szczęście to nie duże ikony to umieściłam obrazek bezpośrednio w kodzie...
A istnieją jakieś sposoby aby dostać się z zewnątrz do wartości fill w pliku svg?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.