Den :required
pseudo klasse vælgeren i CSS giver forfattere til at vælge og stil enhver matchede element med required
attribut. Formularer kan let angive, hvilke felter der skal have gyldige data, inden formularen kan indsendes, men giver brugeren mulighed for at undgå ventetiden ved at have serveren til at være den eneste validator af brugerens input.
Lad os sige, at vi har et input med en attribut af type="name"
og gør det til et krævet input ved hjælp af den required
boolske attribut 1 :
Nu kan vi style dette input ved hjælp af :required
pseudo-klassevælgeren:
/* style all elements with a required attribute */ :required ( background: red; )
Vi kan også style krævede formularfelter ved hjælp af enkle vælgere samt sammenkæde yderligere pseudoklassevælgere:
/* style all input elements with a required attribute */ input:required ( box-shadow: 4px 4px 20px rgba(200, 0, 0, 0.85); ) /** * style input elements that have a required * attribute and a focus state */ input:required:focus ( border: 1px solid red; outline: none; ) /** * style input elements that have a required * attribute and a hover state */ input:required:hover ( opacity: 1; )
Demo
Se pennen: krævet styling af Chris Coyier (@chriscoyier) på CodePen.
Interessepunkter
Den required
egenskab behandles som en boolesk hvilket betyder at det ikke kræver en værdi. Ved blot at have required
et element kan browseren vide, at denne attribut eksisterer, og det tilsvarende input er faktisk et obligatorisk felt. Selvom den krævede attribut ifølge W3C-specifikationen også fungerer med en tom værdi eller en værdi med attributnavnet.
Den krævede attribut anmoder også om, at browseren bruger indbyggede infoudvidelser, såsom boblebeskeden, der er afbildet fra demoen.
For de input, der ikke er stylet ved hjælp af :required
, kan forfattere også tilpasse ikke-krævede elementer ved hjælp af :optional
pseudo-klassevælgeren sammen med, :invalid
og :valid
som udløses, når et formfelts datakrav er opfyldt.
Formularvalidering kan også komplimenteres sammen required
med pattern
attributten for at hjælpe med at filtrere data afhængigt af inputets type
attribut. Mønstre kan skrives som et regulært udtryk eller en streng. I eksemplet nedenfor bruger vi et regulært udtryk til at matche syntaksen for en e-mail-adresse.
Den :required
egenskab virker på radioknapper. Hvis du sætter påkrævet på en radioknap (eller alle), kræves den pågældende gruppe radioknapper. På afkrydsningsfelter gør hvert enkelt afkrydsningsfelt påkrævet (skal markeres).
Browsersupport
Denne browsersupportdata er fra Caniuse, som har flere detaljer. Et tal angiver, at browseren understøtter funktionen i den version og opefter.
Desktop
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
10 | 4 | 10 | 12 | 10.1 |
Mobil / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 4.4.3-4.4.4 | 10.3 |
1 Boolske attributter : Et antal attributter i HTML5 er boolske attributter. Tilstedeværelsen af en boolsk attribut på et element repræsenterer den sande værdi, og fraværet af attributten repræsenterer den falske værdi. Hvis attributten er til stede, skal dens værdi enten være den tomme streng eller en værdi, der er et store og små bogstav, der er ufølsomt for attributts kanoniske navn uden noget ledende eller efterfølgende mellemrum.