• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mouse over / hover OHNE Java!

Status
Für weitere Antworten geschlossen.
Da stehe ich gerade auf dem Schlauch.
Mein Vorschlag war, alles über background-image zu machen.

Den Hinweis, daß der Link angeklickt wurde halte ich für mehr als Überflüssig, da man doch weiß, was man angeklickt hat
Du hast noch nie mit der Tastatur navigiert, oder?
Der Rahmen ist da, damit Du siehst, was Du "anklicken" wirst, nicht, was Du angeklickt hast.

Solche Kästen um Navigationsbutton kann ich auf 90% der Seiten nirgens finden
Die sind bei jedem angeklickten Link.

Der Kasten ist ja auch da, wenn man es nicht anklickt....;)
Reden wir evtl. doch von was anderem? Einem border um ein verlinktes img?

je nach Bildschirmgröße sitzt nun das Hintergrundbild woanders
Die Größe des Bildschirms ist beim Erstellen von Websites unerheblich. Wichtig ist die Größe des Viewports im Browserfenster.
 
Werbung:
Was den Rahmen angeht: Ich habe wie gesagt über Dreamwaver als erstes diese Effekte über die dort voreingestellte Möglichkeit für Mouse-Over Effekte erstellt. Diese sind allerdings über ein Javascript geschrieben. Hierbei habe ich keinerlei Rahmen oder sonstige Umrandungen meener Button und es funktioniert einwandfrei . Und auch nur so kenne ich das. Das schon beim öffnen der Seiten meine Buttons mit blauen Rahmen (und beim anklicken schickem Lila!) versehen sind, kenne ich von keiner anderen Seite. Irgendwas stimmt also bei der jetzigen Schreibweise nicht. Kannst du was entdecken in meinen Code?


Was die Position des Hintergundbildes (Hoverbildes) angeht: Klingt spannend - wie macht man das?^^ Das Hover-Bild soll natürlich IMMER hinter dem Vordergundbild sitzen. Aber wie?

PS: Nicht daß wir uns falsch verstehen - ich spreche hier nicht von meinem kompletten Hintergrund - sondern von dem HoverBild (Hintergrundbild für den Hover-Effekt)
 
Das schon beim öffnen der Seiten meine Buttons mit blauen Rahmen (und beim anklicken schickem Lila!) versehen sind
Jetzt verstehe ich.
Schließt Du ein <img> in ein <a> ein, machen die Browser in der Regel einen Rahmen (border) um das <img>, um dem Nutzer zu zeigen, dass es sich um einen Link handelt. Ich sprach in der Tat von anderen Rahmen.
Wenn Du den nicht willst, musst Du den explizit ausschalten:
Code:
a img {
  border:none;
}
Irgendwas stimmt also bei der jetzigen Schreibweise nicht.
Nein, das ist schon in Ordnung so.
In CSS gilt immer: Eigenschaften, die man will oder nicht will, muss man explizit angeben. Willst Du also keinen Rahmen um Deine Bilder, musst Du sie explizit abschalten (s.o.).

Klingt spannend - wie macht man das?
Macht was? Ich weiß grad nicht, worauf Du Dich beziehst.
 
Werbung:
Ahhhhhhhhhhhh.....schon besser ;)

Jetzt weiß ich auch das^^ Danke!


Mit "wie macht man das" meine ich, wie bekomme ich es hin, daß nun dieses tolle "Hover-Bild" auch immer schön hinter dem "Vordergrundbild" bleibt?

Da mein Vordergrundbild mittig angeordnet ist.
Habe das Problem aber nun mit einem center;gelöst ;)

Jaja - ich schaff auch was alleine *g



Nun aber nochmal eine weitere Frage:
Wenn ich nun 2-3-4 oder mehr Buttons untereinander oder nebeneinander haben möchte? Wie muss dann der Code aussehen? Es muss ja jeder Buttons mit einem eigenen Vorder- und Hintergrundbild versehen werden.

Hier nochmal der aktuelle Link: http://web-emotion.com/


Es muss ja sicher #bild b,#bild b:visited dahin oder?

Und wie wird es dann im html-Code jeweils zugewiesen? Kannst du anhand meines Codes ein Beispiel machen?
 
Der HTML-Code:
Code:
<ul id="Menu">
  <li><a href="foo.html" id="foo"><img src="foo.jpg" alt="foo" /></a></li>
  <li><a href="bar.html" id="bar"><img src="bar.jpg" alt="bar" /></a></li>
</ul>
CSS:
Code:
a#foo:hover {
    background-image:url(foo_hover.jpg);
}
a#bar:hover {
    background-image:url(bar_hover.jpg);
}
P.S.: Deine ganzen unnötigen <div> schmeißt Du ja noch alles raus, ja?
 
Ich versuche es *g


Verstehe ich es richtig, daß ich bei:

#bild a:hover {
background: url('../Eigene Webseite-Bilder/Buttons/homer-klein-hover.png') no-repeat 620px 0px;

direkt unten drunter:

a#foo:hover {
background-image:url(foo_hover.jpg);
}

setzen muss?



Und verstehe ich es richtig, daß die Namen "bild" "foo" usw. eigentlich heißen können wie ich will?Hauptsache sie finden sich im html-Code genau so wieder?
 
Werbung:
Optimal wäre anhand meines jetzigen Codes ein Beispiel von dir.
Weil ich bis jetzt auch kein <ul id="Menu"> oder ähnliches finde bei mir.

Muss das:

<div align="center"><a href="index.html"><img src="../Eigene Webseite-Bilder/Buttons/homer-klein.png" name="Home" id="Home"/></a> </div>


dadurch komplet ersetzt werden?
 
Na, ein bisschen was selber machen musst Du schon :-)

1. Wozu brauchst Du die ganzen ineinander verschachtelten divs? Wenn Du die Antwort nicht weißt, brauchst Du sie auch nicht.
2. Du willst ein Menü machen. Das zeichnet man dann als Liste aus. Natürlich findest Du bisher keine in Deinem Code, aber das liegt daran, weil Du die Semantik bisher nicht beachtet hast (das ist ja das, was man mit HTML macht!). Also nimm Dein Menü (bestehend aus diesen Buttons) und mach daraus eine Liste, wie ich vorgeschlagen habe.
3. Du gehst recht in der Annahme, dass Du Namen für IDs und Klassen beliebig vergeben kannst. Die Angaben im Stylesheet (Selektoren) müssen sich natürlich in den HTML-Elementen wiederfinden.
 
Ok....im großen und ganzen habe ich es jetzt - schaust du bitte mal, ob du noch Fehler entdeckst bzw. Codes fehlen oder gar überflüssig sind?

Link--> CSS hover





Aber: Ich möchte die beiden Buttons nebeneinander haben - im Dreamwaver habe ich das auch und wird auch als nebeneinander angezeigt. Warum nicht in den Brwosern?

Und: Es sind auf die ganze Linie nach rechts und links neben den Buttons nun "Links".....wieso zieht sich der Link über den ganzen Bildschirm?

Und: die Punkte links - weg damit! ;) Wie mach ich das?


PS: Er hat mir Anker neben die Buttons gemacht - richtig so?

Immer wieder was neues.....was kommt noch?!
 
Werbung:
Was soll das <div> im <li>? Das hat da nichts zu suchen. Du willst den Button doch auch sowieso nicht zentriert haben, Du willst sie ja nebeneinander haben (Attribut "align" bitte auch wieder vergessen, die Optik wird ausschließlich mit CSS gemacht).

Wozu sind div#bild und div#box? Die werden doch gar nicht benötigt.

Um Block-Elemente (wie <li>) nebeneinander darzustellen, gibst Du ihnen entweder "float:left" oder "display:inline". In Deinem Fall würde ich float vorschlagen, weil bei Inline-Elementen keine Größe (width/height) angegeben werden kann und sich das mit Deinen Images beißen würde.

Der Link zieht sich über den ganzen Viewport (nicht Bildschirm), weil es ein Block-Element ist und die das so machen.

Punkte? Seh ich keine, aber ich vermute Du meinst "list-style-type:none", das bitte der Liste selbst (ul) zuweisen.

Was meinst du mit "Anker neben die Buttons"?

"Immer wieder was neues"...naja, jetzt kommst Du erstmal dahin, wie man den Code richtig schreibt...besser Du lernst das jetzt, als wenn Dein Stylesheet vermeintlich fertig ist und Du dann alles wieder ändern müsstest ;-)
 
Was soll das <div> im <li>? Das hat da nichts zu suchen. Du willst den Button doch auch sowieso nicht zentriert haben, Du willst sie ja nebeneinander haben


Doch - ich will es! Zentriert und nebeneinander - nicht links oder rechts irgendwo - in der Mitte! ;) Die Div's hat mir das programm mit der Funktion "zentrieren" reingesetzt - hab ich raus genommen, genauso wie das "align".
Jetzt sitzten die Buttons links untereinander.

Wozu sind div#bild und div#box? Die werden doch gar nicht benötigt.
Ich denke schon, daß man die brauch, da ansonsten wir wieder an dem Punkt sind, daß der Vordergundbutton flackert und kein Hintergundbutton mehr erscheint :( Sofern sie nicht stören, können sie ja bleiben.


Um Block-Elemente (wie <li>) nebeneinander darzustellen, gibst Du ihnen entweder "float:left" oder "display:inline". In Deinem Fall würde ich float vorschlagen

Hört sich gut an - aber wo kommt das hin? Im CSS Bereich? Weil du meinstest die Optik wird darüber definiert. Oder doch in den html Bereich? Und wo in den Bereichen kommt das rein? Hab einiges Probiert-nicht geklappt
:(

Seh ich keine, aber ich vermute Du meinst "list-style-type:none", das bitte der Liste selbst (ul) zuweisen.

Habe ich - steht bei Dreamwaver unter Liste und da ist das Häckchen auf "keine" Kann ich das "list-style-type:none" irgendwo einfügen?


Was meinst du mit "Anker neben die Buttons"?
Er hat mir Ankerpunkte neben die Buttons gesetzt - einzeln kann ich die nicht entfernen, dann geht der ganze Button weg :( Aber tut dem warscheinlich auch nichts zu Sache oder?



Scheint schon wieder schlimmer zu werden alles - verdammt :(
 
Doch - ich will es! Zentriert und nebeneinander
Na, das geht ja nicht. Zentrieren kannst Du höchstens die gesamte Liste, nebeneinander die einzelnen Listenpunkte.
In jedem Fall wird das mit CSS und nicht mit HTML gemacht, denn dafür ist HTML nicht zuständig.

Ich denke schon, daß man die brauch, da ansonsten wir wieder an dem Punkt sind, daß der Vordergundbutton flackert und kein Hintergundbutton mehr erscheint
Das sollte damit nichts zu tun haben. Wenn Du die raus nimmst, musst Du nur die CSS-Selektoren ändern, weil es dann ja kein "#bild" mehr gibt. Aber das ist der Grund, warum ich immer sage, dass man zuerst den Inhalt machen soll, dann alles semantisch richtig auszeichnen soll und erst dann Layout und Design machen soll.

Sofern sie nicht stören, können sie ja bleiben.
Sie sind überflüssig und verhindern, dass Du die Materie richtig lernst.

Hört sich gut an - aber wo kommt das hin? Im CSS Bereich?
CSS kommt immer in den Bereich, ja. Später ist es natürlich besser, alles in ein externes Stylesheet auszulagern, aber zum Testen wie jetzt ist es so auch in Ordnung.

Code:
ul li { float:left; }

Habe ich - steht bei Dreamwaver unter Liste
Ich würde mir den Code nicht von einem Programm schreiben lassen. In Dreamweaver gibts - so sagt man - auch eine Code-Ansicht.

Kann ich das "list-style-type:none" irgendwo einfügen?
Code:
ul { list-style-type:none; }
Mach Dich doch mal mit den Grundlagen von CSS vertraut. IDs, Klassen, Selektoren, wo man CSS hinschreibt, wie man es schreibt, was für Eigenschaften es gibt.

Er hat mir Ankerpunkte neben die Buttons gesetzt
Ich kenne Dreamweaver nicht, ich schreibe meinen Code in einem Texteditor. In HTML gibts keine "Ankerpunkte". Die Anker, die es da gibt, sehen so aus und sind veraltet:
Code:
<a name="anker1"></a>
Aber es hört sich eher an, als wären das die Listenpunkte, was Du per "list-style-type" ausschalten kannst. Aber sehen tu ich da nichts auf Deiner Seite.

einzeln kann ich die nicht entfernen, dann geht der ganze Button weg
Oder meinst Du die Links? Das sind ja auch Anker (<a>). Die willst Du ja behalten, Du willst ja die Buttons verlinken.

Scheint schon wieder schlimmer zu werden alles - verdammt :(
Du fängst ja auch von hinten an und außerdem fehlen Dir die essenziellen Grundlagen.

1. Inhalt
2. Semantische Auszeichnung mit HTML
3. Layout und Design mit CSS

Das ist mein Vorschlag.
 
Werbung:
Gut - ist alles sehr komplex fürs erste - ich danke dir soweit auf jeden Fall für die vielen Mühen.

Würde aber gerne diesen Buttonsgeschichte zuende bringen. Habe nun die Punkte weg bekommen. Es fehlt mir eigentlich nur noch die Sache, daß es hintereinander steht und die ganze Leiste zentriert.

Habe

ul li {
float:left;
}



eingefügt. Siehe Link-->CSS hover


Aber sie sitzen immernoch links. Was fehlt?
 
Zuletzt bearbeitet:
YES das erste Thema wo ich helfen kann. :lol:

Ich würde es genauso machen wie Efchen vorgeschlagen hat mit <ul> so sagen die das in meinem Lernbuch.:grin:

hier ich kopier dir mal zwie komplette codes.


HTML:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtmll/DTD/xhtmll-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"
dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/
html;charset=iso-8859-1" />
<title>horinzontale Navigation</title>
<link rel="stylesheet" title="Default" href="css/horizontaleNavigation.css" type="text/css" media="screen"/>
</head>
<body>
<ul id="mainNavi">
<li id="active"><span>Startseite</span></li>
<li><a href="#">&Uuml;ber uns</li>
<li><a href="#">Konatakt</li>
</ul>

</body>
</html>
CSS:

HTML:
ul#mainNavi {
width:80%;
float:left;
padding:15px 5px 0 5px;
margin:0;
list-style:none;
border-width:0 0 5px 0;
border-style:solid;
border-color:#6EB327;
background-color:#325FCC;
}
ul#mainNavi li {
float:left;
margin:0;
padding:0;
color:#020F34;
font:bold 81.25%/2 Arial, Verdana, sans-serif;
}
ul#mainNavi li#active {
margin:0 6px 0 0;
padding:0 0 0 5px;
background:#6EB327 url(../images/bg_activeLeft.gif) left top no-repeat;
}
ul#mainNavi li#active span {
display:block;
margin:0;
padding:0 15px 0 10px;
background:#6EB327 url(../images/bg_active.gif) right top no-repeat; 
}
ul#mainNavi a {
display:block;
white-space:nowrap;
margin:0 0px 0 -5px;
padding:0 15px;
color:#FFF;
background:#010F34 url(../images/bg_inactive.gif) right top no-repeat;
text-decoration:none;
}
ul#mainNavi a:hover {
background:#6EB327 url(../images/bg_active.gif) right top no-repeat;
padding:0 15px;
}


Ich hoffe ich konnte helfen
 
Werbung:
Das ist nett von dir Peter! Werde mir das auch mal als Vorlage nehmen und ausprobieren.

Momentan brauch ich aber meinen Buttons nebeneinander - und das funzt nicht, trotz
Code:
ul li { 
float:left;
}
im CSS.


Fehlt da noch was im html-Bereich?

Hallo Vivi,

wie Efchen schon gesagt hat, musst Du es schaffen, die Grundlagen zu verstehen,
sonst bleibt Dir weiterhin nur die Try-and-Error-Methode...

<ul> ist eine ungeordnete Liste, <li> ist ein Listenelement.
Das hast Du zwar in CSS formatiert, aber Deine Links stehen im HTML nicht in einer Liste...

Ich nehm mal Deinen Code auseinander:
Code:
<body>
<p id="bild" href="foo.html">
<a href="foo.html" id="bild"><img src="../Eigene Webseite-Bilder/Buttons/homer-klein.png" alt="Home" /></a>
<a href="bar.html" id="foo"><img src="../Eigene Webseite-Bilder/Buttons/Unser Prinzip-klein.png" alt="Unser Prinzip" /></a>
</p>
</body>
href ist ein Verweis, also das Ziel eines Links, bringt bei einem Absatz <p> garantiert nichts (außer einem Fehler)
Ordner- und Dateinamen sollten keine Leerzeichen enthalten (ebenso keine Sonderzeichen etc. - ist hier aber nicht der Fall)


korrekt:
Code:
<body>
<ul id="navigation">
<li><a href="foo.html" id="bild"><img src="../Eigene-Webseite-Bilder/Buttons/homer-klein.png" alt="Home" /></a></li>
<li><a href="bar.html" id="foo"><img src="../Eigene-Webseite-Bilder/Buttons/Unser-Prinzip-klein.png" alt="Unser Prinzip" /></a></li>
</ul>
</body>
CSS:
Code:
ul#navigation {
}
ul#navigation li {
}
usw.

Es spricht nichts dagegen, dass Du Dreamweaver benutzt, aber Du solltest ihn nicht
in der Design-Ansicht benutzen, denn WYSIWYG (What you see is what you get)
funktioniert nicht, da der Editor dafür einerseits einen absolut standart-konformen
Browser simmulieren können müsste und andererseits alle Fehler aller auf dem Markt
befindlichen Browser...

Es hilft also alles nichts und du musst direkt im Quelltext arbeiten...

Grüße
Bernhard
 
Ok - soweit zur Kenntnis genommen und korrigiert.
Nun kommt doch sicher noch was zusätzlich mit rein zu dem:

ul#navigation {
}
ul#navigation li {
}

Oder? Weil einfach so bei CSS mit reinsetzen, dann sind keine Button zu sehen.


Momentaner Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CSS hover</title>
<style type="text/css">
img, div { behavior: url(../Eigene%20Webseite-Bilder/iepngfix.htc) }
.box {
margin-left:0px;
margin-top:0px;
}
#bild a,#bild a:visited {
display:block;
}
#bild a:hover {
background: url('../Eigene Webseite-Bilder/Buttons/homer-klein-hover.png') no-repeat 620px 0px;
background-position: -3px;

}
a#foo:hover {
background-image:url('../Eigene Webseite-Bilder/Buttons/Unser-Prinzip-klein-hover.png');
}
body {
background-color: #08101B;
background-repeat: no-repeat;
margin-top: 380px;
background-position: 50% 0px;
behavior: url("../Eigene%20Webseite-Bilder/csshover3.htc");
}

ul li {
float:left;
}
a:link {
color: #08101B;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #08101B;
}
a:hover {
text-decoration: none;
color: #08101B;
}
a:active {
text-decoration: none;
color: #08101B;
}
a:hover img {
visibility:hidden;
}
a img {
border:none;
}

</style>
</head>
<body>
<ul id="navigation">
<li><a href="foo.html" id="bild"><img src="../Eigene-Webseite-Bilder/Buttons/homer-klein.png" alt="Home" /></a></li>
<li><a href="bar.html" id="foo"><img src="../Eigene-Webseite-Bilder/Buttons/Unser-Prinzip-klein.png" alt="Unser Prinzip" /></a></li>
</ul>
</body>
</html>
 
Werbung:
Ok - soweit zur Kenntnis genommen und korrigiert.
Nun kommt doch sicher noch was zusätzlich mit rein zu dem:

Code:
ul#navigation {
}
ul#navigation li {
}
Oder? Weil einfach so bei CSS mit reinsetzen, dann sind keine Button zu sehen.

Hallo Vivi,

klar, da kommt jetzt alles rein, was Du brauchst, um Deine Navigationsliste zu formatieren:
Code:
ul#navigation {
list-style:none;
}
 ul#navigation li {
float:left;
 }
usw., eben alles, was das Aussehen ausmacht...

Da ich im HTML die Leerzeichen aus den Datei- und Ordnernamen entfernt habe,
musst Du jetzt natürlich auch Deinen Ordner und die Bilder umbenennen, da sie
sonst nicht mehr gefunden werden...

Grüße
Bernhard
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben