HTML űrlapok készítése. HTML űrlapok Melyik bejelentkezési oldal stílusát válassza
Útmutató a váltási bejelentkezési és regisztrációs űrlap létrehozásához HTML5 és CSS3 használatával.
Ebben az oktatóanyagban két HTML5-űrlapot fogunk létrehozni, amelyek a CSS3 pszeudoosztály :target használatával váltanak a bejelentkezés és a regisztráció között. A stílust CSS3-mal és egy ikon betűtípussal fogjuk elkészíteni. Ennek a demónak az ötlete az, hogy megmutassa a felhasználónak a bejelentkezési űrlapot, és adjon meg egy linket a regisztrációs űrlapra való „váltáshoz”.
Ne feledje, hogy ez csak demó jellegű, csak a:target pszeudoosztályt támogató böngészőben működik, és ne használja ezt a kódot élő webhelyen anélkül, hogy szilárd tartalékot biztosítana.
A következőkben az 1. demót nézzük meg.
A HTML
A HTML-ben mindkét űrlapot elhelyezzük, a másodikat elrejtjük CSS-sel. Itt a kód, később elmagyarázok néhány érdekes részt.
Hozzáadtunk néhány HTML5 jót, és használtunk néhány új bemenetet. A bemenet type=password automatikusan elrejti, amit a felhasználó gépel, és pontokkal helyettesíti (böngészőtől függően). A bemenet type=email lehetővé teszi a böngésző számára, hogy ellenőrizze, hogy a felhasználó által beírt adatok érvényes e-mail cím formátumban vannak-e. Mi is használtuk a igény=kötelező tulajdonság; az attribútumot támogató böngészők nem engedik a felhasználónak elküldeni az űrlapot, amíg ez a mező ki nem töltődik, JavaScript nem szükséges.
A autocomplete=on attribútum előre kitölti az értékeket a korábbi felhasználói bevitel alapján. Néhány szép helyőrzőt is használtunk a bemenetekhez, amelyek valamilyen irányadó értéket mutatnak, ha a bemenet nincs kitöltve.
Most a két trükkös rész. Talán észrevetted a kettőt linkek az űrlap tetején. Ez egy kis trükk, amivel a horgonyokkal játszva szépen viselkedik a formánk, hogy ne „ugorjon” hosszú oldalakra, ha rákattintunk a kapcsoló linkre, és kiváltjuk a:target álosztályt.
A második kis trükk az ikon betűtípus használatához kapcsolódik. Adatattribútumot fogunk használni az ikonok megjelenítéséhez. A beállítással data-icon=”icon_character” a megfelelő karakterrel a HTML-ben csak egy CSS-attribútum-választóra lesz szükségünk az összes ikon stílusához. További információ erről a technikáról: 24 mód: Ikonok megjelenítése betűtípusokkal és adatattribútumokkal.
A CSS
A kód egyértelműsége érdekében ebben az oktatóanyagban kihagyom az összes gyártó előtagját, de természetesen megtalálja őket a fájlokban. Ismét néhány nagyon fejlett CSS3 trükköt használok, amelyek nem biztos, hogy minden böngészőben működnek. Kezdjük el.
Mindkét űrlap stílusa CSS3 használatával
Először is adjunk a két űrlapunknak valamilyen általános stílust a tárolóhoz.
#feliratkozás, #bejelentkezés (pozíció: abszolút; felső: 0px; szélesség: 88%; kitöltés: 18px 6% 60px 6%; margó: 0 0 35px 0; háttér: rgb(247, 247, 247); szegély: 1px tömör rgba(147, 184, 189,0.8); box-shadow: 0pt 2px 5px rgba(105, 108, 109, 0.7), 0px 0px 8px 5px rgba(208, 223, 226 in:50.radix) in:50.radix) ; ) #bejelentkezés(z-index: 22; )
Hozzáadtunk egy szép dobozárnyékot, amely két árnyékból áll: egy beépített, amely a belső kék fényt hozza létre, és egy külső árnyék. Kicsit elmagyarázzuk a z-indexet.
A következőkben a fejlécet háttérkivágással alakítjuk ki:
/**** általános szövegstílus ****/ #wrapper h1( betűméret: 48 képpont; szín: rgb(6, 106, 117); kitöltés: 2px 0 10px 0; betűcsalád: "FranchiseRegular"," Arial Narrow",Arial,sans-serif; font-weight: bold; text-align: center; padding-bottom: 30px; ) /** Egyelőre csak a webkit támogatja a background-clip:text; */ #wrapper h1( háttér: -webkit-repeating-linear-gradient(-45 fok, rgb(18, 83, 93) , rgb(18, 83, 93) 20px, rgb(64, 111, 118) 20px, rgb (64, 111, 118) 40 képpont, rgb(18, 83, 93) 40 képpont); -webkit-text-fill-color: átlátszó; -webkit-background-clip: text; ) #wrapper h1:after(tartalom:" "; kijelző: blokk; szélesség: 100%; magasság: 2 képpont; margó felső: 10 képpont; háttér: lineáris gradiens (bal, rgba(147,184,189,0) 0%, rgba (147,184,189,0,8) 20%, rgba(147,184,184) ,1) 53%, rgba(147,184,189,0,8) 79%, rgba(147,184,189,0) 100%);
Vegye figyelembe, hogy jelenleg csak a webkit böngészők támogatják háttér-klip: szöveg, ezért itt csak a webkit számára készítünk lecsupaszított hátteret, és a szöveghez vágjuk, hogy a csíkokat hozzáadjuk a H1 címhez. Mivel a háttér-klip: szöveg A tulajdonság jelenleg csak a Webkit böngészőkben működik, úgy döntöttem, hogy csak a webkit előtagot használom. Ez az oka annak, hogy a CSS-deklarációt két részre osztottam, és csak egy webkit előtagú gradienst használok. Csak a –webkit- előtag használata rossz gyakorlat, csak demó céljára szolgál, és ezt soha nem szabad valódi webhelyen csinálni! Ott is van a -webkit-text-fill-color: átlátszó jól jön: lehetővé teszi, hogy a webkit böngészőkön csak átlátszó háttér legyen, az összes többi figyelmen kívül hagyja, és a megadott szövegszínt adja vissza.
A cím alatt a:after pszeudoosztály segítségével egy halványuló sort is létrehoztunk. 2 képpontos magassági gradienst használunk, és a hátteret mindkét végén 0 átlátszatlanságra halványítjuk.
Most alakítsuk át a bemeneteinket, és adjunk nekik szebb megjelenést.
/**** speciális beviteli stílus ****/ /* helyőrző */ ::-webkit-input-placeholder ( szín: rgb(190, 188, 188); font-style: dőlt; ) input:-moz- helyőrző, textarea:-moz-placeholder( color: rgb(190, 188, 188); font-style: italic; ) input ( körvonal: nincs; )
Először stílusozzuk a bemeneteket, és eltávolítjuk a körvonalat. De légy óvatos itt; a vázlat segít a felhasználónak tudni, hogy melyik bemenet van fókuszban, ezért ha eltávolítja azt, meg kell adnia néhány:active és:focus állapotot a bemenetekhez.
/* az összes bemenet, kivéve a submit és a jelölőnégyzetet */ #wrapper input:not())(szélesség: 92%; margó felső: 4px; kitöltés: 10px 5px 10px 32px; szegély: 1px tömör rgb(178, 178, 178) ; doboz mérete: tartalomdoboz; szegélysugár: 3 képpont; doboz árnyéka: 0 képpont 1 képpont 4 képpont 0 képpont rgba(168, 168, 168, 0,6) betét; átmenet: mind 0,2 s lineáris; ) #wrapper input:not() : aktív, #wrapper input:not():focus(szegély: 1px tömör rgba(91, 90, 90, 0,7); háttér: rgba(238, 236, 240, 0,2); box-shadow: 0px 1px 4px 0px rgba ( 168, 168, 168, 0,9) betét; )
Itt a:not pszeudo osztályt használtuk az összes bemenet stílusához, kivéve a jelölőnégyzetet. Megadtam a:focus és:active állapotot, mivel úgy döntöttem, hogy eltávolítom a körvonalat.
És most a szórakoztató rész: az ikon betűtípusa. Mivel a bemeneteken nem használhatjuk a:before és:after pszeudo osztályokat, egy kicsit csalnunk kell: a címkéhez hozzáadjuk az ikont, majd elhelyezzük a bemenetben. A fontomas könyvtárat használom, amely néhány szép ikont állít össze. Átrendezheti őket, hogy az ikont egy adott betűre állítsa. Emlékezzen a adat-ikon tulajdonság? Ide kell tenni a levelet. használtam data-icon='u' a felhasználó, az „e” az e-mail, a „p” a jelszó. Miután kiválasztottam a betűket, letöltöttem a betűtípust, és a fontsquirrel font generátor segítségével @font-face kompatibilis formátummá alakítottam át.
@font-face ( font-family: "FontomasCustomRegular"; src: url("fonts/fontomas-webfont.eot"); src: url("fonts/fontomas-webfont.eot?#iefix") format("embedded- opentype"), url("fonts/fontomas-webfont.woff") format("woff"), url("fonts/fontomas-webfont.ttf") format("truetype"), url("fonts/fontomas-webfont" .svg#FontomasCustomRegular") format("svg"); font-weight: normal; font-style: normal; ) /** a varázslatos ikon trükk! **/ :after ( tartalom: attr(data-icon); font-family: "FontomasCustomRegular"; szín: rgb(106, 159, 171); pozíció: abszolút; bal: 10px; felső: 35px; szélesség: 30px; )
Igen, ez az emberek, nem kell minden ikonhoz külön osztályt rendelni. Használtuk tartalom: attr(data-icon) a betű lekéréséhez a data-icon attribútumból, így csak a betűtípust kell deklarálnunk, válasszunk egy szép színt és helyezzük el.
Most alakítsuk ki mindkét űrlap elküldési gombjának stílusát.
/*mindkét küldőgomb stílusa */ #wrapper p.button input(szélesség: 30%; kurzor: mutató; háttér: rgb(61, 157, 179); kitöltés: 8px 5px; betűcsalád: "BebasNeueRegular","Arial Keskeny",Arial,sans-serif; szín: #fff; betűméret: 24px; szegély: 1px tömör rgb(28, 108, 122); margó-alsó: 10px; szövegárnyék: 0 1px 1px rgba(0, 0, 0, 0,5); szegélysugár: 3 képpont; árnyékolókeret: 0px 1px 6px 4px rgba(0, 0, 0, 0,07) beillesztés, 0px 0px 0px 3px rgb(254, 254, 0px3p5), 3x25px rgb(210, 210, 210); átmenet: mind 0,2s lineáris; ) #wrapper p.button input:hover( háttér: rgb(74, 179, 198); ) #wrapper p.button bemenet:aktív, #wrapper p .button input:focus( háttér: rgb(40, 137, 154); pozíció: relatív; felső: 1px; szegély: 1px tömör rgb(12, 76, 87); box-shadow: 0px 1px 6px 4px rgba(0, 0, 0, 0,2) beillesztés; ) p.login.button, p.signin.button(szöveg igazítása: jobbra; margó: 5px 0; )
A trükk itt az, hogy a box-shadow használatával extra szegélyeket hozz létre. Csak egy keretet használhat, de annyi doboz-árnyékot, amennyit csak akar. A hossz értékét használjuk egy „hamis” második fehér szegély létrehozására, amely 3 képpont széles, elmosódás nélkül.
Ezután stílusozzuk a jelölőnégyzetet, itt nincs semmi különös:
/* a "keep me logged in" jelölőnégyzet stílusosítása*/ .keeplogin( margin-top: -5px; ) .keeplogin input, .keeplogin label( display: inline-block; font-size: 12px; font-style: dőlt; ) .keeplogin input#loginkeeping( margin-right: 5px; ) .keeplogin label(szélesség: 80%; )
Az űrlap alját ismétlődő lineáris színátmenetekkel formázzuk meg, hogy csíkos hátteret hozzunk létre.
P.change_link(pozíció: abszolút; szín: rgb(127, 124, 124); bal: 0px; magasság: 20px; szélesség: 440px; kitöltés: 17px 30px 20px 30px; betűméret: 16px; szövegigazítás: jobbra; border-top: 1px tömör rgb(219, 229, 232); szegélysugár: 0 0 5px 5px; háttér: rgb(225, 234, 235); háttér: ismétlődő lineáris gradiens (-45 fok, rgb(247, 247, 247) , rgb(247, 247, 247) 15px, rgb(225, 234, 235) 15px, rgb(225, 234, 235) 30px, rgb(247, 247)7,302px) .change_link a ( megjelenítés: inline-block; betűsúly: félkövér; háttér: rgb(247, 248, 241); kitöltés: 2px 6px; szín: rgb(29, 162, 193); margó balra: 10px; szöveg -dekoráció: nincs; szegélysugár: 4 képpont; szegély: 1px tömör rgb(203, 213, 214); átmenet: mind 0,4 s lineáris; ) #wrapper p.change_link a:hover ( szín: rgb(57, 191, 215) ); háttér: rgb(247, 247, 247); szegély: 1px tömör rgb(74, 179, 198); ) #wrapper p.change_link a:active( pozíció: relatív; felső: 1px; )
Most észre fogod venni, hogy van két szép formánk, de nagyon szeretnénk, ha egyszerre csak az egyik jelenne meg. Szóval itt az ideje néhány animációnak!!
A váltási animáció létrehozása
Az első dolog az, hogy elrejti a második űrlapot úgy, hogy az átlátszatlanságot 0-ra állítja:
#register(z-index: 21; opacitás: 0; )
Emlékszel, hogy a bejelentkezési űrlapunk z-indexe 22 volt? A második űrlapnak 21-es z-indexet adunk, hogy a bejelentkezési űrlap alá tegyük.
És most az igazán jó rész: az űrlapok váltása a:target pszeudoosztály használatával. Amit igazán meg kell értened a:target kapcsán, az az, hogy horgonyokat fogunk használni az átálláshoz. A horgonylink szokásos viselkedése az, hogy az oldalon a célhoz ugorjon. De nem akarunk sehova ugrani, csak a formákat szeretnénk váltani. És itt jön a trükkünk az oldal tetején található két link segítségével. Ahelyett, hogy közvetlenül a második űrlapra hivatkoznánk, és kockáztatnánk az „ugró” hatás elérését, valójában a két linket az oldal tetejére helyezzük, és megadjuk őket kijelző: nincs. Ezzel elkerülhető az oldalugrás. Jóváírás, ahol a jóváírás esedékes: Ezt a trükköt a CSS3 Create (franciául) oldalon találtam.
#toregister:target ~ #wrapper #register, #tologin:target ~ #wrapper #login(z-index: 22; animation-name: fadeInLeft; animation-delay: .1s; )
Tehát ez történik: amikor rákattintunk a Csatlakozz hozzánk gombot, elindítjuk a #toregistert. Ezután elkészítjük az animációt a testvérválasztó ~ segítségével, hogy megtaláljuk a #register elemünket. ún. animációt használunk fadeInLeft. Mivel az űrlapot nulla átlátszatlansággal „rejtjük”, egy animációt fogunk használni, amely elhalványul, hogy megjelenjen. A z-indexet is megváltoztattuk, hogy az a másik űrlapon jelenjen meg.
Ugyanez történik a másik formával is.
És itt van az animáció kódja. A Dan Eden CSS3 animációs keretrendszerét használjuk, és adaptáltuk ehhez az oktatóanyaghoz.
Animate( animáció-időtartam: 0,5 s; animáció-időzítés funkció: egyszerű; animáció-kitöltés mód: mindkettő; ) @keyframes fadeInLeft ( 0% ( átlátszatlanság: 0; transzformáció: translateX(-20px); ) 100% ( átlátszatlanság : 1; transzformáció: translateX(0); ) )
Az „eltűnő” űrlapon lesz egy másik animáció, amitől balra halványul:
#toregister:target ~ #wrapper #login, #tologin:target ~ #wrapper #register( animációnév: fadeOutLeftBig; ) @keyframes fadeOutLeft ( 0% ( átlátszatlanság: 1; transzformáció: translateX(0); ) 100% ( átlátszatlanság : 0; transzformáció: translateX(-20px); ) )
Mostantól más animációkat is használhat Dan Eden animate.css fájljáról: csak állítsa be az .animate osztályt, és cserélje le az animációk neveit. Néhány egyéni animációt is találhat az animate-custom.css fájl végén.
Hát ennyi, emberek. Remélem tetszett a tutorial!
Kérjük, vegye figyelembe, hogy egyes böngészőkben háttér-klip: szöveg nem támogatott. Az Internet Explorer 9-ben az átmenetek és animációk nem működnek, így nem lesz divatos űrlapváltás. Az Internet Explorer 8 és az alatti verziókban a:target pszeudoosztály nem támogatott, így egyáltalán nem fog működni (csak a bejelentkezési űrlapot fogja látni).
Maga az űrlap általában arra szolgál, hogy információkat fogadjon a felhasználótól, és továbbítsa azt a szerverre, ahol az űrlapadatokat a kezelő program fogadja. Egy ilyen program bármilyen szerveroldali programozási nyelven írható, például PHP, Perl stb. A program címe a címke action attribútumában van feltüntetve.
Ebben a példában a name attribútum által jelzett űrlapadatok (bejelentkezési név és jelszó) átkerülnek a /example/handler.php fájlba. Ha az action attribútum nincs megadva, akkor az átvitel az aktuális oldal címére történik.
A kiszolgálóra való átvitel két különböző módszerrel történik: GET és POST, a módszer beállításához a címkében