Ak existuje zástupný text vo vstupe formulára, :placeholder-shown
pseudotrieda vyberie samotný vstupný prvok . Považujte to za pekný spôsob rozlíšenia medzi vstupmi, ktoré v súčasnosti zobrazujú zástupný text, a vstupmi, ktoré nie sú.
input:placeholder-shown ( border: 5px solid red; )
Myšlienka zástupných znakov
Na základe textu a
vstupu môže byť zástupný text. Je to text, ktorý sa zobrazuje, keď je vstup prázdny, aby naznačil možnú hodnotu. Napríklad formulár s požiadavkou na školu môže mať štítok s požiadavkou, ale ako zástupná hodnota potom navrhnúť „zástupnú strednú školu Forest Hills“ ako zástupnú hodnotu:
School Name:
Rozdiel medzi :placeholder-shown
a::placeholder
:placeholder-shown
slúži na výber samotného vstupu, keď sa zobrazuje zástupný text. Na rozdiel od toho, ::placeholder
ktoré štýly má zástupný text.
Tu je diagram:


Považoval som to za veľmi mätúce ako:
- špecifikácie iba majú
:placeholder-shown
a nie::placeholder
:placeholder-shown
môže stále ovplyvniť štýl zástupného textu, pretože je to nadradený prvok (napr. veľkosť písma).
Všimnite si, že :placeholder-shown
je pseudo trieda (je to element v určitom stave) a ::placeholder
je pseudo prvok (viditeľná vec, ktorá nie je v skutočnosti v DOM). Rozlišiteľné dvojtečkami jednoduché verzus dvojité.
Tab Atkins mi to objasnil prostredníctvom e-mailu:
:placeholder-shown
, keďže je pseudotriedou, musí vybrať existujúci prvok. Vyberá vstup vždy, keď ste v stave zobrazujúcom zástupné symboly.::placeholder
Pseudo-element zábaly skutočný zástupný text.
Ak potrebujete upraviť štýl zástupného textu
Použite ::placeholder
(v skutočnosti preňho použite všetky predvoľby šialených dodávateľov), ktoré sme tu podrobne opísali v Almanachu.
Viac informácií
- Selektory úrovne 4 Spec
Podpora prehľadávača
Údaje o podpore tohto prehľadávača sú od spoločnosti Caniuse, ktorá obsahuje viac podrobností. Číslo označuje, že prehliadač podporuje túto funkciu v danej verzii alebo vyššej.
Desktop
Chrome | Firefox | IE | Hrana | Safari |
---|---|---|---|---|
47 | 51 | 11 * | 79 | 9 |
Mobil / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9.0-9.2 |