php.de

Zurück   php.de > php.de Intern > Wiki Diskussionsforum > Tutorials

Tutorials Hier findest Du Tutorials, welche nach und nach ein fertiges Script ergeben. Sehen, lernen & verstehen!

Antwort
 
LinkBack (1) Themen-Optionen Thema bewerten
Alt 15.05.2005, 14:18  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard Hoverbutton mit HTML/CSS ohne JS, Flash etc.

Diese Tutorial wurde von RaZoR geschrieben.

------------------------------------------------

Das koplette Tut steht im nächsten post.
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.05.2005, 15:52  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

// edit by supertramp:
ich habe das kompl. Tutorial hierher kopiert, damit RaZoR die Möglichkeit zum editieren hat.


Was ist ein Hoverbutton?

Unter einem Hoverbutton verstehe ich einen Link oder einen Submit Button der aus zwei Grafiken besteht. Einer die im "Normalzustand" angezeigt wird und eine die beim überfahren mit der Maus angezeigt wird.



Einleitung

Da ich schon viele Seiten gesehen habe die ihre Navigation oder sonstige Buttons mit aufwendigen Grafiken verschönern aber dabei oftmals auf umständige Javascripts, Flashanimationen oder Java Applets zurückgreifen wollte ich mal meine Technik vorstellen.

Bei Javascript, Flash oder Java Applets wird immer vom Benutzer ein zusätzliches "Plugin" benötigt! Da viele Benutzer Javascript ausgestellt haben bzw. garkein Flash oder Java Applet verfügen wird bei ihnen meist der Effekt garnicht angezeigt.

Das ganze Funktioniert allerdings auch nur mit reinem HTML und CSS! Dies hat zum Vorteil dass kein Javascript oder Plugins benötigt werden. Außerdem hat es Vorteile bei der Geschwindigkeit und der Ladezeit. HTML und CSS sind im Gegensatz zu Flash und Java Applets schnell geladen.



1. Bilder für die Buttons

Als erstes brauchen wir zwei Bilder die später den Button darstellen sollen.
Normal:
Hover:



2. HTML Code

Ein weiterer Vorteil bei dieser Lösung ist der relativ einfache und kurze HTML Code.

Code:
Klick 
Das war schon alles! Mit 'class="my_button"' wird dem Link einem bestimmten CSS Element zugewiesen.



3. CSS Code

Das wichtigste am ganzen ist der CSS. Hier wird definiert dass das normale Bild angezeigt werden soll und bei einem überfahren mit der Maus das Bild zum zweiten Bild wechseln soll.

Code:
a.my_button, a.my_button:visited {
    background-image: url(button_normal.gif);

    height: 27px;
    width: 100px;

    display: block;
}

a.my_button:hover, a.my_button:active, a.my_button:focus {
    background-image: url(button_hover.gif);
}
Das erste Element ist der Button im Normalzustand. (a.my_button und a.my_button:visited) Mit 'background-image' geben wir das Bild an dass im Normalzustand angezeigt werden soll. Mit 'height' und 'width' geben wir die größe des Bildes an! Dies ist notwendig da der Button sonst nur so hoch und breit wäre wie der Text im Button selber.

Wichtig ist jetzt dem 'a' Element die Eigenschaft 'block' zu geben. Dies hat den Effekt dass der Button nun die angegebene Breite und Höhe annimmt und das Hintergrundbild verwendet.

Das zweite Element ist der Button wenn die Maus über ihm ist. (a.my_button:hover und a.my_button:active) Da die Eigenschaften vom ersten Element hier übernommen werden müssen wir nur das eigentliche Bild ändern. Dies machen wir wieder mit 'background-image'.

So funktioniert jetzt schon der Button.

Code:
<style type="text/css">
<!--
a.my_button, a.my_button:visited {
    background-image: url(button_normal.gif);

    height: 27px;
    width: 100px;

    display: block;
}

a.my_button:hover, a.my_button:active, a.my_button.focus {
    background-image: url(button_hover.gif);
}
-->
</style>

Klick 

4. Text anpassen

Da jetzt der Text allerdings im Button noch nicht passt können wir noch folgendes machen.

Code:
a, a:visited {
    background-image: url(button_normal.gif);

    text-decoration: none;
    text-align: center;
    color: #A3BABC;
    font-size: 10px;
    font-family: verdana;

    line-height: 27px;
    vertical-align: middle;
    height: 27px;
    width: 100px;

    display: block;
}

a:hover, a:active, a:focus {
    background-image: url(button_hover.gif);

    text-decoration: none;
    color: #EDFFFF;
}
Mit 'text-decoration' geben wir an das der Link beim überfahren nicht unterstrichen werden soll. 'text-align' zentriert in diesem Fall den Text, 'color' gibt die Farbe im Normalzustand bzw. im Hoverzustand an. 'font-size' und 'font-family' geben Größe und Art des Textes an.

Ein Problem ist es denn Text auch vertikal zu zentrieren. Bei Firefox und Opera kann man das durch folgendes erreichen. 'line-height' gibt die Höhe des Bereiches an in dem Text stehen kann. Normal ist die Höhe gleich der des Textes und ist am oberen Rand des Elements angesiedelt. Mit 'vertical-align' geben wir an das der Text in der Mitte zentriert werden soll. Da nun der Bereich in dem der Text steht so groß ist wie der Button wird der Text zentriert.


5. Hoverbutton bei Formularen

Auch bei Formularen kann der Submitbutton als Hoverbild gestalltet werden.

Code:
<input type="submit" class="my_button" value="Klick" />
Bei dem Stylesheet (CSS) muss nun noch folgendes erweitert werden.

Code:
a.my_button, a.my_button:visited, input.my_button {
    ...
}

a:hover, a:active, a:focus, input.my_button:hover, input.my_button:focus {
    ...
}
Hinweis: Dieser Effekt funktioniert beim Submitbutton nicht im Internet Explorer 6.0.


6. weitere Möglichkeiten

Mit dieser Methode lassen sich wunderbare Effekte erzielen. Natürlich können anstatt .jpg Bildern auch .png oder .bmp :/ Dateien verwendet werden. Was sehr gut ankommt sind .gif Animationen! Ein Bild als Link der beim Mouseover eine Animation macht kann unter umständen sehr gut Aussehen.

Es ist auch möglich hover, active und focus zu trennen. Hover und Focus können zusammenbleiben da Hover beim "Mouseover" angezeigt wird und Focus wenn das Element markiert ist. Also wenn mit der Tab Taste auf diesen Link gesprungen wurde. Aber active kann als eigenen Punkt genutzt werden. Active wird angezeigt wenn der Link "geklickt" worden ist und die Seite grade die "neue" Seite läd allerdings derweilen noch die alte anzeigt.

Es können wirklich wunderbare Dinge damit erreicht werden! Würde mich freuen wenn ihr mir eine PN oder eine Email senden würdet wenn ihr irgendwo diese Technik verwendet.


7. Beispiel

Hier noch ein paar Beispiele was man mit CSS doch alles machen kann.

Beispiel


==========

Danke nochmal an Ben und seine Seite durch die ich gesehen hab das ein "input:hover" doch funktioniert, zumindest im Firefox und in Opera.
Bens Site: www.klaile.com

// 1. Änderung am 20.05.2005
// 2. Änderung am 01.06.2005: a:focus hinzugefügt (Thx 2 flupsi)
// 3. Änderung am 25.08.2005: Punkt 6. hinzugefügt -> alter Punkt 6. wurde zu Punkt 7.
Flor1an ist offline   Mit Zitat antworten
Alt 17.05.2005, 23:40  
Benutzer
 
Registriert seit: 17.05.2005
Beiträge: 57
bluebird
bluebird eine Nachricht über ICQ schicken
Standard

Du scheinst Leute ned zu mögen, die den Internet Explorer verwenden, oder? Bei denen funktioniert nämlich ein CSS-Konstrukt wie input:hover mitnichten... darauf sollte man vll noch hinweisen :wink:
bluebird ist offline   Mit Zitat antworten
Alt 18.05.2005, 06:31  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

niemand mag die leute, die den ie wissentlich benutzen.
__________________
derHund ist offline   Mit Zitat antworten
Alt 18.05.2005, 07:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.039
Sclot befindet sich auf einem aufstrebenden Ast
Standard

j, aber macnhe könen garnichts dafür weil sie nicht die rechte haben den firefox zu installieren oder weil die höhergestellten leute das nicht wollen :/
Sclot ist offline   Mit Zitat antworten
Alt 20.05.2005, 11:34  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

auf solche hover effekte kann man auch verzichten! sie können die website um einiges verschöneren WENN er richtig eingesetzt wird. und mei wer den ie benutzt verzichtet eh auf so einiges und dann braucht der auch nicht den hover effekt zu sehen! das is meine meinung und ich werde bestimmt nicht tausend umwege gehen damit auch ie user ihren effekt sehen.

ja doof is scho aber was soll man machen. ich find es mit css ne bessere lösung als mit js. außerdem fällt das dem ie user nicht negativ auf nehm ich an. und wer möchte kann sein js trozdem verwenden dies ist ja nur ne möglichkeit

danke an bluebird für den hinweis das der effekt beim submitbutton im ie nicht funktioniert.
Flor1an ist offline   Mit Zitat antworten
Alt 29.05.2005, 12:51  
Gast
 
Beiträge: n/a
Standard

Warum machst du das mit dem input Element? Wenn es teil einer Navigation ist dann solltest du es mit dem a Element machen. Dann klappts auch im IE.
  Mit Zitat antworten
Alt 29.05.2005, 13:16  
Gast
 
Beiträge: n/a
Standard

Ich persönlich finde ja, dass man sich die Bilder sparen kann, da man das alles auch über 'border' machen kann, was ich genau so schön finde,

so z.B. (eine sehr primitive Version, mal gerad kurz hingeschrieben):

Code:
<html>
<head>
<style type="text/css">

a.button{
background: #000;
color:#fff;
display:block;
border:3px #ccc solid;
width:100px; 
height:20px;
}

a:hover.button{
border:3px #c0c solid;
}
</style>
</head>

<body>
peter
</body>
</html>
  Mit Zitat antworten
Alt 29.05.2005, 13:33  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Du-weisst-schon-wer
Warum machst du das mit dem input Element? Wenn es teil einer Navigation ist dann solltest du es mit dem a Element machen. Dann klappts auch im IE.
Klar wenn dus in der Navigation haben willst schreibst dus natürlich mit dem a Element!

Aber angenommen du willst deine Seite einheitlich halten und braucht diese Buttons auch für Formulare dann kannst du eben nur das input Element verwenden wenn du komplett auf JS verzichten willst! Es wäre natürlich möglich dem a Element noch onClick="document.form_name.submit()" anzuhängen aber dies wäre wieder JS und darauf will ich gezielt verzichten! Heißt ja nicht das dus nicht so machen darfst :P

@Eddie: Das stimmt schon allein mit einem Rand kann sich auch viel machen wenn du z.b. auch die Hintergrundfarbe änderst! Auch mit der Breite kannst du rumspielen um so das aktive Element in der Navigation hervorzuheben! Angenommen du hast eine Navigation 100px breit. Inaktive Elemente sind 80px breit und beim Hover werden sie dann zu 100px ... als Beispiel.

Aber ich wollte eben zeigen das man eben auch Bilder sehr einfach Verändern kann und dabei komplett auf JS verzichten zu können.

Wie dus im Endeffekt machst ist egal. Geschmackssache. Aber es gibt genug Seiten die eben Bilder verwenden und dadurch sieht das ganze dann schon besser aus als nur Rahmen etc.
Flor1an ist offline   Mit Zitat antworten
Alt 01.06.2005, 17:34  
Gast
 
Beiträge: n/a
Standard

Zu a:active sollte man vielleicht noch a:focus hinzufügen, damit der Effekt auch auftritt, wenn die Navigation über die TAB-Taste benutzt wird.
Ansonsten danke für das anschauliche Tutorial.
Gruß
flupsi
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/tutorials/23047-hoverbutton-mit-html-css-ohne-js-flash-etc.html
Erstellt von For Type Datum
Animationen Flash - internet-kampagnen.de This thread Refback 08.03.2011 14:12

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php flash banner mqs PHP Tipps 2008 5 19.03.2008 11:12
Aufzählung für Flash RealXtC PHP Tipps 2008 4 08.03.2008 16:00
XHTML 1.0 Transitional & Flash JEGO HTML, Usability und Barrierefreiheit 2 07.08.2006 10:21
Variablen an Flash Übergeben? Smily0412 HTML, Usability und Barrierefreiheit 1 22.02.2006 11:05
Banner im Layer über nem Flash! Quagga HTML, Usability und Barrierefreiheit 13 21.02.2006 19:05
PHP mit Flash plongo_291 PHP Tipps 2006 57 20.01.2006 14:55
Flash + Blättern cytrobic HTML, Usability und Barrierefreiheit 15 18.01.2006 10:39
phpsessid bei flash menü übergeben PHP Tipps 2005-2 2 16.09.2005 16:01
Flash und MySQL? Charly Shop Sui Datenbanken 3 11.09.2005 00:33
Formular von Flash nach mySql PHP Tipps 2005-2 4 27.06.2005 21:34
onmousein flash einblenden, bei onmouseout ausblenden HTML, Usability und Barrierefreiheit 11 08.06.2005 11:00
Php + Flash PHP Tipps 2005-2 7 07.06.2005 11:44
div über flash legen + jp statt flash HTML, Usability und Barrierefreiheit 14 02.02.2005 12:14
mal ne andere frage: flash HTML, Usability und Barrierefreiheit 0 07.01.2005 17:18
Flash mit PHP oder umgekehrt ?! PHP Tipps 2004 1 02.07.2004 07:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
hover button, css button hover, css hover button, button hover css, html hover button, hover button css, hoverbutton, html button hover, submit button hover, button css hover, hover button html, css hover buttons, button hover, html css hover, html input image ändern, html button css, button hover mit css, hover html css, css buttons hover, http://www.php.de/tutorials/23047-hoverbutton-mit-html-css-ohne-js-flash-etc.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.