Nagyon sok designer, tervező és fejlesztő hagyja figyelmen kívül a menük, gombok állapotait, mert alábecsülik a jelentőségüket, vagy csak egyszerűen lusták. Pedig elkészítésük igen egyszerű és gyors feladat. Javítja a használhatóságot és a felhasználó visszajelzéseket kap a kattintásának állapotáról. Egy ilyen három állású gombot fogunk most elkészíteni, melyhez egy képet és pár css beállítást alkalmazunk.

Cikkünk a hirdetés után folytatódik!

Demo és letöltés

Nézd meg a végeredményt a demo oldalon, vagy töltsd le a forrásfájlokat segítségként!

Thumbnail CSS Gomb
(76.54 KB) | 462 letöltés
3 állású CSS gomb

A design

Mielőtt nekilátunk a dolgoknak el kell készítenünk egy design-t. Nyissuk meg a photoshopot és tervezzünk egy gombot tetszés szerint. Az enyém ilyenre sikerült:

gomb

gomb

Ha kész, állítsuk a dokumentum magasságát pontosan a 3-szorosára, és másoljuk le a gombunkat, szépen egymás alá. A középső lesz a hover gomb az alsó pedig az active. Alakítsuk át őket tetszés szerint.

3 állás

3 állás egy képen

A kész képet mentsük el button néven. Én png-t használtam, de ez nem kikötés. Menthetsz jpg-t, vagy gif-et is.

Miért is jó ez a megoldás?

  • csökkenti a HTTP kéréseket, ami gyorsabb letöltődést tesz lehetővé
  • megakadályozza a villódzó hatást, ami a különálló képeknél gyakori

A html és CSS kód

A html

Egy sima linket fogunk átalakítani css-el, amelyet gondolom mindenki ismer, de ha mégsem, így néz ki:

<a class="button" href="#" title="Gomb">Button</a>

A CSS

Illesszük a következő css kódot a stílusfájlunkba, vagy a html-be:

a.button {
	background: url(button.png) no-repeat 0 0;
	width: 200px;
	height: 50px;
	display: block;
	text-indent: -9999px;
}

Mint láthatjuk, megadtuk a háttérképet, nem ismétlődve, és ami fontosabb, hogy a pozícióját úgy állítottuk be, hogy fönt, balra helyezkedjen el (0 0 ; x y). Ez a hover és active beállításnál lesz igazán érdekes amikor elmozgatjuk a képünket. Szélességet és magasságot is be kell állítanunk (figyeljünk arra,hogy a magasságot az eredeti képhez adjuk meg, tehát ne mind a 3 gombét). A text-ident felelős azért,hogy a linkben szereplő szöveg ne jelenjen meg a gombon, tulajdonképpen eltoljuk a szöveget 9999px-el, így biztosan nem fogunk vele találkozni.

A következő beállítás a hover. Itt megtartunk minden beállítást az előzőből, kivéve a háttér pozícióját. Mivel nekem 50px magas a gombom, pontosan ennyivel kellett elmozgatnom a hátteret az y tengelyen hogy megkapjam a hover állást:

a.button:hover { background-position: 0 -50px; }

Az utolsó állapotunk az active, ahol szintén elmozgatom a hátteret 50px-el. A többi beállítást itt is megtartjuk.

a.button:active { background-position: 0 -100px; }

Ezzel végére is értünk a segédletnek. A demo oldalon megtekintheted és kipróbálhatod a működő gombot. Alant pedig ajánlok egy pár oldalt ahol jobban megismerkedhetsz a gombkészítés rejtelmeivel.

Végszó

Mint láthatjátok egy egyszerű gomb esetében nem bonyolult a kivitelezés, viszont ezt a technikát alkalmazhatjuk komplett menüknél is, így csak egyszer szükséges letöltenünk a menühöz tartozó képet és nem fogja lassítani az oldalunkat, valamint a http kérések is csökkenni fognak. Sok sikert mindenkinek és ha elakadtok kérdezzetek nyugodtan.

Szerző:

A codeART 2009-ben alakult és azóta gyűjt inspiráló cikkeket és publikál design és webfejlesztés témában érdekes és hasznos leírásokat.

10 Hozzászólás

  1. Csak meg szeretném köszönni, nagyon sokat segítettél.
    Szóval: köszönöm :D
    Üdv.

  2. Üdv,

    Tudom, hogy nem mai a cikk, de hátha kapok választ…
    Az a kérdésem, hogy mi lehet az oka annak, hogy nem működik a gomb? Az alapállást mutatja, és nem áll át a hover és az active résznél a kép szükséges részére.

    Köszönöm,
    Bogi

  3. A hover és az active állapotot beállítottad? Milyen böngészőt használsz? Esetleg nincs egy link amin meg tudnám nézni?

  4. Ideiglenesen feltöltöttem ide: http://proba.reiki-fehervar.hu/index.html
    Végignéztem Chrome, Firefox, Opera ls IE böngészőkben is.
    Köszönöm.

  5. Nem állítottad be a hover és active állapotot, a cikkben kitérünk erre is.

    A hátteret el kell tolni, esetedben lefelé és annyival, ahány pixel magas a bombod.

    a.button:hover { background-position: 0 -200px; }
  6. Ennyire nem lehetek vak… így nézett ki a kód:
    a.index{
    background: url(images/index.gif);
    background-repeat: no-repeat;
    background-position: 0 0;
    width: 200px;
    height: 200px;
    display: inline-block;
    text-indent:-9999px;}
    a.index:hover {
    background-position: 0 -200;}
    a.index:active {
    background-position: 0 -400;}

    Az utolsó két sor nem az active és a hover állapot??? :(

  7. Így már világos, lemaradt a px az értékek végéről. Pótold és működni fog.

  8. Köszönöm.

  9. Helló!

    Rendkívül jó és hasznos ötlet! Hasonló cikkeket szívesen látnék.

    Köszönöm!

  10. Ez szuper!

    Még hogy 3 állású gomb készítésére a Flash a legalkalmasabb program! Ugyan már! Ez százszor jobb!

    Hálás köszönet érte!
    Dia

Szólj hozzá!

Használható tag-ek:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Kérünk ne használd a kommentedet linkelésre, reklámozásra, spammelésre! Csak, tartalomhoz kapcsolódó linkeket kérünk!