我刚刚开始为一家规模很大的公司工作,我的团队负责管理所有面向公众的网站。我今天第一次打开样式表,看到超过20个设计师使用语音家庭黑客修复IE错误的实例。 (我不知道他们为什么允许图形设计师编写任何类型的标记)
语音家庭黑客的一般公众舆论是什么?值得花时间推荐使用IE条件注释来包含自定义样式表吗?
答案 0 :(得分:5)
“语音家族”黑客,被称为Tantek Celik Box Model Hack,用于在Windows上隐藏IE4 / 5中的特定CSS规则,因为这些浏览器中的CSS标准实现不正确。它试图向所有浏览器提供最正确的单一样式表,而无需借助浏览器嗅探和多个样式表。
具有讽刺意味的是,这种破解是许多工时(数月?)的实验和测试的结果,以开发符合标准的样式表,适用于较旧的,较新的和未来的浏览器。这是为弥补浏览器符合CSS标准的可怕状态而创建的几种解决方法之一。
请参阅Jeffrey Zeldman的使用Web标准进行设计深入了解为什么坚持标准(尽可能多)是一个有价值的目标,以及为什么使用浏览器嗅探和多个样式表只会导致头痛对于开发者:
http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/
一个例子是军备竞赛以跟上浏览器/操作系统的组合,更不用说移动电话和其他具有浏览功能的设备了。检测代码必须随每个新组合而改变,并且由于许多浏览器伪装成Netscape Navigator的方式,检测可以成为全职工作。
另一个很好的参考是Web标准项目,它有很多关于这个主题的好的信息和教程:
如果您将编码风格转向符合标准,则通常不必担心未来浏览器的发布。是的,您仍然需要对它们进行测试,但您不必编写,然后为每个样式测试自定义样式表。
答案 1 :(得分:4)
任何类型的黑客都是危险的,因为它们在未来的浏览器中容易产生意想不到的影响(很多用IE7打破)。过滤CSS的安全方法是:
尽可能使用所有主流浏览器都支持的CSS子集。随着时间的推移,这种情况正在改善,因为较旧的浏览器会降低用户可忽略的百分比。
答案 2 :(得分:1)
我对这样的黑客的感觉是,如果可以,你应该避免它们。如果可以在不诉诸此类恶作剧的情况下跨浏览器获得正确的呈现,那么您应该以正确的方式进行。但是,有时浏览器有错误的CSS实现,并且有必要使用这样的黑客。
答案 3 :(得分:1)