Forum: NOF - Tutorials (185 anschauliche Tutorials zum Lesen und Nacharbeiten) > Design, Layout, gestalterische Elemente

Hover-Effekte für Textfelder mittels CSS

(1/1)

nettesekel:
Wie man bei Textfeldern mittels CSS hover-Effekte (optische Veränderung bei Mouseover) erzielen kann, erklärt das folgende Tutorial.

Damit die Hover-Effekte auch im IE funktionieren, publiziert eure Website bitte unter dem DocType LOOSE.
In den neuen NOF-Versionen wählt ihr hierfür die HTML-Ausgabe "HTML 4.01", in älteren NOF-Versionen könnt ihr diesen Doctype mit Hilfe der SwissKnife-DocType-Komponente publizieren.

Die Komponente könnt ihr hier downloaden.
Hier könnt ihr nachlesen wie sie installiert wird.
Und hier findet ihr eine Anleitung zur Nutzung der Komponente.

nettesekel:
In der folgenden Demo seht ihr 1 Textfeld mit Inhalt, welches bei Berührung mit der Maus seine Hintergrundfarbe, Rahmenfarbe und die Textfarbe verändert.



Um diesen Effekt zu erzielen habe ich folgende Einfügungen vorgenommen:

------------------------------------------------------------------------------------------------
Code zum Einfügen zwischen den Head-Tags der Seite
------------------------------------------------------------------------------------------------


--- Code: HTML5 ---<style type="text/css">div.style {border: 2px solid #000000; background:#FEDDF7; color:blue; padding:8px;}div.style:hover {border: 2px solid #FF0000; background:#ffffff;color:gray;padding:8px;}</style>
------------------------------------------------------------------------------------------------
Code zum Einfügen ins HTML des Textfeldes vor dem Tag (vorher) öffnet den Div-Container
------------------------------------------------------------------------------------------------

--- Code: HTML5 ---<div class="style">
------------------------------------------------------------------------------------------------
Code zum Einfügen ins HTML des Textfeldes nach dem Tag (nachher) schließt den Div-Container
------------------------------------------------------------------------------------------------

--- Code: HTML5 ---</div>


Für die Einfügungen im HTML des Textfeldes darf das Textfeld nur einfach angeklickt werden, heißt, im Textfeld darf kein Cursor blinken. Die Einfügung sorgt dafür, dass der Inhalt des Textfeldes von einem Div-Container umschlossen wird. Das heißt, das Textfeld wird quasi zum Div-Container (div) und im öffnenden Tag des Divs wird dem Div die entsprechende CSS-Klasse zugewiesen.

nettesekel:
------------------------------------------------------------------------------------------------
Erklärung zum Code
------------------------------------------------------------------------------------------------

Der Code besteht aus zwei Zeilen die CSS-Angaben enthalten.
Eine Zeile für den Standard-Zustand des Textfeldes(Divs) und eine Zeile für den Hover-Zustand der Textfeldes(Divs).

Die Zeile für den Standard-Zustand setzt sich aus dem Kürzel für den Div-Container...

--- Code: HTML5 ---div
...gefolgt vom Namen der CSS-Klasse...

--- Code: HTML5 ---.style
...gefolgt vom eigentlichen Inhalt der Klasse zusammen.

--- Code: HTML5 ---{border: 2px solid #000000; background:#FEDDF7; color:#2B2ED1;padding:8px;}
Hier wird die Rahmenstärke (2px), der Rahmenstil (solid) und die Rahmenfarbe (#000000) , die Hintergrundfarbe (#FEDDF7), die Schriftfarbe (#2B2ED1) und der Abstand des Textes zum Rand des Textfeldes (8px) für den Standard-Zustand definiert.

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

Die Zeile für den Hover-Zustand setzt sich fast identisch zusammen.
Sie beginnt ebenfalls mit dem Kürzel für den Div-Container, gefolgt vom Namen der CSS-Klasse...

--- Code: HTML5 ---div.style
...nur folgt hier im Anschluss an den Namen der CSS-Klasse noch die Einfügung:

--- Code: HTML5 ---:hover
...und erst dann geht es mit den Style-Angaben für den Hover-Zustand des Div-Containers weiter.

--- Code: HTML5 ---{border: 2px solid #FF0000; background:#ffffff;color:#808080;padding:8px;}

nettesekel:
Natürlich lassen sich auch verschiedene Textfelder verschieden formatieren, wie ihr in der folgenden Demo unschwer erkennen könnt.




Hierzu müsst ihr einfach nur für jedes Textfeld das anders aussehen soll, eine weitere CSS-Klasse erstellen...


--- Code: HTML5 ---<style type="text/css">div.style {border: 2px solid #000000; background:#FED........}div.style:hover {border: 2px solid #FF0000; background:#FFF.....} div.styleA {border: 2px solid #000000; background:#FED........}div.styleA:hover {border: 2px solid #FF0000; background:#FFF.....} div.styleB {border: 2px solid #000000; background:#FED........}div.styleB:hover {border: 2px solid #FF0000; background:#FFF.....} div.styleC {border: 2px solid #000000; background:#FED........}div.styleC:hover {border: 2px solid #FF0000; background:#FFF.....}</style>
...und das entsprechenden Textfeld wieder mit einem div umschließen, welchem die jeweilige CSS-Klasse zugewiesen ist.

In meinem Beispiel wären das die Klassen:

style    >>  class="style"   >>  <div class="style">
styleA  >>  class="styleA"   >>  <div class="styleA">
styleB  >>  class="styleB"   >>  <div class="styleB">
styleC  >>  class="styleC"   >>  <div class="styleC">

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln