Kapcsolatok

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.

Belépés

Regisztrálj

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.

, ahogy az 1. példában látható.

1. példa: Űrlapadatok elküldése

HTML5 IE Cr Op Sa Fx

Űrlapadatok



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

A method attribútumot használják, értékei pedig a get és post kulcsszavak. Ha a method attribútum nincs megadva, akkor az adatok alapértelmezés szerint a GET metódussal kerülnek a szerverre. táblázatban Az 1. ábra mutatja a különbségeket ezen módszerek között.

Az alkalmazott módszer könnyen meghatározható a böngésző címsorából. Ha egy kérdőjel jelenik meg benne, és a cím így néz ki, akkor ez mindenképpen GET.

http://www.google.ru/search?q=%D1%81%D0%B8%D1%81%D1%8C%D0%BA%D0%B8&ie=utf-8

A paraméterek egyedi kombinációja a címsorban egyedileg azonosítja az oldalt, így a ?q=node/add és ?q=node címmel rendelkező oldalak eltérőnek minősülnek. Ezt a funkciót a tartalomkezelő rendszerek (CMS, Tartalomkezelő rendszer) használják számos weboldal létrehozására. A valóságban egyetlen fájlt használnak, amely fogadja a GET kérést, és ennek megfelelően generálja a dokumentum tartalmát.

Az alábbiakban felsoroljuk ezeknek a módszereknek a webhelyeken történő tipikus alkalmazását.

KAP

Kis szöveges adatok átvitele a szerverre; Webhelykeresés.

A keresőmotorok és a webhelykereső űrlapok mindig a GET módszerrel kerülnek elküldésre, ez lehetővé teszi a keresési eredmények megosztását ismerőseivel, linkküldést e-mailben vagy fórumon való közzétételét.

POST

Fájlok átvitele (fotók, archívumok, programok stb.); megjegyzések küldése; üzenetek hozzáadása és szerkesztése a fórumon, blogon.

Alapértelmezés szerint az űrlap feldolgozása az aktuális böngészőlapon történik, azonban az űrlap elküldésekor módosíthatja ezt a paramétert, és új lapon vagy keretben nyithatja meg az űrlapkezelőt. Ezt a viselkedést a „kontextusnév” adja meg, amely a címke célattribútumának értéke . A népszerű értékek a _blank az űrlap új ablakban vagy lapon történő megnyitásához, valamint a keret neve, amelyet a címke name attribútuma határoz meg



Ebben a példában, amikor a Küldés gombra kattint, az űrlap elküldésének eredménye egy terület nevű keretben nyílik meg.

Az űrlapelemeket hagyományosan egy címkén belül helyezik el

, ezáltal meghatározza a szerverre továbbítandó adatokat. Ugyanakkor a HTML5 képes elválasztani egy űrlapot elemeitől. Ez a kényelem és a sokoldalúság érdekében történik, így egy összetett elrendezés több olyan űrlapot is tartalmazhat, amelyek nem metszhetik egymást, vagy például egyes elemek szkriptek segítségével jelennek meg az oldalon az egyik helyen, maga az űrlap pedig egy másik helyen található. . Az űrlap és elemei közötti kapcsolat ebben az esetben az űrlapazonosítón keresztül történik, és az ezzel az azonosítóval megegyező értékű form attribútumot hozzá kell adni az elemekhez (3. példa).

3. példa: Űrlap összekapcsolása mezőkkel

HTML5 IE Cr Op Sa Fx

Forma



Ebben a példában a címke

A hitelesítési azonosító révén egyedileg azonosítható, a form="auth" pedig hozzáadódik az űrlapon keresztül beküldendő mezőkhöz. Ebben az esetben az elemek viselkedése nem változik, a gombra kattintva a bejelentkezési név és a jelszó elküldésre kerül a handler.php kezelőnek.

Bár az űrlapátviteli paraméterek hagyományosan a címkében vannak megadva , átvihetők az űrlap beküldő gombjaira is (

Tetszett a cikk? Oszd meg