2010-10-22 9 views
11

Tình huống: Có hình ảnh nút div. Div cần phai trong khi di chuột. Hoạt động trong tất cả các trình duyệt, ngoại trừ Internet Explorer. Khi tôi cho div một màu nền nó đột nhiên hoạt động.IE8: Div di chuột chỉ hoạt động khi màu nền được đặt, rất lạ, tại sao?

Kiểm tra: http://ListAndPlay.com, trên cùng bên trái là các nút điều khiển.

Di chuột sẽ không hoạt động trong IE, hãy thử thêm màu nền vào # nút và nó đột nhiên hoạt động.

Câu hỏi: Lý do cho việc này là gì? Cách sửa lỗi này đúng cách?

+2

Sửa lỗi rất xấu: thêm hình ảnh trong suốt làm nền ... – MeProtozoan

Trả lời

26

Gần đây tôi cũng đã gặp sự cố này. Tôi cũng đã giải quyết nó bằng cách thêm ảnh nền trong suốt 1 x 1 px vào phần tử di chuột. Tôi cảm thấy như đang tắm sau đó.

+0

Tôi cũng phải tắm. Tôi đã có một giải pháp với một 'nền: minh bạch' nhưng tôi có thể đã lừa bản thân mình - ai đó có thể muốn chơi đùa với cái này. – Cody

1

Ngay cả với phiên bản IE9 mới nhất, tôi có cùng sự cố này. Vì MeProtozoan được đề xuất, việc thêm hình nền trong suốt vào (các) neo sẽ hoạt động như mong muốn, nhưng damn nó bị bẩn.

2

Điều này là do có bố cục. Sử dụng vị trí: tương đối sẽ cho kết quả tương tự mà không sử dụng hình nền không mong muốn.

+0

Vị trí tương đối dường như không hoạt động [đối với tôi]. – Cody

9

Tôi gặp sự cố này ngay hôm nay khi xuất hiện một div lớp phủ transparent xuất hiện khi được di chuột lên. IE9 sẽ không kích hoạt di chuột cho đến khi con chuột vượt qua nội dung văn bản của lớp phủ. Làm việc tốt trên Chrome và FF4. Tôi đã không thử giải pháp hình ảnh trong suốt, nhưng điều này dường như hoạt động tốt: rgba(0,0,0,0). Weird ...

+2

Tìm tốt và tốt hơn là sử dụng hình ảnh trong suốt. Và có, lạ :) – Shtong

+2

điều này sẽ không làm việc trong IE6, 7, 8 như họ không hỗ trợ rgba cách tiếp cận tốt nhất là sử dụng một p2 2x2 minh bạch – Blowsie

2

Tôi gặp phải vấn đề tương tự. Đối với tôi, vấn đề dường như liên quan đến việc sử dụng các phần tử html5 (ví dụ: <footer>header) trong ie8 và quên sử dụng html5shiv để thêm hỗ trợ cho các yếu tố đó cho các trình duyệt cũ hơn.

Trong trường hợp này, việc thêm html5shiv đã giải quyết được sự cố. Không có giải pháp đề xuất nào khác có hiệu lực.

5

Giải pháp của tôi là đặt màu nền trên phần tử bạn cần di chuột, sau đó sử dụng thuộc tính CSS opacity để ẩn nó. Dự phòng được cung cấp cho IE dưới dạng bộ lọc.

.element { 
    background-color: #fff; 
    opacity: 0; 
    filter: alpha(opacity=1); 
} 

Giải pháp này không yêu cầu PNG trong suốt và không giống như giải pháp rgba hoạt động trong các phiên bản cũ hơn của IE.

0

Tôi có vấn đề tương tự với di chuột trong div không làm việc trong IE8 và thay đổi loại tài liệu của tôi để

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

cố định nó.

More details here

2

Tôi gặp vấn đề tương tự với IE8 khi sử dụng HTML5. Giải pháp của tôi được lấy cảm hứng từ Herman. Tôi thiết lập một hình ảnh nền và sau đó tôi đang tạo nền từ phần không tồn tại của nó. Về cơ bản, tôi yêu cầu trình duyệt hiển thị thứ gì đó vượt quá kích thước của hình ảnh.

background: url(myimage.png) 300px 0px no-repeat; 

Để tránh lưu lượng truy cập không cần thiết, nó có thể là ảnh của trang web hoặc bất kỳ hình ảnh hợp lệ nào khác mà nó đã được sử dụng trên trang.