• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak zmienić kolor ikony używanej jako slider-thumb (CSS)

+1 głos
1,503 wizyt
pytanie zadane 20 stycznia 2021 w HTML i CSS przez Mlorism Użytkownik (580 p.)
edycja 20 stycznia 2021 przez Mlorism

Modyfikuję slidera i udało mi się nawet zmienić ikonę (format svg), którą chwytamy do zmiany wartości (slider-thumb). Używana ikona jest czarna i chciałbym zmienić jej kolor na inny (w zależności od slidera, np. czerwony, niebieski).

To co do tej pory ogarnąłem w css:

input[type=range]::-webkit-slider-thumb 
{
    -webkit-appearance: none;
    width: 25px;
    height: 25px;    
    background: url('../img/shield.svg');    
    cursor: pointer;
}

Niestety nie mogę zmienić tego koloru poprzez background-color bo zmieni się tylko obramowanie czarnej ikony, a ona pozostaje (tak, zgadłeś) czarna. Czy jest to w ogóle możliwe?

komentarz 20 stycznia 2021 przez SzkolnyAdmin Szeryf (90,350 p.)
Chesz zmienić jednorazowo, czy np. za każdym wyświetleniem?

Inkscape poradzi sobie z plikiem SVG.
komentarz 20 stycznia 2021 przez Mlorism Użytkownik (580 p.)
Chciałem zmieniać kolor w różnych miejscach na stronie, więc z wyświetleniem. Zastanawiam się czy jest to możliwe w CSS, a jak nie w javascriptcie, czy jednak trzeba przygotować kilka wariantów kolorystycznych w oddzielnych plikach?

3 odpowiedzi

+1 głos
odpowiedź 20 stycznia 2021 przez SzkolnyAdmin Szeryf (90,350 p.)
wybrane 24 stycznia 2021 przez Mlorism
 
Najlepsza

W sumie to nawet notatnik ci pomoże, plik svg to zwyczajny plik XML. Jak napisał niezalogowany, szukaj ciągu fill:#000000 lub fill="black" (lub podobnie, zapis oznacza kolor czarny) w pliku i zmień kod/nazwę koloru. Jeżeli ikona składa się z kilku części, ciąg może wystąpić kilka razy.

Program do obróbki grafiki wektorowej (np. darmowy Inkscape) poradzi sobie ze zmianą koloru.

Jeżeli chciałbyś zmieniać kolor kolor JEDNEJ ikony podczas pokazu slajdów, to musiałbyś edytować plik w trakcie działania aplikacji (np. przy pomocy PHP), ale lepiej przygotować kilka gotowych ikon. Chyba, że user sam może zmieniać kolor ikony.

komentarz 20 stycznia 2021 przez Mlorism Użytkownik (580 p.)
Moje pliki nie mają ani fill, ani black, ani ciągu kilku zer. Inkscape daje radę by je zamienić. Zastanawia mnie czy istnieje sposób by zmieniać to przez CSS lub javascript? Od tego zależy czy przygotować muszę kilka wersji kolorystycznych w oddzielnych plikach, czy nie.
komentarz 20 stycznia 2021 przez SzkolnyAdmin Szeryf (90,350 p.)
Przygotowane w innym programie. Otwórz je w Inkscapie i zapisz (będziesz miał fill).

Z tego co wiem, to ani CSS, ani JS ci na to nie poradzi. Brak możliwości edycji pliku, ale niech się wypowiedzą specjaliści. Z języków webowych, to, np. PHP - odczyt pliku, wyszukanie i zmiana frazy dotyczącej koloru, zapis pliku po zmianach. Ale IMO lepiej przygotować kilka wersji kolorystycznych, zwłaszcza, że waga plików jest śmieszna (jak to wektorowych).

Jeżeli - jak ci pisałem - user mógłby personalizować kolor ikon i wybierać przy tym kolor dowolny (nie z oferowanych gotowych od ciebie), to pozostaje edycja pliku.
0 głosów
odpowiedź 20 stycznia 2021 przez niezalogowany

Visual Studio Code

pobierz extension SVG PREVIEVER  zrestartuj edytor !

Otówrz wybrany svg w edytorze i zmień atrybut Fill na wybrany kolor w formacie #FFF;

Done smiley jeśli SVG nie jest skomplikowany to powinno się spokojnie udać!

0 głosów
odpowiedź 21 stycznia 2021 przez VBService Ekspert (256,580 p.)
edycja 21 stycznia 2021 przez VBService

Może nie do końca w temacie, inne "spojrzenie" wink

Change Color of SVG on Hover

CSS Style Generator for Range Inputs
SVG to Base64 wink

<input type="range" min="1" max="30" steps="1" value="2" class="slider">   
<input type="range" min="1" max="30" steps="1" value="2" class="slider c1">
.slider {
  -webkit-appearance: none;
  appearance: none;
  width: 20vw;
  height: 0.5em;
  background: #ccc;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
  cursor: pointer;
  overflow: unset;
  border-radius: 10px;
}
.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 15px;
  height: 15px;
  background: #4CAF50;
  cursor: pointer;
}

.c1::-webkit-slider-thumb 
{
  -webkit-appearance: none;
  width: 25px;
  height: 25px;    
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InJlZCIvPjwvc3ZnPg==");   
  cursor: pointer;
}

 

Podobne pytania

0 głosów
1 odpowiedź 858 wizyt
pytanie zadane 12 września 2019 w HTML i CSS przez MAXIM7 Obywatel (1,990 p.)
0 głosów
3 odpowiedzi 1,138 wizyt
pytanie zadane 6 czerwca 2019 w HTML i CSS przez Moras Obywatel (1,620 p.)
+1 głos
1 odpowiedź 439 wizyt
pytanie zadane 9 marca 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)

93,759 zapytań

142,716 odpowiedzi

323,364 komentarzy

63,357 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...