Homepage » Coding » Stílusos érzékeny forma létrehozása CSS3 és HTML5 segítségével

    Stílusos érzékeny forma létrehozása CSS3 és HTML5 segítségével

    A CSS3 kódolása drasztikusan megváltoztatta a frontend webes fejlesztésében a tájképet. Több lehetőség van arra, hogy egyedi interfészeket hozzon létre a színátmenetekkel, az árnyékokkal és a lekerekített sarkokkal. Mindezen hatások minden nagyobb webböngészőben lassan válnak elfogadhatóvá.

    Ebben a bemutatóban sok ilyen hűvös CSS3 effektust szeretnék bemutatni. Egy egyszerű webes űrlapot építettem az újabb HTML5 bemeneti típusok közül. Az elrendezés is érzékeny; az ablakméret csökkenése miatt alkalmazkodik. Ez a helyzet tökéletes a webes űrlapok építéséhez, hogy támogassák az okostelefon-felhasználókat.

    Nézze meg a forráskódot, és nézze meg, hogy követheti-e a fájlstruktúrában. Szintén nyugodtan testreszabhatja ezeket az elemeket, és másolja azokat saját webhelyeire.

    • Demó
    • Forráskód letöltése

    Az űrlap felépítése

    Az indításhoz létrehoztam egy fő fájlt index.html két különálló stíluslappal. style.css az alapértelmezett szelektorokat tartalmazza responsive.css kezeli a különböző ablakméreteket. A doctype a HTML5, és az egész formát egy konténerbe csomagoltam

    .

    Ez a példa csak a CSS3 kódolásakor megjelenő hatásokat mutatja be. Így nincs utólagos beadási parancsfájl vagy úticél a felhasználó átirányításához. Az alábbi kód tartalmazza az első néhány formanyomtatvány nyitó bemeneti címkéjét.

     

    Az első blokkterület egy szekciócímkére van csomagolva, így az elrendezést egymás mellett tudjuk lebegni. A bal oldali oszlop minden ilyen bemenetet tartalmaz: szöveget, e-mailt, URL-t és telefonszámot. Ahogy a telefonon keresztül léptünk át, a mobil billentyűzet kijelzőjének a bemeneti típus alapján kell igazodnia. Rengeteg jó ok van arra, hogy támogassuk ezeket a szolgáltatásokat a mobil számára, mivel mindenki a mai napon dolgozik.

    A textarea elem tartalmazhat helyőrző szöveget is, amely a pageload-on van definiálva. Ez hasonló a címkéhez, amely eltűnik, miután a felhasználó bevitt néhány szöveget a mezőbe. Az az attribútum, amelyet nem vitt át, az autocomplete mert a textarea általában nem tölti ki a kapcsolódó tartalmat.

    Oldalsáv vezérlők

    Ezt az űrlapot szeretném építeni úgy, hogy megfelelően reagáljon az ablakok átméretezésére. Ha az ablak elég teljes, akkor mindkét bemeneti oszlop úszik egymás mellett. De ha a szélességet kissé csökkentjük, a jobb oldali sáv a fő tartalom alá esik.

    Íme az oldalsávom HTML-je:

     

    Befogadó:

    Kiemelten fontos:

    Ez a kód valójában nem túl zavaró. Csak egy egyszerű opció kiválasztása menü és néhány rádiógomb. Ezen túlmenően, ezek után az objektumok után elhelyeztem egy visszaállítási és elküldési gombot a szakasz vége felé.

     

    Ez minden jól néz ki, így most lépjünk be néhány CSS tulajdonságba. Olyan sok testreszabás létezik, amikor az űrlapelemeknél dolgozik. Ne próbálj túl sokat gondolkodni és szórakozni!

    Animált doboz árnyékai

    A fő bemeneti elemek mindegyikénél észreveszed, hogy egy színes külső árnyékot animáltam. A Google Chrome egy olyan szerkezeti tulajdonsággal rendelkezik, amely hasonló, de nem olyan extravagáns. Az interfész kis része csábítja az első látogatókat.

     / ** az űrlapelemek ** / # hongkiat-form box-sizing: border-box;  # hongkiat-form .txtinput display: block; font-család: "Helvetica Neue", Arial, sans-serif; határstílus: szilárd; határszélesség: 1px; szegélyszín: #dedede; margin-bottom: 20px; betűméret: 1.55em; párnázás: 11px 25px; párnázott bal: 55px; szélesség: 90%; szín: # 777; doboz-árnyék: 0 1px 3px rgba (0, 0, 0, 0,1) betét; -moz-box-shadow: 0 1px 3px rgba (0, 0, 0, 0,1) betét; -webkit-box-shadow: 0 1px 3px rgba (0, 0, 0, 0,1) betét; átmenet: 0,15 s-es határvonal lineáris 0s, box-shadow 0.15s lineáris 0s, szín 0.15s lineáris 0s; -webkit-átmenet: határ 0.15s lineáris 0s, box-shadow 0.15s lineáris 0s, szín 0.15s lineáris 0s; -moz-átmenet: határ 0.15s lineáris 0s, box-shadow 0.15s lineáris 0s, szín 0.15s lineáris 0s; -o-átmenet: határ 0.15s lineáris 0s, box-shadow 0.15s lineáris 0s, szín 0.15s lineáris 0s;  # hongkiat-form .txtinput: focus color: # 333; határszín: rgba (41, 92, 161, 0,4); doboz-árnyék: 0 1px 3px rgba (0, 0, 0, 0,1) betét, 0 0 8px rgba (41, 92, 161, 0,6); -moz-box-shadow: 0 1px 3px rgba (0, 0, 0, 0,1) betét, 0 0 8px rgba (41, 92, 161, 0,6); -webkit-box-shadow: 0 1px 3px rgba (0, 0, 0, 0,1) betét, 0 0 8px rgba (41, 92, 161, 0,6); vázlat: 0 nincs;  

    Annak érdekében, hogy minden szövegelemet megcéloztam, az osztályt használtam .txtinput. Az átmeneti tulajdonságok mindegyike határon, doboz árnyékon és színen működik. használom doboz-méretezés: szegélydoboz; az űrlaptartóban, hogy a párnázás ne zavarja meg az érzékeny kialakítást.

    Ugyanazokat a stílusokat kellett átmásolnom, és kissé módosítani kellett a textarea számára. Megváltoztattam néhány betétet és margót, és hozzáadtam egy egyedi háttérképet.

     # hongkiat-form textarea kijelző: blokk; font-család: "Helvetica Neue", Arial, sans-serif; határstílus: szilárd; határszélesség: 1px; szegélyszín: #dedede; margin-bottom: 15px; betűméret: 1.5em; párnázás: 11px 25px; párnázott bal: 55px; szélesség: 90%; magasság: 180px; szín: # 777; doboz-árnyék: 0 1px 3px rgba (0, 0, 0, 0,1) betét; -moz-box-shadow: 0 1px 3px rgba (0, 0, 0, 0,1) betét; -webkit-box-shadow: 0 1px 3px rgba (0, 0, 0, 0,1) betét; átmenet: 0,15 s-es határvonal lineáris 0s, box-shadow 0.15s lineáris 0s, szín 0.15s lineáris 0s; -webkit-átmenet: határ 0.15s lineáris 0s, box-shadow 0.15s lineáris 0s, szín 0.15s lineáris 0s; -moz-átmenet: határ 0.15s lineáris 0s, box-shadow 0.15s lineáris 0s, szín 0.15s lineáris 0s; -o-átmenet: határ 0.15s lineáris 0s, box-shadow 0.15s lineáris 0s, szín 0.15s lineáris 0s;  # hongkiat-form textarea: fókusz color: # 333; határszín: rgba (41, 92, 161, 0,4); doboz-árnyék: 0 1px 3px rgba (0, 0, 0, 0,1) betét, 0 8px rgba (40, 90, 160, 0,6); -moz-box-árnyék: 0 1px 3px rgba (0, 0, 0, 0,1) betét, 0 8px rgba (40, 90, 160, 0,6); -webkit-box-shadow: 0 1px 3px rgba (0, 0, 0, 0,1) betét, 0 0 8px rgba (40, 90, 160, 0,6); vázlat: 0 nincs;  # hongkiat-form textarea.txtblock háttér: #fff url ('https://assets.hongkiat.com/uploads/responsive-css3-form/speech.png') 5px 4px nem ismételhető;  

    Oldalsávbemenetek

    A rádió gombok és a kiválasztott menüelemek sokkal egyszerűbbek. Ezekre az elemekre külső fényhatásokat és hasonló csepp árnyékokat alkalmazhat, de ez nem mindig jól néz ki. A tervezők egyéni felhasználói felületeket is létrehozhatnak, és ezeket háttérképként csatolják. Ez azonban szükségessé teheti a jQuery megoldást, hogy a beállításokat megfelelően jelenítse meg.

     span.radiobadge display: block; margin-bottom: 8px;  span.radiobadge címke font-size: 1.2em; alátét: 4px;  select.selmenu font-size: 17px; szín: # 676767; padding: 9px! fontos; határ: 1px szilárd #aaa; szélesség: 200px;  

    Nem sokat tettem, hogy ezeket a fő bemeneti elemektől távol lehessem. Rengeteg extra párnázás fontos, hogy a felhasználók kényelmesen kommunikáljanak az űrlappal. Ha a szöveg szuper apró, akkor az csak egy rész csak az egyes részek kitöltése lehet harc. Tartsa nagy betűkészletét, de nem olyan nagy, hogy túlterhelje az oldalt.

    Testreszabott gombok

    A visszaállítási és elküldési gombok saját osztályukban vannak kialakítva. Készítettem egy sor színátmenetet, hogy jól illeszkedjenek az űrlapmezőink kék kiemeléseihez.

    Az alábbiakban a CSS kódot adom meg a beküldéshez a normál és lebegő állapotban.

     #buttons #submitbtn display: block; balra lebeg; magasság: 3em; párnázás: 0 1em; határ: 1px szilárd; vázlat: 0; font-súly: félkövér; betűméret: 1.3em; szín: #fff; szöveg-árnyék: 0px 1px 0px # 222; fehér tér: mostcsak; word-wrap: normál; függőleges igazítás: középső; kurzor: mutató; -moz-border-sugár: 2px; -webkit-border-radius: 2px; határ-sugár: 2px; határszín: # 5e890a # 5e890a # 000; -moz-box-shadow: beillesztés 0 1px 0 rgba (256,256,256, .35); -ms-box-shadow: beillesztés 0 1px 0 rgba (256,256,256, .35); -webkit-box-shadow: beillesztés 0 1px 0 rgba (256,256,256, .35); box-shadow: betét 0 1px 0 rgba (256, 256, 256, .35); háttérszín: rgb (226,238,175); háttérkép: -moz-lineáris gradiens (felső, rgb (226,238,175) 3%, rgb (188,216,77) 3%, rgb (144,176,38) 100%); háttérkép: -webkit-gradiens (lineáris, bal felső, bal alsó, szín-stop (3%, rgb (226,238,175)), szín-stop (3%, rgb (188,216,77)), szín-stop (100 %, RGB (144,176,38))); háttérkép: -webkit-lineáris gradiens (felső, rgb (226,238,175) 3%, rgb (188,216,77) 3%, rgb (144,176,38) 100%); háttérkép: -o-lineáris gradiens (felső, rgb (226,238,175) 3%, rgb (188,216,77) 3%, rgb (144,176,38) 100%); háttérkép: -ms-lineáris gradiens (felső, rgb (226,238,175) 3%, rgb (188,216,77) 3%, rgb (144,176,38) 100%); háttérkép: lineáris gradiens (felső, rgb (226,238,175) 3%, rgb (188,216,77) 3%, rgb (144,176,38) 100%); szűrő: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# e2eeaf", endColorstr = "# 90b026", GradientType = 0);  #buttons #submitbtn: hover, #buttons #submitbtn: aktív border-color: # 7c9826 # 7c9826 # 000; szín: #fff; -moz-box-shadow: betét 0 1px 0 rgba (256,256,256,0,4), 0 1px 3px rgba (0,0,0,0,5); -ms-box-shadow: betét 0 1px 0 rgba (256,256,256,0,4), 0 1px 3px rgba (0,0,0,0,5); -webkit-box-shadow: beillesztés 0 1px 0 rgba (256,256,256,0,4), 0 1px 3px rgba (0,0,0,0,5); box-shadow: betét 0 1px 0 rgba (256,256,256,0,4), 0 1px 3px rgba (0,0,0,0,5); háttér: rgb (228,237,189); háttér: -moz-lineáris gradiens (felső, rgb (228,237,189) 2%, rgb (207,219,120) 3%, rgb (149,175,54) 100%); háttér: -webkit-gradiens (lineáris, bal felső, bal alsó, szín-stop (2%, rgb (228,237,189)), szín-stop (3%, rgb (207,219,120)), szín-stop (100%, rgb ( 149,175,54))); háttér: -webkit-lineáris gradiens (felső, rgb (228,237,189) 2%, rgb (207,219,120) 3%, rgb (149,175,54) 100%); háttér: -o-lineáris gradiens (felső, rgb (228,237,189) 2%, rgb (207,219,120) 3%, rgb (149,175,54) 100%); háttér: -ms-lineáris gradiens (felső, rgb (228,237,189) 2%, rgb (207,219,120) 3%, rgb (149,175,54) 100%); háttér: lineáris gradiens (felső, rgb (228,237,189) 2%, rgb (207,219,120) 3%, rgb (149,175,54) 100%); szűrő: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# e4edbd", endColorstr = "# 95af36", GradientType = 0);  

    Ez a szelektor szinte lehetetlen tisztán tartani! Egyszerűen túl sok tulajdonság van, amire szükség van a régebbi böngészők listázásához és támogatásához. Az Internet Explorer ezeket a színátmeneteket a megfelelő szűrővel is elvégezheti. Figyelje meg a háttér színátmenetek mellett az új szegélyszínt, lekerekített sarkokat és egy doboz árnyékot a lebegőn.

    A reset gomb hasonlónak tűnik, de egy teljesen más útvonalat mentem a színsémával. A világosszürke hajlamos a háttérbe esni az élénkzöld színekhez képest. A visszaállítási gomb valószínűleg nem lesz nagyon sok, ezért nem kell minden figyelmet.

     #buttons #resetbtn display: block; balra lebeg; szín: # 515151; szöveg-árnyék: -1px 1px 0px #fff; margin-right: 20px; magasság: 3em; párnázás: 0 1em; vázlat: 0; font-súly: félkövér; betűméret: 1.3em; fehér tér: mostcsak; word-wrap: normál; függőleges igazítás: középső; kurzor: mutató; -moz-border-sugár: 2px; -webkit-border-radius: 2px; határ-sugár: 2px; háttérszín: #fff; háttérkép: -moz-lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (240,240,240) 2%, rgb (222,222,222) 100%); háttérkép: -webkit-gradiens (lineáris, bal felső, bal alsó, szín-stop (2%, rgb (255,255,255)), szín-stop (2%, rgb (240,240,240)), szín-stop (100%, RGB (222.222.222))); háttérkép: -webkit-lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (240,240,240) 2%, rgb (222,222,222) 100%); háttérkép: -o-lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (240,240,240) 2%, rgb (222,222,222) 100%); háttérkép: -ms-lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (240,240,240) 2%, rgb (222,222,222) 100%); háttérkép: lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (240,240,240) 2%, rgb (222,222,222) 100%); szűrő: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# ffffff", endColorstr = "# dedede", GradientType = 0); határ: 1px szilárd # 969696; doboz-árnyék: 0 1px 2px rgba (144, 144, 144, 0,4); -moz-box-árnyék: 0 1px 2px rgba (144, 144, 144, 0,4); -webkit-box-shadow: 0 1px 2px rgba (144, 144, 144, 0,4); szöveg-árnyék: 0 1px 1px rgba (255, 255, 255, 0,75);  #buttons #resetbtn: hover text-shadow: 0 1px 1px rgba (255, 255, 255, 0,75); szín: # 818181; háttérszín: #fff; háttérkép: -moz-lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (244,244,244) 2%, rgb (229,229,229) 100%); háttérkép: -webkit-gradiens (lineáris, bal felső, bal alsó, szín-stop (2%, rgb (255,255,255)), szín-stop (2%, rgb (244,244,244)), szín-stop (100%, RGB (229.229.229))); háttérkép: -webkit-lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (244,244,244) 2%, rgb (229,229,229) 100%), háttérkép: -o-lineáris gradiens (felső, rgb ( 255,255,255) 2%, rgb (244,244,244) 2%, rgb (229,229,229) 100%); háttérkép: -ms-lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (244,244,244) 2%, rgb (229,229,229) 100%); háttérkép: lineáris gradiens (felső, rgb (255,255,255) 2%, rgb (244,244,244) 2%, rgb (229,229,229) 100%); szűrő: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# ffffff", endColorstr = "# e5e5e5", GradientType = 0); határszín: #aeaeae; box-shadow: betét 0 1px 0 rgba (256,256,256,0,4), 0 1px 3px rgba (0,0,0,0,5);  

    A visszaállítási típust akár el is dobhatja, és ezt a fehér / szürke színsémát használhatja a fő benyújtási gombként. Sok azonos színátmenetet és árnyékhatást használtam, valamint a belső címke szöveges árnyékát. Ez határozottan más érzést ad a felhasználói élménynek.

    Választható elrendezési változások

    A másik CSS-fájlba költözve megnézhetjük az általam beállított egyszerű válaszadó média lekérdezéseket. A 800px fölötti böngészőablak a teljes oldalsáv felületét fogja tapasztalni. Ahogy ez a küszöbérték alatt van, a bal oldali oszlop 100% -os szélességre nő, és az oldalsáv elemei az alábbiakban látszanak.

     @media képernyő és (max-width: 800px) body padding: 10px 15px;  #container szélesség: 100%;  # hongkiat-form #aligned szélesség: 100%; úszó: nincs; kijelző: blokk;  # hongkiat-form #aside szélesség: 100%; kijelző: blokk; úszó: nincs;  # hongkiat-form .txtinput, # hongkiat-form textarea szélesség: 85%;  #prioritycase float: balra; kijelző: blokk;  #recipientcase float: balra; kijelző: blokk; margin-right: 55px;  

    Ahogy közelebb kerülünk a mérethez, igyekszem az egyes beviteli űrlapokat adaptálni. A szélesség tulajdonsága hosszabb lehet, mint maga a weblap, majd bemeneti űrlapok vannak a szélén. Ez 550px körül történik, ami a következő lekérdezés megszakítását jelenti, valamint mindkét iPhone képernyős felbontással a portré és a táj számára.

     / * kisebb képernyős dropoff ******* / @media csak képernyő és (max-width: 550px) # hongkiat-form .txtinput, # hongkiat-form textarea szélesség: 80%;  / * iPhone Landscape ******** / @media csak képernyő és (max-width: 480px) body padding: 10px 0px;  select.selmenu szélesség: 190px;  / * iPhone-portré ******* / @media csak képernyő és (max-width: 320px) body padding: 10px 0px;  # hongkiat-form .txtinput, # hongkiat-form textarea szélesség: 70%;  # hongkiat-form #aligned overflow: rejtett;  select.selmenu szélesség: 160px;  #recipientcase margin-right: 30px;  

    A vízszintes tájmód még mindig nagyon jól tartja mindent. Csak egy kicsit vékonyabb választógombot tettem a rádió gombok számára. A portré nézetben átméreteztem az összes elemet sokkal kisebb szélességekre. Most már a kódja nem törik átméretezett böngészőablakokban. De jó az iOS / Android okostelefonok támogatása is.

    • Demó
    • Forráskód letöltése

    Következtetés

    Remélem, hogy ez a bemutató tájékoztató jellegű volt, hogy elmagyarázza, hogy mennyit lehet tenni a weblapjain. Az új CSS3 tulajdonságok elég erőteljesek ahhoz, hogy teljesen működőképes animációkat építsenek csak néhány sornyi kóddal. Ez tényleg izgalmas idő a webfejlesztésben és a trendek követésében.

    Ha ötletei vagy javaslata van a bemutató kóddal, ne habozzon megosztani velünk velünk az alábbi megjegyzések mezőben.