{"id":877,"date":"2008-12-02T08:35:37","date_gmt":"2008-12-02T07:35:37","guid":{"rendered":"http:\/\/my.stargazer.at\/?p=877"},"modified":"2008-12-02T08:35:37","modified_gmt":"2008-12-02T07:35:37","slug":"buttons-without-js","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2008\/12\/02\/buttons-without-js\/","title":{"rendered":"Buttons ohne JS"},"content":{"rendered":"<p>Nostalgie ist ja was Sch\u00f6nes &#8211; vor allem wenn man uralte Webseiten ausgr\u00e4bt, welche man irgendwann mal gebaut hat. In meinem Fall geht es um die Seite auf <a href=\"http:\/\/www.stargazer.at\">www.stargazer.at<\/a>, auf welcher ich eigentlich mit den ganzen Basteleien angefangen habe.<\/p>\n<p>Eines der damaligen Probleme waren Buttons, welche sich ver\u00e4ndern, sobald man mit der Maus dr\u00fcber f\u00e4hrt. Damals war unser L\u00f6sungsansatz meist ein Haufen Java Script Code, welcher nicht unbedingt \u00fcberall lief, was immer wieder durch die &#8218;Best viewed&#8216; Meldungen angezeigt wurde.<\/p>\n<p><!--more-->Da wir heute kl\u00fcger sind, wissen wir, dass man zwar die ganzen Java Script Stunts zwar besser machen k\u00f6nnte, es aber mehr Sinn macht, diese Effekte so simpel wie m\u00f6glich zu l\u00f6sen. Hier ist ein Ansatz, der ganz ohne Scripts auskommt<\/p>\n<p>Unser Button hat grunds\u00e4tzlich zwei Bilder zwischen welchen umgeschaltet werden sollte. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-a.png\" alt=\"button-a\" title=\"button-a\" width=\"315\" height=\"92\" class=\"alignnone size-full wp-image-878\" srcset=\"https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-a.png 315w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-a-150x44.png 150w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-a-300x87.png 300w\" sizes=\"auto, (max-width: 315px) 100vw, 315px\" \/><\/p>\n<p>Das Andere zeigt nun den Button, wie er gedr\u00fcckt ist:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-b.png\" alt=\"button-b\" title=\"button-b\" width=\"315\" height=\"92\" class=\"alignnone size-full wp-image-880\" srcset=\"https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-b.png 315w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-b-150x44.png 150w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-b-300x87.png 300w\" sizes=\"auto, (max-width: 315px) 100vw, 315px\" \/><\/p>\n<p>W\u00fcrden wir nun diese Bilder per CSS einer Navigation zuweisen, k\u00f6nnte das wie folgt aussehen:<\/p>\n<blockquote><p>\n#foo .nav li a { display:block; height:211px; float:left; }<br \/>\n#foo .nav li a.menu:hover { background:url(button-b.png) no-repeat; }<br \/>\n#foo .nav li a.menu { background:url(button-a.png) no-repeat; }<br \/>\n#foo .nav li a.menuSel { background:url(button-b.png) no-repeat; }\n<\/p><\/blockquote>\n<p>Unser Browser wird uns wahrscheinlich beim Anzeigen diverse Probleme bereiten, da eben keine Bilder geladen werden, die nicht angezeigt werden m\u00fcssen und wir stehen vor einem Problem. Also m\u00fcssen wir uns etwas einfallen lassen. Da man mit Hilfe von Stylesheets Bilder ausrichten kann, setze ich dort an, indem ich beide Buttons einmal zu einem Bild kombiniere, was dann im Endeffekt wie folgt aussieht:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-ab.png\" alt=\"button-ab\" title=\"button-ab\" width=\"315\" height=\"211\" class=\"alignnone size-full wp-image-879\" srcset=\"https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-ab.png 315w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-ab-150x100.png 150w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2008\/12\/button-ab-300x200.png 300w\" sizes=\"auto, (max-width: 315px) 100vw, 315px\" \/><\/p>\n<p>Und nun kommt unser kleiner Trick mit der Ausrichtung zum Einsatz: Ich weise allen Zust\u00e4nden das gleiche Bild zu, richte es jedoch einmal nach der unteren Kante und einmal nach der oberen Kante aus und lasse den Rest des Bildes ausserhalb seines definierten Anzeigebereiches verschwinden<\/p>\n<blockquote><p>\n#foo .nav li a { display:block; height:211px; float:left; }<br \/>\n#foo .nav li a.home:hover { background:url(..\/images\/button-ab.png) left bottom no-repeat; }<br \/>\n#foo .nav li a.home { background:url(..\/images\/button-ab.png) left top no-repeat; }<br \/>\n#foo .nav li a.homeSel { background:url(..\/images\/button-ab.png) left bottom no-repeat; }\n<\/p><\/blockquote>\n<p>Das Ergebnis ist ein sch\u00f6ner Button, welcher beim Dr\u00fcberfahren mit der Maus sein Erscheinungsbild \u00e4ndert. Und das alles ganz ohne den Einsatz von Java Script und als Draufgabe sogar mit den g\u00e4ngigen Browsern kompatibel.<\/p>","protected":false},"excerpt":{"rendered":"<p>Nostalgie ist ja was Sch\u00f6nes &#8211; vor allem wenn man uralte Webseiten ausgr\u00e4bt, welche man irgendwann mal gebaut hat. In meinem Fall geht es um die Seite auf www.stargazer.at, auf welcher ich eigentlich mit den ganzen Basteleien angefangen habe. Eines der damaligen Probleme waren Buttons, welche sich ver\u00e4ndern, sobald man mit der Maus dr\u00fcber f\u00e4hrt. Damals war unser [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[186],"class_list":["post-877","post","type-post","status-publish","format-standard","hentry","category-it-related-stuff","tag-webdesign"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=877"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/877\/revisions"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}