2010-04-03 16 views
11

Jak pan wie, CSS :hover nie działa w przypadku elementu z wyjątkiem linków. Co to jest poprawka? Mam na myśli, jak na przykład zastosować :hover do div. Dowolna poprawka/alternatywa/rozwiązanie?Problem z zawieszaniem IE6

Dzięki.

+0

podobne do tego http://stackoverflow.com/questions/1900768/how-to-enable-hover-on-a-div-for-ie6-using-jquery-in-minmal-code –

Odpowiedz

8

Jest whatever:hover. Nigdy tego nie używałem, ale z tego, co słyszę, działa dobrze.

Cokolwiek: hover jest mały skrypt, który automatycznie patche: hover,: active i: skupić się na IE6, IE7 i IE8 dziwactw, co pozwala wykorzystywać je jak chcesz w każdej innej przeglądarce. Wersja 3 wprowadza obsługę ajax, co oznacza, że ​​każdy html, który zostanie wstawiony do dokumentu za pośrednictwem javascriptu, uruchomi także: hover,: active i: style fokusowania w IE.

+0

nie istnieje alternatywa dla CSS? – Sarfraz

+3

@Sarfraz o ile wiem, nie, w przeciwnym razie cokolwiek: hover i inne obejścia nie istnieją. –

+0

+1 Masz rację, dziękuję – Sarfraz

2

Alternatywą jest JavaScript.

5

Możesz użyć słynnego IE7.js od Dean Edwards, który ma tę zaletę, że możesz użyć selektora :hover w swoim CSS.

Poza tym wątpię, że można to osiągnąć za pomocą samego CSS. IE może obsłużyć JS w plikach CSS za pośrednictwem expression(), ale nie można uzyskać wyrażenia do obsługi najechania bez obrzucania selektora, jeśli złapiesz mój dryf.

Wtedy wreszcie krótki rozwiązanie jQuery:

$(document).ready(function() { 
    $('div').hover(function() { 
    $(this).addClass('hover'); 
    }, function() { 
    $(this).removeClass('hover'); 
    }); 
}); 

Następnie można użyć tego w arkuszu stylów:

div:hover, div.hover { ... } 
+1

+1 także za ten. Overkill dla samego wsparcia ': hover', ale świetnie, gdybyś chciał wszystkich dodatkowych rzeczy i po prostu jeszcze o tym nie wiedział. –

+0

@Andy E: To prawda, że ​​to przesada dla samego ': hover'. Właściwie, w większości przypadków, gdy odpowiedź zaczyna się od "Możesz użyć jQuery lub tego ..." to właśnie teraz skomentowałem. ;-) Jednak, jak wspomniałeś, zajmując się IE6, często myślę o IE7.js w wielu różnych sytuacjach. – Boldewyn

3
  • Jeśli potrzebujesz tylko dla paticulars dział a ty nie jesteś za pomocą jquery następnie przejdź do dla suckerfis js jako @futta zasugerowana. http://www.htmldog.com/articles/suckerfish/
  • Jeśli zamierzasz używać Hover w większej liczbie tagów w przyszłości i nie chcesz ich edytować za każdym razem, gdy używasz JS, przejdź na Whatever.htc w IE6. jak sugerował @Pekka.
Suckerfish vs. .htc 

IIIIN niebieskim narożniku mamy suckerfish oryginalny lekki, dostępną, cross-browser, zgodne ze standardami: hover naśladować. IIIIN w czerwonym rogu mamy ".htc" - pliki JavaScript dostępne za pośrednictwem CSS do naśladowania: hover.

Ding ding!

I Suckerfish natychmiast ląduje ciężki cios na ważność .htc - .htc po prostu nie jest zgodny ze standardami CSS.

Oooo ... .htc zakrada się w przebiegłym dźgnięciu bez potrzeby stosowania dodatkowych selektorów ...

Suckerfish odbija się wokół pierścienia. Jest o wiele lżejszy niż jego przeciwnik .

I OH! Podcięcie IE 5.0! To jest coś, co .htc po prostu nie ma umiejętności do wykonania, , natomiast Suckerfish może bezproblemowo pracować z IE 5.0.

.htc jest oszołomiony! A konkurs to ! Suckerfish wygrywa w punktach! TKO!

  • Jeśli chcesz uzyskać korzyści dla innych rzeczy (inne niż Hover) również w IE następnie przejść do IE7.js jak @Boldewyn zasugerował
  • a jeśli już przy użyciu jquery i chcą użyć unoszących się w sposób ograniczony następnie przejść do w ten sposób: How to enable hover on a div for IE6 using jquery in minmal code?

NO pure i prawidłowe rozwiązanie CSS dostępne dla tego w IE6.

+0

Dla mojego wymagania, rozwiązanie dla ryb drobnych powinno wystarczyć. – Sarfraz