2010-11-07 109 views
3

只要启用了ActiveX,我就可以在FF,Chrome,Safari甚至IE8中使用我的页面。CSS依赖于ActiveX?

[链接删除]

要得到CSS3功能(旋转,不透明度,文字阴影)在IE8的工作,我不得不使用ActiveX过滤器。我的问题是,当你第一次去这个网站时,它会弹出一个顶部的横幅,用户必须点击它,然后点击允许,然后点击确定。我不认为大多数IE用户会这样做。

所以我想在IE8中(在ActiveX之前)将默认布局看起来像样的,将标题(我的名字)向下移动并给它一个纯色背景。但是,如果我添加这些样式,如果用户启用ActiveX,则会使页面看起来很糟糕。

我似乎无法想到这个CSS的解决方法,有没有人有任何想法?

谢谢! 杰夫

编辑:为了澄清,我不是试图让旋转,opactiy等在IE8的工作没有过滤。请参阅对Olafur的澄清说明...

+3

哈哈,我几乎会为'...甚至IE8'+1投票+1 – Harmen 2010-11-07 19:49:22

+0

FF 3.6中的文本旋转看起来很糟糕 - 没有AA。除非是动态的,否则最好使用没有锯齿的图像(可能只是服务器端生成的)。 – 2010-11-07 20:02:26

回答

2

因此,首先,好消息:

我这个问题是,当你第一次去的网站,它在顶部,哪些用户必须点击一个横幅弹出,然后单击允许,然后单击确定。我不认为大多数IE用户会这样做。

大多数IE用户不需要这样做,因为'Run ActiveX controls and plug-ins'的默认安全设置是“已启用”。我怀疑你看到它,因为你或你的网络管理员有意在你的安装上锁定ActiveX。

现在,坏消息 - 我不确定会有什么方法来测试ActiveX,而不会触发警告消息的人谁没有默认启用它。但是,如果你可以为它制定一个可靠的测试(不知道究竟如何,但是applying a filter的一些变化,然后检查它是否应用应该工作),应用样式应该是相对容易的一些JavaScript。

声明为您的网页的默认规则,而不以正常的方式任意旋转,不透明度或文字阴影:

h1 {...} 
p {...} 

在页面加载运行您的程序,以检测是否ActiveX是支持的,如果它是动态添加类到正文元素,如ax-en。与此同时,在你的样式表你的规则是这样的:

.ax-en h1 { /* -ms-filter stuff and associated rules */ } 
.ax-en p { /* -ms-filter stuff and associated rules */ } 

这基本上是由modernizr.js所使用的方法,有this article对总体战略的更详细的解释一读。

1

这些是仅ActiveX的过滤器,我不认为有任何可用的可以通过CSS实现相同的效果。

+0

对不起,也许我不清楚......我意识到我不能做没有ActiveX过滤器的旋转和不透明度。所以我想要做的是头部是一个纯色,对于IE8用户来说是不旋转的,除非他们点击以允许ActiveX。我可以通过将“background-color:rgb(whatever)”来实现,但如果用户单击允许ActiveX,ActiveX不透明度过滤器将不会覆盖rgb()。我在头文件的定位方面遇到了类似的问题。这有意义吗? – Jeff 2010-11-07 20:01:30

1

旋转,不透明度和文字阴影:不,你不能这样做。您必须使用IE8中使用ActiveX的CSS filter声明。

但是对于其他功能 - 边框阴影,边框半径等,我建议你看一下CSS3Pie,它允许你在IE中支持CSS中的一些现代浏览器功能(即使在IE6中也是如此) 。

当IE9发布时,您将能够在标准CSS中完成所有这些功能,但这段时间还不会有一段时间,您仍然必须处理IE8(以及IE6和IE7)即使在IE9发布的时候也是如此。

+0

谢谢,但看到我对Olafur Waage的回应...... – Jeff 2010-11-07 20:31:23