2009-12-08 20 views
5

Tôi đang mờ dần ra, và trong một div:jQuery fadeTo gây văn bản pixelated trong IE8 khi font-weight: bold

$('.formErrors').fadeTo('fast', 0); 
$('.formErrors').fadeTo('slow', 1); 

Nhưng khi tôi làm điều này trong IE 8, có vẻ như bit này của CSS:

.formErrors li { font-weight: bold; } 

là gây ra văn bản để trở lại khá méo: (hình dưới đây)

http://www.newmania.com/images/error.jpg

HTML Tôi đang áp dụng điều này là:

<div class="formErrors"> 
There are errors in your submission. Please fix the following and try again: 
<ul><li>Action is empty</li></ul> 
</div> 

Nó hoạt động tốt trong Firefox. Bất kỳ ý tưởng xin vui lòng?

Trả lời

10

Một giải pháp thông thường là để xác định một màu nền, nếu bạn chưa có một hình ảnh:
http://jsbin.com/axapa

.formErrors {background-color:white;} 

Một lựa chọn khác là sử dụng fadeInfadeOut: các hình ảnh động là đến xấu xí, nhưng ít nhất nó kết thúc độc đáo: http://jsbin.com/aboxa

+0

Cảm ơn Kobi! Giải pháp màu nền hoạt động tốt. Với fadeIn và fadeOut, hoạt hình xấu hơn việc sử dụng 2 fadeTo, vì vậy tôi sẽ gắn bó với chúng. Cảm ơn bạn đã giúp đỡ! – Newmania

+0

+1 đã giúp tôi giải quyết vấn đề với 'PNG' có bg xấu xí không minh bạch trên IE8. Cảm ơn! – Jakub

+0

+1 cho giải pháp này một lần nữa. Đặt nền trên div văn bản của tôi đã sửa lỗi này! Đã được nhấn mạnh cho một thời hạn quá! Ước gì tôi có thể + thêm nữa! :) – rowefx

2
jQuery.fn.fadeIn = function(speed, callback) { 
return this.animate({opacity: 'show'}, speed, function() { 
    if (jQuery.browser.msie) 
     this.style.removeAttribute('filter'); 
    if (jQuery.isFunction(callback)) 
     callback(); 
}); 
}; 
jQuery.fn.fadeOut = function(speed, callback) { 
return this.animate({opacity: 'hide'}, speed, function() { 
    if (jQuery.browser.msie) 
     this.style.removeAttribute('filter'); 
    if (jQuery.isFunction(callback)) 
     callback(); 
}); 
}; 
jQuery.fn.fadeTo = function(speed,to,callback) { 
return this.animate({opacity: to}, speed, function() { 
    if (to == 1 && jQuery.browser.msie) 
     this.style.removeAttribute('filter'); 
    if (jQuery.isFunction(callback)) 
     callback(); 
}); 
}; 

Mã này sẽ ghi đè một số thuộc tính mờ dần trong JQuery cụ thể cho IE. Tôi đã có thể thành công để fadeTo hoạt động bình thường trong IE tại đây: https://app.tekstme.com/signup/

2

Tôi biết chủ đề này thực sự cũ nhưng tôi đã tìm thấy một giải pháp đơn giản. Sử dụng nền không được áp dụng cho trường hợp của tôi vì tôi có một nền tảng phức tạp đằng sau văn bản có nền phải minh bạch. Dù sao tôi thấy cái này làm việc khá tốt (mã css thêm):

.formErrors{position:relative;} 
1

Sử dụng < DOCTYPE html > cố định vấn đề này đối với tôi trong IE8!. Văn bản vẫn trông khối ô trong thời gian phai nhưng sau đó nó mịn ra

Các vấn đề liên quan