我正在尝试将内联块样式应用于元素(特定的div)。为了在IE中实现这一点,你必须使用hack:
$('#element').css(
{
'display' : 'inline-block', //applies inline-block to matched elements in all browsers except IE due to hasLayout bug
'zoom' : 1, //set hasLayout to 'true' in IE
'*display' : 'inline' //use asterisk to only apply 'inline' style to IE
}
);
然而,css()函数似乎向浏览器呈现样式,使得'* display'不在IE中注册,因此不应用'inline'样式。
关于为什么和/或如何解决这个问题的任何想法?
答案 0 :(得分:2)
我认为应该这样做:
if($.browser.msie){
$('#element').css({'display' : 'inline'});
}
答案 1 :(得分:1)
jQuery将过滤掉“坏”的css属性 - 即。使用css函数时会破解。
但是,你在jvascript中 - 做JAVASCRIPT中的检测。没有理由使用黑客,因为您可以使用各种工具来检测IE,而不仅仅是版本。 Rambo的解决方案已足够: - )
答案 2 :(得分:0)
如上所述,jQuery不会让你应用无效的属性。无论如何你需要这样做,把它们放在一个CSS类中,用addClass()和removeClass()来关闭和打开类。
答案 3 :(得分:0)
我认为你可以试试css('display','inline')