Mam przypadek, w którym muszę napisać wbudowany kod CSS i chcę zastosować styl aktywowania na kotwicy.
Jak korzystać a:hover
z wbudowanego CSS wewnątrz atrybutu stylu HTML?
Np. Nie można niezawodnie używać klas CSS w wiadomościach e-mail w formacie HTML.
html
css
inline-styles
Amr Elgarhy
źródło
źródło
Odpowiedzi:
Krótka odpowiedź: nie możesz.
Długa odpowiedź: nie powinieneś.
Nadaj mu nazwę klasy lub identyfikator i użyj arkuszy stylów, aby zastosować styl.
:hover
jest pseudoselektorem, a dla CSS ma znaczenie tylko w arkuszu stylów. Nie ma odpowiednika w stylu wbudowanym (ponieważ nie definiuje kryteriów wyboru).Odpowiedź na komentarze PO:
Zobacz Totally Pwn CSS z Javascriptem, aby uzyskać dobry skrypt na dynamiczne dodawanie reguł CSS. Zobacz także Zmień arkusz stylów, aby zapoznać się z niektórymi teoriami na ten temat.
Nie zapominaj również, że możesz dodać linki do zewnętrznych arkuszy stylów, jeśli jest to opcja. Na przykład,
Uwaga: powyższe zakłada, że istnieje sekcja głowy .
źródło
style="{color:green;} :hover { color: red; }"
i firefox zdołał pokolorować łącze na zielono, ale zignorowałem najechanie kursorem. Chrome zignorował oba. Dalsze testy byłyby bezcelowe.Możesz uzyskać ten sam efekt, zmieniając swoje style za pomocą JavaScript w parametrach
onMouseOver
ionMouseOut
, chociaż jest to wyjątkowo nieefektywne, jeśli musisz zmienić więcej niż jeden element:Nie pamiętam też na pewno, czy
this
działa w tym kontekście. Być może będziesz musiał to zmienićdocument.getElementById('idForLink')
.źródło
<div onMouseOver="this.style.backgroundColor='#F8F8F8'" onMouseOut="this.style.backgroundColor='#FFFFFF'"> ...
Możesz to zrobić w pewnym momencie w przeszłości. Ale teraz (zgodnie z najnowszą wersją tego samego standardu, którym jest Rekomendacja dla kandydatów) nie możesz.
źródło
<a href="http://www.w3.org/" style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}">...</a>
Ale to nie zadziałałoBardzo się spóźniam, ale bardzo mi przykro, że nikt tego nie zasugerował. Jeśli rzeczywiście potrzebujesz kodu wbudowanego, możesz to zrobić. Potrzebowałem tego dla niektórych przycisków aktywowania, metoda jest następująca:
W tym przypadku kod wbudowany: „kolor tła: czerwony;” to kolor przełączania po najechaniu myszą, wstaw tam potrzebny kolor, a wtedy to rozwiązanie zadziała. Zdaję sobie sprawę, że to może nie być idealne rozwiązanie pod względem kompatybilności, ale działa to, jeśli jest absolutnie potrzebne.
źródło
Nie możesz robić dokładnie tego, co opisujesz, ponieważ
a:hover
jest częścią selektora, a nie reguł CSS. Arkusz stylów składa się z dwóch elementów:Style wbudowane mają tylko reguły; selektor domyślnie jest bieżącym elementem.
Selektor to ekspresyjny język, który opisuje zestaw kryteriów dopasowania elementów w dokumencie podobnym do XML.
Możesz jednak zbliżyć się, ponieważ
style
zestaw może technicznie iść prawie wszędzie:źródło
<html> </html>
tagza pomocą Javascript:
a) Dodanie stylu wbudowanego
b) lub nieco trudniejsza metoda - dodanie „wskaźnika myszy”
Uwaga: style wielosłówowe (tj.
font-size
) W Javascript są zapisywane razem :element.style.fontSize="12px"
źródło
Oto najlepszy przykład kodu:
Sugestia moderatora: zachowaj separację obaw.
HTML
JS
źródło
Wbudowane deklaracje pseudoklasy nie są obsługiwane w bieżącej iteracji CSS (choć z tego, co rozumiem, może pochodzić z przyszłej wersji).
Na razie najlepiej jest po prostu zdefiniować blok stylów bezpośrednio nad linkiem, który chcesz stylować:
źródło
Jak wskazano, nie można ustawiać dowolnych stylów wstawiania dla najechania kursorem, ale można zmienić styl kursora najechania kursorem w CSS, używając następujących elementów w odpowiednim znaczniku:
źródło
Hover jest pseudoklasą, dlatego nie można go stosować z atrybutem stylu. Jest częścią selektora.
źródło
Możesz to zrobić. Ale nie w stylach wbudowanych. Możesz użyć
onmouseover
ionmouseout
wydarzeń:źródło
Zgodnie z twoimi komentarzami i tak wysyłasz plik JavaScript. Wykonaj najazd w JavaScript. jQuery jest
$.hover()
metoda ułatwia, podobnie jak każdy inny otoki JavaScript. Prosty JavaScript też nie jest zbyt trudny.źródło
Nie ma na to sposobu. Masz do wyboru blokadę JavaScript lub CSS.
Być może istnieje biblioteka JavaScript, która przekonwertuje zastrzeżony atrybut stylu na blok stylu. Ale wtedy kod nie będzie zgodny ze standardami.
źródło
Właśnie wymyśliłem inne rozwiązanie.
Mój problem: mam
<a>
tag wokół niektórych slajdów / głównej przeglądarki treści, a także<a>
tagi w stopce. Chcę, aby poszły w to samo miejsce w IE, więc cały akapit zostanie podkreślonyonHover
, nawet jeśli nie są to linki: slajd jako całość jest linkiem. IE nie zna różnicy. W stopce mam też kilka faktycznych linków, które wymagają podkreślenia i zmiany koloruonHover
. Pomyślałem, że będę musiał dopasować style do znaczników stopki, aby zmienić kolor, ale porady z góry sugerują, że jest to niemożliwe.Rozwiązanie: podałem stopce dwie różne klasy, a mój problem został rozwiązany. Miałem możliwość
onHover
zmiany koloru w jednej klasie, slajdyonHover
nie miały zmiany koloru / podkreślenia, a jednocześnie mogłem mieć zewnętrzne HREFS w stopce i slajdach jednocześnie!źródło
Zgadzam się z cieniem . Możesz użyć zdarzenia
onmouseover
ionmouseout
do zmiany CSS poprzez JavaScript.I nie mów, że ludzie muszą mieć włączoną obsługę JavaScript. To tylko kwestia stylu, więc nie ma znaczenia, czy niektórzy użytkownicy nie mają JavaScript;) Chociaż większość Web 2.0 działa z JavaScript. Zobacz na przykład Facebook (dużo JavaScript) lub Myspace .
źródło
W grze jest już dość późno, ale kiedy użyjesz JavaScript w e-mailu HTML? Na przykład w firmie, w której obecnie pracuję (rymuje się z Abodee), używamy najniższego wspólnego mianownika dla większości e-mailowych kampanii marketingowych - a JavaScript po prostu nie jest używany. Zawsze. Chyba że masz na myśli jakieś wstępne przetwarzanie.
Jak wspomniano w powiązanym poście: „Lotus Notes, Mozilla Thunderbird, Outlook Express i Windows Live Mail wszystkie wydają się obsługiwać niektóre rodzaje skryptów JavaScript. Nic innego nie robi”.
Link do artykułu, z którego został pobrany: [ http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients]
W jaki sposób najechanie kursorem przekłada się na urządzenia mobilne? Dlatego podoba mi się odpowiedź z góry:
Long answer: you shouldn't.
Jeśli ktoś ma więcej informacji na ten temat, popraw mnie. Dziękuję Ci.
źródło
Więc to nie jest dokładnie to, czego szukał użytkownik, ale znalazłem to pytanie, szukając odpowiedzi i wymyśliłem coś podobnego. Miałem wiele powtarzających się elementów, które wymagały nowego koloru / aktywowania na karcie w nich. Używam kierownicy, która jest kluczem do mojego rozwiązania, ale inne języki szablonów również mogą działać.
Zdefiniowałem niektóre kolory i przekazałem je do szablonu kierownicy dla każdego elementu. Na górze szablonu zdefiniowałem tag stylu i wstawiłem niestandardową klasę i kolor najechania kursorem.
Następnie użyłem stylu w szablonie:
Możesz nie potrzebować
!important
źródło
możesz napisać kod różnego typu
najpierw mogę to napisać
HTML
css
możesz spróbować w inny sposób
HTML
css
możesz także spróbować najechać kursorem na jquery
skrypt Java
HTML
w tym kodzie masz trzy funkcje w jquery, najpierw przygotowujesz funkcję, która jest podstawową funkcją jquery, a następnie masz funkcję hover w tej funkcji, gdy najedziesz wskaźnikiem na tekst, kolor zostanie zmieniony, a następnie następny kiedy zwolnisz wskaźnik do tekstu, będzie on miał inny kolor i jest to trzecia funkcja
źródło
Jest to teraz możliwe dzięki Hacss .
źródło
Musiałem unikać javascript, ale mogłem używać kodu po stronie serwera.
więc wygenerowałem identyfikator, utworzyłem blok stylu, wygenerowałem link z tym identyfikatorem. Tak, jest to poprawny kod HTML.
źródło
Pseudoklasy można używać
a:hover
tylko w zewnętrznych arkuszach stylów. Dlatego zalecam użycie zewnętrznego arkusza stylów. Kod to:źródło
style
tagu.Możesz zrobić id, dodając klasę, ale nigdy inline.
2 linie, ale możesz ponownie użyć tej klasy wszędzie.
źródło
Mój problem polegał na tym, że buduję stronę internetową, która używa wielu ikon graficznych, które muszą zostać zamienione innym obrazem po najechaniu myszką (np. Niebieskie obrazy zmieniają kolor na czerwony po najechaniu myszą). Opracowałem dla tego następujące rozwiązanie:
Wprowadziłem pojemnik zawierający parę zdjęć. Pierwszy jest widoczny, a drugi ukryty (wyświetlanie: brak). Po najechaniu na pojemnik pierwszy zostaje ukryty (display: none), a drugi pojawia się ponownie (display: block).
źródło