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!
Nézd meg a végeredményt a demo oldalon, vagy töltsd le a forrásfájlokat segítségként!
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
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 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?
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>
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.
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.
köszi
11.01.16
20:05
Csak meg szeretném köszönni, nagyon sokat segítettél.
Szóval: köszönöm :D
Üdv.
Bogi
11.04.20
14:48
Ü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
codeart
11.04.20
17:52
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?
Bogi
11.04.20
18:58
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.
codeart
11.04.20
20:12
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.
Bogi
11.04.20
22:08
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??? :(
codeart
11.04.20
23:43
Így már világos, lemaradt a px az értékek végéről. Pótold és működni fog.
Bogi
11.04.21
08:48
Köszönöm.
Acero
11.05.21
14:45
Helló!
Rendkívül jó és hasznos ötlet! Hasonló cikkeket szívesen látnék.
Köszönöm!
Dia
11.08.08
15:30
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