Sprawdź te dwa fiddle w przeglądarce Firefox lub Chrome. Po jednym, mam prosty formularz z atrybutem required
i przyciskiem submit
. Naciśnięcie przycisku "prześlij", gdy pudełko jest puste, powoduje, że jest on oznaczony jako invalid
(w przeglądarce Firefox - czerwony kontur). Czeka jednak, aż wciśniesz przycisk przesyłania, aby pokazać, że jest on nieprawidłowy.dane wejściowe: nieprawidłowa reguła css jest stosowana przy ładowaniu strony.
Teraz spróbuj this jeden. Jest identyczny z tym, że istnieje jakiś css:
input:invalid{
border-color:orange
}
Poza tym czasie kolor pomarańczowy granica jest stosowana nawet przed submit jest wciśnięty. Więc jeśli i tylko jeśli ręcznie ustawisz styl dla formularza, przeglądarka zastosuje go wcześniej, co nie jest intuicyjne. Oczywiście wymagane pole będzie nieprawidłowe przed wpisaniem czegokolwiek.
Czy istnieje sposób, aby to naprawić?
Według [MDN Docs] (https://developer.mozilla.org/en-US/docs/Web/CSS/:invalid#HTML_Content) dla pseudo-klasy ': invalid' wygląda na to, że jest działa jak specyfikacja nakreśla go do działania. – War10ck