Edycja: Odtąd poprawnie zrozumiałem twoje pytanie, zaktualizowałem swoją odpowiedź.
Chociaż W3C Spec określa, że atrybut value
ma ciąg reprezentujący kolor, nie definiuje on domyślnego koloru. Myślę więc, że implementacja domyślnego koloru pozostawia się w gestii przeglądarki.
Jednak WhatWG Spec anwers pytanie z tej notatki,
Uwaga: Gdy element input type jest w stanie koloru, zawsze jest kolor wybrał, i nie ma sposobu, aby ustawić wartość do pustego ciągu.
Ponadto, w oparciu o oczekiwania, język CSS nie definiuje atrybut NULL
dla każdego elementu, który sprawia, że niemożliwe dla input type='color'
mieć NULL
jako wartości domyślnej.
Rozwiązanie:
Rozwiązaniem jest obecny w API cień DOM.
Korzystanie z Chrome Developer Tools, stwierdziliśmy, że możemy dać transparent
kolor elementu pseudo ::-webkit-color-swatch
własność -
input[type=color]::-webkit-color-swatch
{
background-color: transparent !important;
}
Dla powyższego CSS, Twój HTML powinien podoba - <input type="color">
.Teraz nie musisz mieć żadnego słuchacza, który mógłby powiedzieć, czy użytkownik zmienił domyślny kolor, czy nie. Możesz po prostu traktować kolor transparent
jako kolor NULL, na podstawie którego możesz podjąć decyzję, czy wartość została zmieniona, czy nie!
Jestem pewien, że znajdziesz podobny rodzaj informacji z DOMu Cienia dla Firefoksa, aby ustawić przezroczystą wartość dla tła. IE nadal pozostaje dla nas uciążliwe.
ja nie bardzo rozumiem Twoje pytanie. Co chcesz jako domyślny kolor wejściowy? –
@PankajParashar NULL, podobnie jak w przypadku '' i nie ma wartości. HTML5 wymusza '', aby mieć domyślny kolor, który jest czarny, potrzebuję aby miał wartość NULL, oznacza, że nie wybrano koloru. –
Zrozumiałeś teraz swoje pytanie. Odpowiednio zaktualizuję swoją odpowiedź. –