1348 Stimmen

Wie schreibt man ein:hover in Inline-CSS?

Ich habe einen Fall, in dem ich Inline-CSS-Code schreiben muss, und ich möchte einen Hover-Stil auf einen Anker anwenden.

Wie kann ich die a:hover in Inline-CSS innerhalb des HTML-Style-Attributs?

Sie können z. B. keine CSS-Klassen in HTML-E-Mails verwenden.

31 Stimmen

Auch die Einbettung von HTML in Blogging-Anwendungen erfordert häufig die ausschließliche Verwendung von Inline-Styles. Vor allem, wenn Sie die HTML-Datei über einen Drittanbieter-Client einbetten und keinen Zugriff auf die Themes des Benutzers haben.

11 Stimmen

Es gibt einen vorgeschlagenen CSS-Standard dafür; keine Ahnung, welche Art von Browser-Unterstützung es haben könnte (Hinweis: sie könnten die benutzerdefinierten Tags wie -moz, etc. verwenden): w3.org/TR/2002/WD-css-style-attr-20020515

1 Stimmen

43voto

lukesrw Punkte 1287

Ich bin extrem spät einen Beitrag zu diesem, aber ich war traurig zu sehen, niemand vorgeschlagen, wenn Sie tatsächlich Inline-Code benötigen, ist dies möglich zu tun. Ich brauchte es für einige Hover-Buttons, die Methode ist dies:

.hover-item {
    background-color: #FFF;
}

.hover-item:hover {
    background-color: inherit;
}

<a style="background-color: red;">
    <div class="hover-item">
        Content
    </div>
</a

In diesem Fall ist es der Inline-Code: "background-color: red;" ist die Umschaltfarbe bei Hover, fügen Sie die Farbe, die Sie brauchen, dort ein und dann funktioniert diese Lösung. Ich weiß, dass dies vielleicht nicht die perfekte Lösung in Bezug auf die Kompatibilität ist, aber es funktioniert, wenn es absolut notwendig ist.

4 Stimmen

Ich danke Ihnen. Das ist eine tolle Antwort, ich denke, diese Antwort muss die Lösung sein.

1 Stimmen

Danke sarhov, hoffentlich sehen die Leute das, wenn sie es brauchen.

110 Stimmen

Nein, OP sagte, sie wollten es in Inline-CSS innerhalb des HTML-Style-Attributs .

33voto

T.Todua Punkte 48569

Mit Javascript:

a) Hinzufügen eines Inline-Stils

document.head.insertAdjacentHTML('beforeend', '<style>#mydiv:hover{color:red;}</style>');

b) oder eine etwas schwierigere Methode - Hinzufügen von "Mouseover"

document.getElementById("mydiv").onmouseover= function(e){this.className += ' my-special-class'; };
document.getElementById("mydiv").onmouseleave= function(e){this.className = this.className.replace('my-special-class',''); };

Hinweis: Mehrwortstile (d. h. font-size ) in Javascript werden zusammen geschrieben :

element.style.fontSize="12px"

3 Stimmen

Da diese Antwort nach unten korrigiert wurde, scheint sie nun für die ursprüngliche Frage völlig irrelevant zu sein...

1 Stimmen

Wow, das ist mal ein Blick über den Tellerrand... Ich liebe es!

30voto

Jay Bharat Punkte 477

Dies ist das beste Beispiel für einen Code:

<a
 style="color:blue;text-decoration: underline;background: white;"
 href="http://aashwin.com/index.php/education/library/"
 onmouseover="this.style.color='#0F0'"
 onmouseout="this.style.color='#00F'">
   Library
</a>

Vorschlag des Moderators: Behalten Sie die Trennung Ihrer Anliegen bei.

HTML

<a
 style="color:blue;text-decoration: underline;background: white;"
 href="http://aashwin.com/index.php/education/library/"
 class="lib-link">
   Library
</a>

JS

const libLink = document.getElementsByClassName("lib-link")[0];
// The array 0 assumes there is only one of these links,
// you would have to loop or use event delegation for multiples
// but we won't go into that here
libLink.onmouseover = function () {
  this.style.color='#0F0'
}
libLink.onmouseout = function () {
  this.style.color='#00F'
}

0 Stimmen

Dies! Danke - das einzige, was bei mir funktioniert hat. Einfache Lösung für die Frage.

14voto

blippy Punkte 9418

Wie bereits erwähnt, können Sie keine beliebigen Inline-Stile für Hover festlegen, aber Sie können den Stil des Hover-Cursors in CSS mit dem folgenden Text im entsprechenden Tag:

style="cursor: pointer;"

2 Stimmen

Das dürfte die beste Antwort sein

14voto

brettkelly Punkte 26581

Inline-Pseudoklassendeklarationen werden in der aktuellen Iteration von CSS nicht unterstützt (obwohl, soweit ich weiß, dies in einer zukünftigen Version möglich sein wird).

Im Moment ist es wahrscheinlich am besten, einen Stilblock direkt über dem Link zu definieren, den Sie gestalten möchten:

<style type="text/css">
    .myLinkClass:hover {text-decoration:underline;}
</style>
<a href="http://stackoverflow.com/foo" class="myLinkClass">Foo!</a>

5 Stimmen

Diese Idee wird zum Glück fallen gelassen. (Siehe lists.w3.org/Archives/Public/www-style/2009Jun/0341.html unter "Verlassene Arbeitsentwürfe").

3 Stimmen

Es fehlt ein . in dieser Antwort.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X