Để nhận các hiệu ứng CSS3 (bán kính đường viền, hộp bóng ...) trên IE 6/7/8, tôi đang sử dụng css3pie
.css3pie làm hỏng DOM, kết quả trong các lỗi bộ chọn jQuery
Tuy nhiên, css3pie tạo một số thẻ css3-container (v1)/css3pie (v2)
trong DOM, điều này làm rối loạn kiến trúc mong đợi. Dưới đây là một ví dụ:
CSS
pre {
border: 1px solid #aaa;
border-radius: 5px;
behavior: url(pie.htc);
}
HTML
<div class="foo">bar</div>
<p class="getme">paragraph</p>
<pre>preformatted</pre>
jQuery
// undefined expected: getme
alert($("pre").prev().attr("class"));
// css3-container expected: p
alert($("pre").prev()[0].tagName);
// getme expected: foo
alert($("pre").prev().prev().attr("class"));
// 4 expected: 3
alert($("body").children().size());
// will not set expected: Impact
$("p+pre").css({fontFamily: "Impact"});
// it almost affects all such jQuery selctors
Các gener thực tế nguồn ated giống như sau:
<DIV class="foo">bar</DIV>
<P class="paragraph">paragraph</P>
<css3-container...>
<border...>
<shape...><stroke></stroke><stroke></stroke></shape>
</border>
</css3-container>
<PRE>preformatted</PRE>
Có ai gặp phải loại vấn đề này không? Có cách giải quyết nào không? Có một thay thế cho css3pie để có được CSS3 làm việc trên IE 6/7/8?
Nó không đáng. IE 6 và 7 không được hỗ trợ bởi Microsoft, vậy tại sao bạn muốn hỗ trợ chúng 100%? :) Nhưng nghiêm túc - là các góc tròn quan trọng đối với những người sử dụng trình duyệt mà hầu hết Internet đều có vẻ xấu? Làm cho nó hoạt động với các góc tròn sẽ làm tổn thương hiệu năng và có thể làm cho trang web không thể sử dụng được trong các trình duyệt IE cũ. – naugtur