Unlimited Wordpress themes, plugins, graphics & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Web Design
  2. Form Design

CSS kísérletek kereső űrlappal és gombbal

by
Difficulty:IntermediateLength:LongLanguages:

Hungarian (Magyar) translation by Szabó Péter (you can also view the original English article)

Ebben a bemutatóban szeretném megmutatni, hogyan tudsz feldíszíteni egy egyszerű kereső űrlapot. Nem csinálunk semmi őrültséget, ehelyett négy különböző módon tárunk fel arra, hogy hogyan tudod feldobni a keresőmezőt a CSS átmenetek segítségével.

Már rendelkezel egy alap keresődobozzal

A HTML fájlodban létre kell hoznod egy keresőmezőt az elkezdéshez. Ha vetsz egy pillantást az alábbi kódra, négy különböző dolgot fogsz észrevenni: egy .box divet, egy .container-1 divet, egy .icon-t és magát a keresőmezőt.

Mind a négy példánkban van egy keresődoboz – természetesen –, valamint egy nagyító ikon. Mind a négy példánk egy konténeren belül lesz, így függetlenül tudjuk manipulálni a keresőmezőt. Végül a box div a felelős a konténer középen tartásáért.

Font Awesome hozzáadása

A Font Awesome egy ikonkönyvtár. Többet is megtudhatsz a projektről a Font Awesome saját weboldalán.

A fenti kódrészlet egy példa arra, hogyan tudsz egy ikont belevenni a kódodba. Ugyanakkor annak érdekében, hogy az ikon megjelenjen, be kell linkelned a Font Awesome könyvtárat, ahogy az az alábbi kódrészletben látható. Ezt a linket vedd bele a dokumentumod fejrészébe.

Alapvető stilizálás

Most néhány stílust fogunk hozzáadni egy különálló stíluslapon (amit szintén be kell linkelned a dokumentum fejrészébe).

A fenti CSS kódrészletben hozzáadtunk néhány alap stílust az oldalhoz. A keresődoboz stílusa navy színű lesz, így a body háttere nem lesz vakító fehér. A box osztály is az oldal közepére van igazítva a bemutató kedvéért.

Keresődoboz díszítése

Ez a bemutató arról szól, hogy megtanuld, hogyan tudod feldíszíteni a keresődobozokat. Ebben az első példában részletesen elmagyarázom, mi fog történni; azt szeretném, hogy tudd, pontosan mit is csinálunk. A többi három példában egyszerűen csak megmutatom, hogyan tudsz különféle átmeneteket elérni.

#1. Háttér halványítása

Az első példánkban azzal fogunk foglalkozni, hogy hogyan változtassuk meg a keresőmező hátterét, ha rávisszük az egeret. Átmenetet is adunk hozzá, így az átmenet nem lesz olyan hirtelen történő.

A HTML

Már láttad az alap HTML-ünket. Ez a kódrészlet ugyanaz lesz mindegyik példában.

A CSS

A stilizálás érdekében meg kell határozni magának a keresődoboznak a CSS stílusát. Adjuk hozzá egyesével a különböző CSS szabályokat, hogy tudjuk, pontosan mi is történik.

Először a container osztályt szeretnénk stilizálni. A legfontosabb tulajdonság vitathatatlanul a position: relative. Ez direkt azért van benne, hogy az ikon a beviteli mező elejére kerüljön, ahogy azt hamarosan látni is fogod.

Bevitel

Ezután a tényleges beviteli mezőt szeretnénk stílussal ellátni. Ezen felül minden pusztán esztétikai céllal van, mivel a szegély sugara és a háttérszín nincs hatással a beviteli funkciókra. Vedd észre a bal oldali térköz tulajdonságot. Ez azért van ott, hogy helyet csináljunk az ikonnak, mert így az nem a szövegre fog kerülni a beviteli mezőben.

Alább négy különféle szabályunk van, ami átszínezi a helyőrző szöveget, ami a mi példánkban a Search. A szabályokat sajnos külön kell választani egyedi prefixekkel, és nem határozhatóak meg shorthand szabályokkal. Ez egy kicsit idegesítő, és látni fogod, hogy meg kell ismételni mindegyik példában!

Ikon

Végül az ikont fogjuk stilizálni. A legfontosabb, hogy a helyzetét a beviteli mező elejére állítsuk a position: absolute-tal. A margók segítenek pozicionálni az ikont úgy, hogy a felső pozícióját 50%-ra állítjuk.

Hover effektus hozzáadása

Az ezt követő szabályokkal létrehozzuk, hogy mi történjen akkor, amikor a keresődobozra visszük az egeret. Ebben a példánkban csak a háttérszínt szeretnénk megváltoztatni. Annak érdekében, hogy megszabaduljunk a sárga vagy kék ragyogástól a beviteli mező körül (amit néha a böngészők hozzáadnak), állítsuk be az outline: none-t.

Ahogy azt a fenti kódrészletben láthatod, két további állapotot – focus és active – adtunk még hozzá. Ily módon a hatás nem tűnik el, ha már nincs az egér a beviteli mező fölött. Ami még fontosabb, hogy az effektus is észrevehető, amikor a beviteli mező használatban van.

Az áttűnés létrehozása

Annak érdekében, hogy az áttűnés megtörténjen, hozzá kell adnunk pár sor kódot. Menjünk vissza a szabályra, ahol a beviteli mező stílusát meghatároztuk – .container-1 input#search. A zárójel elé adjuk hozzá a következő kódrészletet:

Shorthanddel könnyen meg lehetne határozni az átmenet tulajdonságait, de ehelyett a három paramétert külön-külön kell megadni. Először is azt mondjuk meg neki, hogy az átmenetnek csak a háttér tulajdonságot kell érintenie. Ezután azt adjuk meg, hogy az átmenet alig tartson tovább fél másodpercnél. Végül meghatározzuk, hogy az átmenet effektus fokozatos legyen. Nem az ease az egyetlen hatás, ami itt használható, lehet helyette például linear vagy ease-in is. Egyszerűen csak egy kicsit másképp fog kinézni. Próbáld ki őket te magad, hogy lásd, melyik tetszik jobban.

A beviteli mező stílusának most valahogy úgy kellene kinéznie, mint a lenti kód.

Hogyan működik a CSS átmenet?

Ha nem ismered a CSS átmeneteket, hadd adjak egy rövid áttekintést. Először is az átmenet működéséhez a tulajdonságot alapállapotban kell definiálni, nem pedig hover, active vagy focus módban.

A CSS átmenetek lehetővé teszik a fokozatosan változó effektusokat, és megadhatod a vezérelendő paramétereket, mint például hogy mely tulajdonságra legyen hatással, mennyi legyen az átmenet időtartama és milyen fajta átmenet legyen. Egy elemnek több átmenete is lehet. De ami a legfontosabb, hogy mindig tartalmazniuk kell a prefixeket annak érdekében, hogy a különböző böngészőkön működjön, mivel ennek a tulajdonságnak a támogatása még nem általános.

További információkért nézd meg ezt: CSS3 átmenetek és átalakítások a kezdetektől

#2. Beviteli mező kiterjesztése hoverrel

Ebben a példában a keresés csak egy nagyító ikonként kezdődik. Amikor az ikonra viszed az egeret, akkor a keresőmező megnyúlik és utána begépelheted a kérésedet. A példa kódjának nagy része nagyon hasonló lesz az előző példához.

A HTML

A CSS

A beviteli mező stilizálása ennél az átmenetnél eltérő. A beviteli mező jelentősen kisebb, így az ikon egy négyzet mögött tud megjelenni. A többi tulajdonság, mint például a háttér- vagy a betűszín marad ugyanaz, mivel nem akarjuk teljesen megváltoztatni a keresés stílusát.

Ahogy láthatod, az átmenet tulajdonságát is újradefiniáltuk, hogy csak a szélességre legyen hatással. Az időt ugyanannyira állítottam, mert ez elég gyors ahhoz, hogy ne idegesítse a felhasználókat, de mégis elég hosszú ahhoz, hogy egy szép effektust hozzon létre.

Alább található a kód a helymegőrző szöveg átszínezésére.

És ismét itt az ikonunk a CSS stílussal. Ennek ugyanolyannak kell lennie, mint az előző példában.

A Hover effektus hozzáadása

A legutolsó dolog, amit meg kell tennünk, hogy meghatározzuk, hogyan nézzen ki a keresés, amikor rávisszük az egeret. Az alábbi kódrészletben az első szabály gondoskodik róla, hogy az űrlapnak ne legyen a böngésző által megadott ragyogása, és amikor a beviteli mezőt használod – amikor gépelsz bele – a keresőmező megnyújtott marad. A középső szabály megnyújtja a beviteli mezőt a teljes szélességére, amikor rávisszük az egeret.

Az utolsó dolog, ami a fenti kódban történik az, hogy amikor rávisszük az egeret, az ikon színt változtat. Ez csak egy apró részlet, ami gyorsan megmutatja egy felhasználónak, hogy a keresődoboz aktív és működik, és nem pedig csak egy sima beviteli mező. A változtatást nem az átmenet végzi.

#3. Ikonméret növelése az egér rávitelekor

A négy példa közül ez a legkifinomultabb, a kódot és a vizuális hatást tekintve. Ebben az esetben a nagyító ikon enyhén megmozdul és megnő a mérete.

A HTML

Az ikon és a keresődoboz HTML kódja ismét ugyanaz, mint az előző két példában. A kivétel természetesen az, hogy itt .container-3 van.

A CSS

Ennek a példának a CSS-ében nincs semmi speciális. Legnagyobb részében nagyon hasonlóan kezdődik, mint az első példa, ahol az alapértelmezett állapot semmiben sem különbözik. Alább található a container és a beviteli mező kódja. Figyeld meg, hogy most nincs átmenet az input mezőn.

Ismét megvannak a helymegőrzők szabályai.

Most kinézetre ennek a példának az ikonja is ugyanaz. Ugyanaz a szín, ugyanaz a pozíció és így tovább. Ugyanakkor hozzáadtam egy átmenetet. Ezek az átmenetek minden tulajdonságra vonatkoznak, ami leegyszerűsíti a dolgot, mert így nem kell őket egyesével megadni.

A Hover effektus hozzáadása

Jó néhány dolog történik a fenti kódban. Először is megváltoztatjuk az ikon színét, ha rávisszük az egeret, és egy kicsit magasabbra mozgatjuk, ezért függőlegesen középre kell igazítani, amikor nagyobbá válik. Másodszor hozzáadunk egy transzformációt az ikon elemhez az egér rávitelekor, így valójában az eredeti méret másfélszeresére fog nőni. Mivel az előzőleg definiált átmenet úgy lett megadva, hogy minden tulajdonságra hatással legyen, úgy fog tűnni, mintha az ikon mérete nőne meg az egér rávitelekor.

Ismét csak azt tudom mondani, hogy vess egy pillantást a CSS3 átmenetek és átalakítások a kezdetektől-re, hogy többet megtudj a transformation tulajdonságról.

#4. Hover gomb

Az előző három példától eltérően ez sokkal bonyolultabb lesz. Az egér rávitelekor egy gomb fog becsúszni a beviteli mezőbe, hogy lehetővé tegye a folytatást – mintha egy Küldés vagy Tovább gomb lenne. A gombban egy nagyító ikon lesz.

A HTML

Itt a HTML egy kicsit különbözik. A beviteli mező természetesen továbbra is itt van, de az ikon most egy button elembe került, ami a beviteli mező után következik. Fontos, hogy a button a beviteli mező után legyen, mivel függ attól az effektustól, amit CSS-ben fogunk elkészíteni.

A CSS

Ebben a példában a CSS különböző, így figyelj rá! Lentebb látható a konténert stilizáló kódrészlet. Először is a position: relative hiányzik; már nem fontos, mivel az ikonnak nem kell a beviteli mező elején lennie. Ugyanakkor van egy overflow: hiddenünk. Ez gondoskodik róla, hogy a gomb ne jelenjen meg, amikor nem visszük rá az egeret. Technikailag a megjelenő gomb a beviteli mező jobb oldalán van, de az overflow:hidden-nek köszönhetően nem látszik, amikor a konténer szélességén túl nyúlik – a konténer és a beviteli mező ugyanolyan széles.

A beviteli mezőnek nincs átmenete, mivel ezúttal nem ezt az elemet érinti.

Ezt követi a helymegőrző átszínezésének kódrészlete.

Lent található a gomb stílusának kódja, ami akkor lép életbe, ha rávisszük az egeret. A trükk az, hogy becsússzon oldalról a helyére a beviteli mező mögé, és hogy láthatatlanná váljon ha nincs fölötte az egér. A button az az elem, ami megváltozik – mozog –, ezért erre kell az átmenetet meghatározni. A dolgok leegyszerűsítése végett azonosítóval láttam el az átmenetet, hogy minden tulajdonságra hasson.

A Hover effektus hozzáadása

A gomb elhalványítása érdekében a beviteli mező elejére kell azt mozgatni. Ezt a negatív margóval lehet megtenni. Előzőleg a gomb átlátszóságát 0-ra állítottuk, így vissza kell tenni 1-re annak érdekében, hogy a gomb is látszódjon.

Az utolsó szabály csak a gomb hátterét változtatja meg, ha ráviszed az egeret. Hasznos tudatni egy felhasználóval, hogy a gomb aktív és rákattinthat a keresés elküldéséhez; nincs értelme egy inaktív gombnak csak úgy ott lennie.

Konklúzió

Nos, végére értünk a CSS kísérleteinknek! Fogtunk egy alap keresési űrlapot és kisebb effektusokkal megváltoztattuk a viselkedését. Te milyen hasonló változtatásokat javasolnál egy keresőmezőhöz? A CSS átmenetek vagy átalakítások milyen más aspektusait alkalmaznád rá? Tudasd velünk a hozzászólásokban!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.