Format HTML5. Format në HTML5
Deri më tani kemi arritur të krijojmë disa versione interesante të faqes. Ne nuk kemi mbuluar ende formularët ku përdoruesit mund të fusin të dhëna. Formularët përdoren gjerësisht në të gjithë internetin: motorët e kërkimit si Google ose Bing, fushat e statusit në Facebook dhe redaktori i emailit në Gmail ju lejojnë të shkruani ose dërgoni informacion.
Le të bëjmë një formë të thjeshtë që do t'i lejojë përdoruesit të komentojnë artikullin tonë. Ne duam që forma të duket si imazhi i mëposhtëm:
Tani le të zgjedhim përbërësit individualë që përbëjnë formën. Ne do të përdorim të njëjtën theksim me ngjyra për elementët që kryejnë funksione të ngjashme.
Siç mund ta shihni, ngjyra blu tregon emrat ose përshkrimet e secilës fushë. Elementet jeshile tregojnë vendet ku mund të futni tekst me një rresht. Zona portokalli ju lejon të futni pjesë të gjata teksti dhe ngjyra vjollcë përdoret për butonin e paraqitjes së formularit. Ne do të përdorim të njëjtën etiketë për secilin grup.
Për emrat që përdorim
Ne duhet të përfshijmë një etiketë të përshtatshme që i thotë shfletuesit: "Hej, forma fillon këtu!" Kjo është shumë e ngjashme me etiketën
Tani duam të shtojmë përshkrimin e parë: "Emri juaj". Duke filluar nga këtu, ne do të shikojmë copat e kodit të përfshira në seksion
Këtu kemi një element
Më poshtë është se si duket fusha për këto lloje fushash.
Ju do të përdorni në kod për të treguar që përdoruesi mund të shkruajë tekst në këtë fushë. Ju lutemi vini re se fushat e tekstit mund të stilohen duke përdorur CSS. Ne mund të ndryshojmë kornizën, gjerësinë ose distancën midis tekstit dhe kufirit të kutisë së tekstit. Një shembull i përafërt është paraqitur më poshtë.
Atributi emri përdoret për të emërtuar secilën fushë. Kjo është e dobishme kur po dërgoni një formular në server, duke ju ndihmuar të përcaktoni se cila vlerë vjen nga cila fushë.
Vini re gjithashtu marrëdhënien midis vlerës së id dhe vlerës së atributit for in
Në atributin for duhet të përdorni ID-në e fushës përshkrimi i së cilës është
Le të bëjmë një formë tjetër, këtë herë për fushën e emailit.
I vetmi ndryshim është se atributi tip ka vlerën e emailit. Kuptimi i tij, natyrisht, është se përdoruesi mund të fusë emailin e tij. Ju lutemi vini re se ajo që është shkruar në fushën e emailit duhet të kontrollohet për t'u siguruar që adresa e emailit është e saktë. Nëse kjo është një adresë e pasaktë, shfletuesi do të shfaqë një mesazh gabimi dhe nuk do ta dorëzojë formularin.
Fusha tjetër për të shtuar është një hapësirë për komente. Për tekste të gjata ne përdorim etiketën
Vini re se kemi përdorur dy atribute të reja: rreshtat dhe kolonat. Atributi i rreshtave përdoret për të vendosur numrin e rreshtave të tekstit që mund të futen në një fushë përpara se të shfaqet një shirit lëvizës. cols përdoret për të përcaktuar numrin e karaktereve në çdo rresht. Provoni t'i ndryshoni vetë vlerat dhe shikoni se si e gjithë fusha zgjerohet ose tkurret në përputhje me rrethanat.
Gjëja e fundit që duhet të shtojmë është një buton për të dorëzuar formularin.
Elementi përmban një tipar tip të barabartë me dorëzimin. Ajo që shkruani në atributin e vlerës do të shfaqet si tekst në buton.
Nga autori: Duhet të dini për atributin tip në fushën e hyrjes. Ky atribut specifikon llojin e hyrjes së formularit që përdoruesi do të shohë. Nëse atributi hiqet, ose përdoret një vlerë e re në shfletuesin e vjetër, etiketa do të vazhdojë të funksionojë. Lloji i parazgjedhur do të vendoset në type="text". Kjo është pika kryesore që ju lejon të përdorni formularët HTML5 sot, edhe nëse mbështetni shfletues të vjetër. Nëse keni lloje të reja si emaili ose kërkimi, shfletuesit e vjetër do të shfaqin një fushë të thjeshtë teksti.
Formulari ynë i regjistrimit përdor 4 nga 10 llojet që të gjithë i njihni: kutia e kontrollit, teksti, fjalëkalimi dhe dërgoni. Më poshtë është një listë e plotë e llojeve të fushave hyrëse të disponueshme në HTML5:
Specifikimi HTML5 flet për 9 lloje shtesë, me të cilat mund të krijoni elementë specifikë të UI, si dhe të kryeni vërtetimin e të dhënave vendase:
HTML5.1 dhe WHATWG HTML Living Standard përfshijnë katër lloje të tjera të lidhura me datat, tre prej të cilave mbështeten mjaft mirë në shfletuesit modernë:
datatime (nuk mbështetet në asnjë shfletues)
Le të hedhim një vështrim më të afërt në çdo lloj të ri dhe të shohim se si mund të përdoren.
Kërko
Lloji i hyrjes së kërkimit (lloji = "kërkim") është një fushë kërkimi, një hyrje me një rresht për të futur një ose më shumë fraza kërkimi. Nga specifikimi:
"Dallimi midis një lloji teksti dhe një lloji kërkimi është thjesht stilistik: në platformat ku fushat e kërkimit ndryshojnë nga fushat e zakonshme të tekstit, lloji i kërkimit do të detyrojë hyrjen të përputhet me stilet e platformës."
Shumë shfletues stilojnë fushat e kërkimit që t'i ngjajnë shfletuesit ose blloqeve të kërkimit të sistemit operativ. Chrome, Safari, Opera dhe IE kanë shtuar një veçori për të fshirë tekstin duke klikuar në ikonën "x" që shfaqet sapo filloni të shkruani (shih Figurën 4.5). Chrome dhe Opera gjithashtu pastrojnë fushat e datës/kohës dhe IE11 shton një ikonë "x" pothuajse në të gjitha llojet, duke përfshirë tekstin.
Figura 4.5. Fusha e llojit të kërkimit është e stilizuar për t'u ngjan fushave të kërkimit të sistemit operativ
Në pajisjet e fushatës Apple, fushat e kërkimit kanë qoshe të rrumbullakosura si parazgjedhje në Chrome, Safari dhe Opera, gjë që kopjon pamjen e fushave të kërkimit në vetë sistemin operativ. Në tabletët me tastierë dinamike, butoni Go shfaqet si një ikonë kërkimi ose fjala "kërko". E gjitha varet nga pajisja. Nëse shtoni një atribut jo standard, një ikonë zmadhuese do të shfaqet në Chrome dhe Opera.
Ju ende mund të përdorni type=”text”, por lloji i ri i kërkimit është një çelës vizual për përdoruesit ku duhet të klikojnë për të gjetur sitin. Për më tepër, lloji i ri është shumë i ngjashëm me fushat standarde të kërkimit me të cilat janë mësuar përdoruesit. Nuk ka asnjë kërkim në faqen e HTML5 Herald, por mund të jetë diçka e tillë:
< form id = "search" method = "get" > < label for = "s" >Kërko< / label > < input type = "search" id = "s" name = "s" / > < input type = "submit" value = "Kërko" / > < / form > |
Në shfletuesit pa mbështetje, lloji i kërkimit shfaqet si një fushë e rregullt teksti, kështu që nuk ka arsye për të mos e përdorur atë aty ku është e përshtatshme.
Adresat e emailit
Jo çuditërisht, lloji i emailit (type = "email") përdoret për të vendosur një ose më shumë adresa emaili. Ai mbështet atributin e shumëfishtë Boolean, i cili ju lejon të specifikoni adresa të shumta të ndara me presje (me një hapësirë).
Le të ndryshojmë formën tonë, të vendosim type=”email” në fushat e emailit:
< label for = "email" >Adresa e e-mail-it tim është< / label > < input type = "email" id = "email" name = "email" / > |
Nëse ndryshoni llojin nga teksti në email, nuk do të ketë ndryshime vizuale. Hyrja ende duket si një fushë e rregullt teksti. Megjithatë, ato janë të ndryshme.
Ndryshimet mund të shihen në pajisjen me prekje. Kur fusha e emailit merr fokus, shumica e pajisjeve me prekje (si p.sh. një telefon iPad ose Android me Chromium) do të shfaqin një tastierë të optimizuar për të futur një adresë emaili. Tastiera do të shfaqë simbolin @, pikën, hapësirën, por pa presje, siç tregohet në figurën 4.6.
Figura 4.6. Fusha e llojit të postës elektronike me tastierë të personalizuar në pajisjen iOS
Në shfletuesit Firefox, Chrome, Opera dhe Internet Explorer 10, nëse futni një email gabimisht, shfaqet një mesazh gabimi. Kjo ndodh kur përpiqeni të dërgoni një formular me tekst që nuk njihet si një ose më shumë adresa. Mesazhi standard i gabimit është paraqitur në figurën 4.7.
Figura 4.7. mesazh gabimi për futjen e gabuar të një adrese emaili në shfletuesit Opera (majtas) dhe Firefox (djathtas).
Shënim: Mesazhet e verifikimit të personalizuar
Nuk ju pëlqen mesazhi standard i gabimit të shfletuesit? Vendosni tuajën duke përdorur .setCustomValidity(errorMsg). SetCustomValidity merr vetëm një parametër - një mesazh gabimi. Nëse keni vendosur mesazhin tuaj të verifikimit, atëherë pas futjes së saktë duhet të pastroni rreshtin me mesazhin (vlera është false) në mënyrë që formulari të dorëzohet:
funksioni setErrorMessages(formControl) ( var validityState_object = formControl.validity; if (validityState_object.valueMissing) (formControl.setCustomValidity("Ju lutemi caktoni një moshë (kërkohet)"); ) tjetër nëse (validityState_object). \"je shumë i ri" ) përndryshe nëse (validityState_object.rangeOverflow) (formControl.setCustomValidity("Ti \"je shumë i vjetër"); ) përndryshe nëse (validityState_object.stepMismatch) (formControl.setCustomValidity("Po numëron ditëlindjet e gjysmë?" ) else ( //nëse hyrja është e vlefshme, duhet të jetë false, ose do të ketë një gabim formControl.setCustomValidity(""); )
grupi i funksionit Mesazhet e gabimit (formControl) ( var validityState_object = formControl . vlefshmëria ; nëse (validityState_object . vleraMungon) ( formControl. setCustomValidity( "Ju lutemi vendosni një moshë (kërkohet)") ; ) else if (validityState_object . rangeUnderflow ) ( formControl. setCustomValidity ("Ti \"je shumë i ri"); ) else if (validityState_object . rangeOverflow ) ( formControl. setCustomValidity ("Ti \"je shumë i vjetër"); ) else if (validityState_object . stepMismatch ) ( Format Format HTML janë kontrolle të thjeshta HTML që përdoren për të mbledhur informacion nga vizitorët e faqes në internet. Këto përfshijnë fusha teksti për futjen e të dhënave nga tastiera, listat për zgjedhjen e të dhënave të paracaktuara, kutitë e kontrollit për vendosjen e parametrave, etj. Ka mënyra të panumërta për të përdorur formularët HTML dhe nëse keni shfletuar internetin për vetëm disa ditë, atëherë pa dyshim , i përdori ato për qëllime të ndryshme - nga regjistrimi në një forum ose marrja e një kuti postare deri te shikimi i kursit të këmbimit ose blerja e mallrave në një dyqan online. Format HTML kanë ekzistuar që në ditët më të hershme të gjuhës HTML dhe ato nuk kanë ndryshuar pak që atëherë, pavarësisht nga disa përpjekje serioze. Zhvilluesit e standardeve të uebit kanë punuar për standardin për disa vite. XFormat, i cili supozohej të zëvendësonte format HTML, por dështoi në të njëjtën mënyrë si standardi XHTML 2. Ndërsa standardi XForms lejonte që disa probleme të zgjidheshin lehtësisht dhe elegante, ai gjithashtu kishte të meta të rëndësishme. Për shembull, kodi XForms ishte shumë voluminoz dhe puna me të kërkonte një njohuri të mirë të standardit XML. Por pengesa më e madhe ishte se standardi XForms nuk ishte i pajtueshëm me format HTML në asnjë mënyrë. Kjo do të thoshte që zhvilluesit do të duhej të zhyten në ujërat e paeksploruara të modelit të ri pa asnjë pajisje ndihmëse flotacioni, por vetëm me besim të verbër dhe guxim të madh. Por për shkak se zhvilluesit kryesorë të shfletuesve nuk u mërzitën kurrë të zbatonin XForms në produktet e tyre për shkak të kompleksitetit dhe përdorimit të ulët të tij, komuniteti i zhvillimit të uebit nuk bëri kurrë hap. Standardi HTML5 ka një qasje të ndryshme. Në vend që të fillojë nga e para si XForms, ai përmirëson modelin ekzistues të formës HTML. Kjo do të thotë që format HTML5 mund të funksionojnë në shfletues të vjetër, vetëm pa këmbanat dhe bilbilat e reja. Format HTML5 ju lejojnë gjithashtu të përfitoni nga veçoritë e reja që zhvilluesit po përdorin tashmë sot. Këto aftësi janë më të arritshme dhe nuk kërkojnë shkrimin e faqeve të JavaScript ose përdorimin e mjeteve JavaScript të palëve të treta. Çfarë është forma?Ka shumë mundësi që të keni punuar më parë me forma. Por nëse jo, ose e keni harruar shumë këtë temë, materiali i mëposhtëm do t'ju lejojë të merrni informacionin e nevojshëm për një studim më të thelluar të kësaj fushe të dizajnit të uebit. Forma e internetitështë një grup fushash teksti, listash, butonash dhe kontrollesh të tjera të aktivizuara me klikime përmes të cilave një vizitor i faqes mund të sigurojë një ose një lloj tjetër informacioni. Formularët janë kudo në internet - falë formularëve, ne mund të krijojmë llogari të postës elektronike, të shfletojmë dhe blejmë produkte nga dyqanet online, të bëjmë transaksione financiare dhe shumë më tepër. Forma më e thjeshtë është fusha e vetme e tekstit të motorëve të kërkimit si Google: Të gjitha format bazë të uebit funksionojnë në të njëjtën mënyrë. Përdoruesi fut informacione të caktuara dhe më pas klikon një buton për të dërguar informacionin e futur në serverin e internetit. Pas mbërritjes në serverin e internetit, ky informacion përpunohet nga një aplikacion, i cili më pas ndërmerr hapin e duhur tjetër. Përpara se të dërgojë faqen e re përsëri në shfletues, programi i serverit mund të hyjë në bazën e të dhënave për të marrë ose ruajtur informacionin. Kompleksiteti i këtij procesi është se ka qindra mënyra të ndryshme për të zbatuar një aplikacion serveri që përpunon të dhënat e marra nga formulari. Disa zhvillues mund të jenë të kënaqur me skriptet rudimentare për të manipuluar të dhënat që rezultojnë, ndërsa të tjerë mund të përdorin mjete të nivelit më të lartë që paketojnë të dhënat e formës në objekte të rregullta programi. Por në çdo rast, detyra para këtyre aplikacioneve është, në përgjithësi, e njëjtë - të ekzaminoni të dhënat nga formulari, të kryeni disa veprime me të dhe më pas, bazuar në rezultatet e marra, të dërgoni një faqe të re në shfletues. Modernizimi i një Forme HTML TradicionaleMënyra më e mirë për të mësuar format HTML5 është të merrni një formë tipike moderne dhe ta përmirësoni atë. Më poshtë është një formë që do ta përdorim si shembull. Shënimi i kësaj forme është jashtëzakonisht i thjeshtë. Nëse keni punuar me formularë më parë, nuk do të shihni asgjë të re këtu. Para së gjithash, i gjithë kodi i formës përmbahet në element Ju lutemi plotësoni formularin. Fushat e kërkuara janë shënuar* Shtoni disa stilime CSS: Trupi ( font-familja: "Palatino Linotype", serif; gjerësia maksimale: 600 px; mbushja: 0px 30px; ) h1 ( margin-fund: 0px; ) p ( margin-lart: 0px; ) grup fushash (margin-fund: 15x mbushje: 10 px; ) em ( pesha e shkronjave: bold; stili i shkronjave: normale; ngjyra: #f00; ) futja: fokusi ( sfondi: #eaeaea; ) hyrja, zona e tekstit ( gjerësia: 249 px; ) zona e tekstit ( lartësia: 100 px; ) zgjidhni ( gjerësia : 254 px; ) hyrje (gjerësia: 10 px; ) hyrje (gjerësia: 170 px; mbushje: 10 px;) Dhe këtu është rezultati: Si me të gjitha format, shumica e punës në shembullin tonë është bërë nga elementi universal , i cili mbledh të dhëna dhe krijon kutitë e kontrollit, butonat e radios dhe listat. Për të futur një rresht teksti, përdorni elementin , dhe për disa - elementi ; element
Një nga kufizimet e formave HTML është se zhvilluesi nuk ka kontroll mbi mënyrën se si shfletuesi i jep kontrollet e formularit. Për shembull, nëse doni të zëvendësoni një kuti kontrolli gri të shurdhër me një kuti të madhe bardh e zi me një shenjë të kuqe të theksuar, nuk do të mund ta bëni. (Një zgjidhje për këtë problem është përdorimi i JavaScript për të krijuar një element me sjellje të ngjashme me kutinë e kontrollit, me fjalë të tjera, elementi ndryshon pamjen e tij kur klikohet.) Ky kufizim vazhdon në HTML5 dhe zbatohet për të gjitha kontrollet e reja që do të shikojmë. Kjo do të thotë se formularët nuk janë të përshtatshëm për zhvilluesit që duan kontroll të plotë mbi pamjen e faqeve të tyre në përgjithësi dhe kërkojnë kontrolle të personalizuara në veçanti. Tani që kemi një formë për të punuar, është koha për ta përmirësuar atë me HTML5. Ne do ta fillojmë këtë në seksionet e ardhshme duke shtuar tekstin e shkronjës së udhëzimit të mjetit dhe një fushë të fokusimit automatik. Shtimi i këshillave të veglaveNë mënyrë tipike, fushat e reja të formularit nuk përmbajnë asnjë të dhënë. Për disa përdorues, ky formular mund të mos jetë plotësisht i qartë, në veçanti, çfarë informacioni duhet të futet në një fushë specifike. Prandaj, shpesh fushat e formularit përmbajnë një shembull të të dhënave që duhet të futen në to. Ky tekst i shkronjave të ngurta quhet gjithashtu "shenjë uji" sepse shpesh shfaqet me një font gri të çelur për ta dalluar atë nga përmbajtja reale, e shtypur. Një shembull i një teksti të tillë të karakterit të egër është paraqitur në figurë: Në krye, kur fusha është bosh, ajo shfaq tekstin e shkronjave të ngurta. Më poshtë, kur përdoruesi klikon në fushë (duke i dhënë fokusin), teksti i shkronjës zhduket. Nëse përdoruesi kalon në një fushë tjetër pa futur asgjë në të parën, atëherë fusha përsëri mbushet me tekst të shkronjave. Teksti i karakterit të egër për një fushë krijohet duke përdorur atributin vendmbajtes: ... Shfletuesit që nuk mbështesin tekstin e shkronjave të ngurta thjesht nuk i kushtojnë vëmendje atributit të mbajtësit të vendndodhjes; Internet Explorer është veçanërisht fajtor për këtë. Për fat të mirë, ky nuk është një problem aq i madh, sepse... Teksti i shkronjave të egra është thjesht një prekje e këndshme dhe nuk kërkohet që forma të funksionojë. Aktualisht nuk ka asnjë mënyrë standarde dhe të qëndrueshme për të ndryshuar pamjen e tekstit të shkronjave të egra, si p.sh. kursive ose një font specifik ngjyrash. Me kalimin e kohës, zhvilluesit e shfletuesit do të krijojnë mbajtësit e kërkuar për këtë. Por tani për tani, ju ose duhet të përdorni pseudo-klasa CSS specifike të shfletuesit (domethënë -webkit-input-placeholder Dhe -moz-vendmbajtësi), ose pajtohuni me këtë rend të gjërave. Pseudo-klasa e fokusit, megjithatë, ofron mbështetje më të mirë dhe mund të përdoret për të ndryshuar pamjen e një fushe teksti kur merr fokus. Për shembull, ju mund ta bëni sfondin e një fushe më të errët në mënyrë që të dallohet nga pjesa tjetër: Hyrja: fokus ( sfond: #eaeaea; ) FokusimiMeqenëse formulari është krijuar për t'ju lejuar të futni informacione, gjëja e parë që përdoruesit do të duan të bëjnë pasi ta ngarkojnë atë është futja e atij informacioni. Fatkeqësisht, ata nuk do të mund ta bëjnë këtë derisa të klikojnë në fushën e parë ose ta zgjedhin atë duke përdorur çelësin Përdoruesi mund të ndihmohet në këtë duke vendosur fokusin në fushën e dëshiruar fillestare automatikisht. Kjo mund të bëhet duke përdorur JavaScript duke thirrur metodën fokus() të elementit të dëshiruar . Por kjo qasje kërkon një linjë shtesë kodi dhe ndonjëherë mund të shkaktojë mospërputhje të bezdisshme. Për shembull, përdoruesit veçanërisht të shkathët mund të parandalojnë një thirrje në metodën fokus(), të klikojnë në një fushë tjetër dhe të fillojnë të shkruajnë në të, dhe kur metoda të thirret përfundimisht, përdoruesi do të largohet në mënyrë të vrazhdë nga fusha që ka zgjedhur dhe në fushën e zgjedhur nga metoda. Por nëse shfletuesi mund të kontrollojë fokusin, ai mund të jetë pak më i zgjuar dhe të lëvizë fokusin vetëm nëse përdoruesi nuk ka zgjedhur tashmë një fushë tjetër. Atributi i ri HTML5 bazohet në këtë ide fokusim automatik, i cili mund të futet në një element ose
Niveli i mbështetjes së shfletuesit për atributin e fokusimit automatik është pothuajse i njëjtë me atributin mbajtës të vendndodhjes, që do të thotë se pothuajse të gjithë shfletuesit e mbështesin atë përveç Internet Explorer. Por përsëri, ky problem zgjidhet lehtësisht. Ju mund të kontrolloni nëse një shfletues specifik mbështet atributin e fokusimit automatik duke përdorur mjetin Modernizr (të cilin e diskutuam në artikullin "Mbështetja e shfletuesit për HTML5") dhe, nëse është e nevojshme, ekzekutoni kodin tuaj të fokusimit automatik. Një formular HTML është një pjesë e një dokumenti që lejon përdoruesin të fusë informacionin me interes, i cili më pas mund të pranohet dhe përpunohet nga ana e serverit. Me fjalë të tjera, formularët përdoren për të mbledhur informacionin e futur nga përdoruesit. Për të përcaktuar se cilit element forme i përket etiketa aktuale, duhet të përdorni atributin for të etiketës Le të shohim një shembull përdorimi: Në këtë shembull ne:
Në shfletues, të dy opsionet (metodat) për përdorimin e etiketave të tekstit duken identike: Këshillë mjeti për fushat e hyrjesLe të shohim një shembull përdorimi: Fjalëkalimi: lloji = "fjalëkalimi" emri = "fjalëkalimi" vendmbajtës = "Fut fjalëkalimin tuaj"> Në këtë shembull, ne specifikuam për elementin me llojin e tekstit (një fushë teksti me një rresht) dhe llojin e fjalëkalimit (fushën e fjalëkalimit), një sugjerim teksti për përdoruesin (atributi mbajtës i vendndodhjes) që përshkruan vlerën e pritur për hyrjen. Rezultati i shembullit tonë: Pyetje dhe detyra mbi temënPërpara se të kaloni në temën tjetër, plotësoni detyrën praktike:
Një nuancë: në fushat ku pritet përzgjedhja, duhet të jetë e mundur të zgjidhet duke klikuar në tekst, dhe jo vetëm në vetë elementin. Pasi të keni përfunduar ushtrimin, inspektoni kodin e faqes duke hapur shembullin në një dritare të veçantë për t'u siguruar që keni bërë gjithçka në mënyrë korrekte. Të njohura në kategorinë:
|