在旧版IE中,像CSS3一样使用.htc文件来实现圆角是否是一个好的做法?

4

我正在尝试使用CSS3制作圆角的简单HTML按钮,但是对于IE浏览器,我正在使用.htc文件来实现圆角效果。使用.htc文件是好习惯还是坏习惯,我无法判断是否要使用这个.html文件。

我的另一个担忧是渐进增强是否允许使用.htc文件。

请您告诉我使用.htc文件是否存在一些缺点。

我对CSS3很陌生,非常感谢您的帮助。


不知道这是否更好,但它只是JavaScript:http://www.ruzee.com/content/liquid-canvas - Marnix
个人认为你根本不应该使用这些东西。使用CSS3圆角边框,如果用户使用旧版本的IE,则边框不会是圆形和花哨的。也许“丑陋”会说服他们最终更新浏览器,在我看来。显然,只要它不影响您网站的功能,那么使用旧版本(限制在一定范围内)的人应该能够使用您的网站,即使没有那么多的视觉效果。 - Bazzz
@Bazzz - 或者你可以实现它并使其看起来漂亮,但是慢速会说服他们升级。 :) - Spudley
2个回答

6
那些基于.htc的解决方案的缺点是,它们使用JavaScript和VML绘制圆角,因此它们比具有本地border-radius支持的浏览器慢。但是,只有在您广泛使用效果时才会注意到这一点。
不幸的是,在旧版本的IE中没有更好的方法来获得圆角(IE现在在版本9中支持border-radius):
- 图像需要大量工作(您必须为不同半径制作新图像) - 纯JavaScript解决方案,例如创建许多div以创建角落,甚至更慢。
我建议使用CSS3PIE来制作圆角。这使用相同的.htc/ VML方法,但它是一个积极更新的库,以最佳方式执行此操作。此外,它还提供了对更多CSS3效果的支持。

1
这不是 .htc 让它变慢,而是 VML。但是其他所有的解决方案都有主要问题,所以底线是:如果你想在 IE<9 中使用圆角,则需要使用基于 VML 的解决方案。如果你非常重视圆角,那么你就必须接受它很慢的事实。CSS3Pie 是目前最好的解决方案。 - Spudley
我同意你的评论,除了我没有说.htc本身会使它变慢 - 请仔细阅读我的第一句话。 - thirtydot
是的,我同意你的观点。 :) - Spudley
@Spudley:我同意你的观点 :) - thirtydot
那真是太好了,你很同意 :) - Spudley

0
不,这不是一个好的做法,它是一种黑客行为,会对代码和页面性能产生负面影响。
.htc文件强制浏览器使用vml人工绘制圆角。
在这种情况下,您应该使用渐进增强,请阅读这篇文章http://en.wikipedia.org/wiki/Progressive_enhancement
这个术语是所有浏览器和设备的最佳实践。

仅就页面性能而言,圆角将在其他元素之后呈现,这会对页面性能产生不良影响;但考虑到缺乏替代方案,这并不足以使其成为“不良实践”。而.htc文件是一种渐进增强的形式 - 您并未提出其他建议。 - tog22

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接