at skabe venligere "små" webformularer

skabe venligere "små" webformularer,,,,,,, webformularer, konstant er et varmt emne, når det kommer til web - design og interaktion med brugeren.årsagerne til dette er store, men en af de mere oplagte grunde er, at den er den mest grundlæggende måde, at brugeren information i deres ansøgning.i denne artikel, vil vi diskutere nogle teknikker, der gør det muligt at imødekomme deres formularer til brugerens input og bidrager til at tilsløre unødigt forvirrende eller overvældende elementer. lad os komme i gang!,, former er samtaler, forestil dig en form som en samtale, de har med din bruger.i en samtale, der er en følelse af, frem og tilbage, som opstår, hvis hver af parterne giver den anden part til at reagere.for eksempel, lad os sige, at din bruger kommer til enten at underskrive eller tegn på.i begge tilfælde, har du brug for deres e - mail, så conversationally, hvorfor så ikke begynde med det?,,, giv mig din e - mail, og jeg vil se, om du har en konto.hvis jeg spørger dig om dit kodeord, ellers vil jeg lade dig give mig et nyt kodeord og så bekræfte, at kodeord med mig.,,, når brugeren ankommer til side i den form, de har en meget klar og hurtig: "hvad er din e - mail adresse?",, irriterende fyr til festen, ved vi alle, at fyr.han er den fyr, som du ikke fordi han taler uafbrudt, og virker ikke til at lytte til, hvad de har at sige.helt ærligt, den fyr er virkelig overvældende, og jeg er ikke sikker på, at nogen er det.vær nu ikke sådan., i dine papirer, lære af ham.i stedet for at konfrontere din bruger med et stort antal input, overveje at mindske brugernes input arbejdsbyrde ved at skabe reaktive materialer,.,, lad os se på et enkelt eksempel.,, login form, login proces ser omtrent sådan: jeg ind i min e - mail - adresse, så jeg går ind i mit password, så jeg tryk enter.i dette eksempel, vil du lære at vise hver af disse områder efter det foregående felt er fuldstændige, med html og ccs.vi skal bygge det, og så en modificeret version.,, lad os starte med en første skud i tillægget.,, < form metode = "post" > < input type = "e - mail" navn = "e - mail" krævede > < input type = "kodeord" indikation af en art = "kodeord" krævede > < input type = "stille" > < /form >,, hvis det ser lidt skræmmende, bare rolig, jeg skal nok forklare hvert stykke.lad os starte med den e - mail - input.vi ser et par attributter til rfid - ud over bare navnet.for det første bidrag type er sat til "e - mail". dette er en forholdsvis ny type input, som giver os nogle specielle opførsel i støtte - browsere.for eksempel på iphone, "@" symbol vil dukke op på det primære tastatur.,, en anden del af input - typer, er, at html5 former har browser niveau validering evner.det betyder, at du behøver ikke skrive javascript at udføre validering om grundlæggende form elementer.bemærker, at vi har et "behov" attribut, både på e - mail og kodeord elementer.når disse to elementer er udfyldt, og deres værdier betragtes som gyldige af browser, du kan ramme dem med,: gyldig pseudo - vælgeren.,, regex jord, det er fantastisk, men vi kan gøre det bedre.f.eks. browser accepterer "en @ b" som en acceptabel e - mail.årsagen til dette er, at en e - mail adresse kan være nedsat til at gå til noget som "noget @ localhost".kodeordet er noget, vi kommer ind, så en enkelt karakter kodeord som "a", anses for at være gyldig.lad os tilføje nogle regelmæssige udtryk til at ordne disse problemer.,, at alt dette sammen, kan vi se, at denne talemåde siger, at en e - mail er en række tegn, bortset fra en @ tegn, efterfulgt af en @ tegn efterfulgt af en række tegn, bortset fra en @ tegn efterfulgt af en periode efterfulgt af kl. mindst to breve.,, vi kan anvende en meget enklere regex, hvis vi vil kun godkende baseret på længden af værdi:,, mønster = ". (5)",,,., betyder "art", og (5), siger, at der skal være mindst fem af dem, med disse mønstre på plads, element, ikke anses for at være gyldig, indtil en værdi, der opfylder mønster er opført, finder vi ud af avancen med nogle ekstra polske og lidt flere ikke - form elementer.,, < forbindelse href = http://fonts.googleapis.com/css?family=Varela+Round’ rel=’stylesheet’ type=’text/css’> <div class="login"> <h3>Log In</h3> <form action="." method="post"> <input type="email" placeholder="Your Email" pattern="[^ @]*@[^ @]*\\.[^ @]{2,}" required /> <input type="password" placeholder="Password..." required pattern=".{5,}" /> <input type="submit" /> </form> </div>, ,Some ,:valid, CSS Magic, ,Now that we have some markup for our login form, let’s see what we can do with CSS to respond to the user’s input., ,We want to show the next form element when the current one is valid. lad os begynde med at skjule form elementer, selv i en tilgængelig, således at skærm læsere vil stadig se den fuldstændige form, og så autocomplete vil være i stand til at udfylde de værdier.- chris coyier taler om, hvorfor ikke bruge display: ingen af disse ting her. vi vil bruge den, visuallyhidden, metode, der er beskrevet i chris' post.,,. visuallyhidden {holdning: absolut; overløb: skjulte; clips: direkte (0 0 0 0) 1px; bredde, højde: - 1px; margen: - 1px; polstring: 0; grænse: 0}, begynder vi med nogle grundlæggende styles.,, organ {baggrund farve:𻷽 skrifttype familie: "varela - runde «, uden serif;} h3 (farve:ȫ skriftstørrelsen: 2em; tekst, ændre: store; brev afstand:. 3em;} login (bredde: 300px; margen: 50px auto; baggrund:&#f5f9fa; polstring: 50px; grænseoverskridende radius: 8px; tekst tilpasse: center;} bidrag [type = kodeord] bidrag [type = e - mail] (bredde: 100%.grænse: 1px fast&#ccc; polstring: 8px; rubrik størrelsessortering: grænse boks} bidrag [type = kodeord]: fokus, input [type = e - mail: fokusere {grænse: 1px fast͸ udkast: ingen;} bidrag [type = indgive] {baggrund farve:&#f29e1e; bredde: 50% grænse: ingen; polstring: 8px; rubrik størrelsessortering: grænse boks; farve:&#fff; skrifttype familie: "varela - runden" skriftstørrelse: 1em; tekst omdanne: store;} bidrag [type = indgive]: den {baggrund farve:&#db8f2a; markør: pointer.} input (margen: 6px 0},,,,,, det giver os en enkelt samlet login form.lad os tage det visuelt skjult koncept og anvende det på de elementer, som vi ønsker at skjule.,, input [type = kodeord] bidrag [type = indgive] {overløb: skjulte; clips: direkte (0 0 0 0), højde: 1px; bredde: 1px; margen: - 1px; polstring: 0; grænse: 0; uklarhed: 0; overgangen: uklarhed 0.4s, højde, 4s, polstring top. 4s, fyld bunden. 4s.},,,,,, vi skal udføre en informationskampagne, så vi har udvidet klasse lidt til også at omfatte opacitet, fjernes den absolutte placering, og tilføjede overgangen definition.,,, note: vi er ikke herunder sælgeren præfikser for overgangen, men du skal!,, lad os vise dem, når de skal vises ved hjælp af: gyldig pseudo - komitéen og +, søskende vælgeren.,, input [type = e - mail: gyldig + bidrag [type = kodeord] {uklarhed: 1. position: relativ, højde: 30px; bredde: 100%. klip: ingen; margen: 12px auto; grænse: 1px fast&#ccc; polstring: 8px;} bidrag [type = kodeord]: gyldig + bidrag [type = indgive] {uklarhed: 1. position: relativ, højde: 40px; bredde: 50%; clips: ingen; margen: 12px auto; polstring - 8px;},,,,,, en note om bedste praksis, er det vigtigt at overveje brugerens mål og forventninger i en web - form.nogle gange er det en tilstrækkelig løsning helt at skjule input fra brugeren.men i nogle tilfælde kan det have en negativ virkning, som brugeren til at føle det, som om de ikke er en klar køreplan for processen med at udfylde form, og at det kan tage længere tid, end de er rede til at give op. en løsning ville være at anvende en slags solskærm uden fuldstændig skjuler de råmaterialer, der kan hjælpe med at skabe en udførlig tilbagemelding tilgang til former, der har et klart mål og forholdsvis forudsigelige forventninger.her er en modificeret version, der bruger mere, webkit er tåget filter, uigennemsigtighed og pointer begivenheder: ingen, at "her" input til brugeren, efterhånden som de foreligger.vi er også nødt til at sikre, at pilen begivenheder er genoprettet, når input til rådighed, så brugeren kan klikke ind på dem.,,,,, se på den demo, organ {baggrund farve:𻷽 skrifttype familie: "varela - runde «, uden serif;} h3 (farve:ȫ skriftstørrelsen: 2em; tekst omdanne: store; brev afstand:. 3em;} login (bredde: 300px; margen: 50px auto; baggrund:&#f5f9fa; polstring: 50px; grænseoverskridende radius: 8px; tekst tilpasse: center;} bidrag [type = kodeord] bidrag [type = e - mail -] (bredde: 100% grænse: 1px fast&#ccc; polstring: 8px; rubrik størrelsessortering: grænse boks} bidrag [type = kodeord]: fokus, input [type = e - mail: fokusere {grænse: 1px fast͸ udkast: ingen;} bidrag [type =indgive] {baggrund farve:&#f29e1e; bredde: 50% grænse: ingen; polstring: 8px; rubrik størrelsessortering: grænse boks; farve:&#fff; skrifttype familie: "varela - runden" skriftstørrelse: 1em; tekst omdanne: store;} bidrag [type = indgive]: den {baggrund farve:&#db8f2a; markør: pointer.} input (margen: 6px 0} bidrag [type = kodeord] bidrag [type = indgive] {- webkit filter: sløret (1px) og omdanne: skala (0,9); uklarhed:. 4; overgang. 4s; pointer begivenheder: ingen;} input [type = kodeord]: gyldig + bidrag [type = indgive] bidrag [type = e - mail: gyldig + bidrag [type = kodeord] {pointer begivenheder: auto - webkit filter: ingen og omdanne: skala (1); uklarhed: 1), en hurtig insekt påpege: brugeren trykker regning.de vil gå ind i det næste form element.vi forhindrer, at klikke ind i det næste form element med pointer begivenheder: ingen, men der er ikke en "focusable" attribut i ccs.i stedet vil vi nødt til at kontrollere denne opførsel med et strejf af javascript (jquery smag).,, var input = $("bidrag"); $(dokument). ("keypress", "bidrag", function() (input. hver (funktion (el) {var $el = $(el); hvis ($el. (": gyldig") ($el. næste ("bidrag") [0]. handicappede = falske} andre {$el. næste ("bidrag") [0]. handicappede = sandt.}})}),,, denne form javascript ser vores input og deaktiverer /giver input baseret på deres tidligere søskende er ": gyldig" stat.dette vil hindre os i at element.den viser begivenheder: ingen fungerer stadig at holde vores forelægge input fra at modtage den stat.,, andre anvendelser, forestille sig en form, som har flere "spor", som i "noter eller tegn på" f.eks.brugeren kan vælge flere muligheder, som ville nødvendiggøre en ny udvælgelse af form elementer, f.eks. udvælgelse af en medlemsstat for skibsfart eller en gang interval for en reservation.i disse tilfælde simpelt validering kan ikke være nok, og i stedet vil vi anvende en javascript drevet løsning. lad os tage, f.eks. "log i" versus "skilt" f.eks.To solve this, we must ask the server if there is a user that matches the provided email login., ,<form action=""> <input type="email"> <input name="login_password" type="password"> <input name="signup_password" type="password"> <input name="signup_password_confirm" type="password"> </form>, ,var timeout; $(document).on("keyup", "input[type=email]" function(){ clearTimeout(timeout); var input = $(this); timeout = setTimeout(function(){ if (input.is(":valid")){ var email = input.val(); $.getJSON("/check_for_user", {email : email}, function(data){ if (data.user_exists){ input.parents("form").attr("foranstaltninger", "/login") input. addclass ("user_exists"); $("bidrag [type = kodeord"). filter ("[navn] * ='login"). hver (funktion (el) (el.required = sandt.}) andet (input. forældre (""). attr ("foranstaltninger", "/sign_up") input. addclass ("user_not_exists"); $("bidrag [type = kodeord"). filter ("[navn] * ='signup"). hver (funktion (el) (el.required = sandt;)))))))), i ovennævnte javascript, sender vi den e - mail - adresse - - på "/check_for_user" url.- ville vende tilbage med et simpelt json reaktion, der svarer til følgende.,, callback ((user_exists: sande}), på grundlag af denne værdi, tilføjer vi en klasse på input, og ændre endepunkt for form.- satte vi også de relevante koder, der kræves.vi kunne så bruge css på en række forskellige måder til at definere, hvad der sker.for eksempel, vi kunne bruge en lignende tilgang i forhold til tidligere at vise eller skjule input.,, hvis du melder sig til en ny konto, er vi nødt til at vise signup kodeord område (snarere end login password - området).for at gøre det, vi vil bruge, ~, vælgeren, som er almindelige i komitéen for søskende, og giver os mulighed for at "hop" over irrelevante søskende elementer.,, input = "[navn signup_password"] {/* visuelt skjult styles her * /} bidrag [type = e - mail]. user_not_exists: gyldig - input = "signup_password [navn] {*" "synlig" stil her * /} bidrag [type = e - mail]. user_exists: gyldig - input = "login_password [navn] {*" "synlig" stil her * /), fallbacks, når vi presser nye teknikker i undtagen til udvikling, er de ikke kommer til at arbejde hele tiden, i alle browsere.godt, det er meget nemt at håndtere et godt alternativ i denne situation.vi er dækket i de fleste browsere, men denne udvælgelse er desværre ikke omfatter programmerbare 7 eller androide.for ikke at støtte browsere, vil vi blot falder tilbage til misligholdelse form opførsel.,, til at gøre det, vi har brug for modernizr at påvise, hvorvidt browser støtter validering af form elementer.det er bedste praksis at anvende modernizr for denne type feature detection, men vi kan også skrive en hurtig funktion for nu.modernizr "non - core opdager" omfatte en mulighed for at "former validering", så du bliver nødt til at bygge en skik at downloade.når du har gjort det, at støtte, der vil blive givet browsere klassen, form, validering, om, html element.du kan ramme det, formvalidation, klasse for at øge den form for støtte - browsere.,,. formvalidation bidrag [type = kodeord]. formvalidation bidrag [type = indgive] {* gemme eller skjule deres input og frakoble pointer begivenheder her * /}, da: gyldige, og: ugyldig, pseudo - elementer kan kun arbejde i forbindelse med browsere css, der skjuler de råmaterialer, er den eneste css, skal vi bruge gradvis forbedring.input vil handle med manglende funktion i ikke - støtte - browsere.,, det er det!,, du nu har nogle fede måder at tage deres blanketter til et nyt niveau af interaktive samtale modellering med deres brugere.hvad andre magtfulde ting har du forestillet mig med,: gyldige, og: ugyldig, pseudo - klasser?at tale om det i bemærkningerne.,

conversational-form-base-all
conversational-form-base
conversational-form-animation-all
conversational-form-animation-modified



Previous:
Next Page: