【发布时间】:2009-06-30 20:31:42
【问题描述】:
我正在尝试找出确保跨浏览器兼容性的最有效方法。我做了一些研究并学到了一些有趣的东西,例如 Mozilla/Firefox 无法处理名称以数字开头的类。有没有办法让 CSS 适用于任何浏览器,或者开发多个 CSS 并添加代码以根据所使用的浏览器选择使用哪个更好?
【问题讨论】:
标签: css cross-browser
我正在尝试找出确保跨浏览器兼容性的最有效方法。我做了一些研究并学到了一些有趣的东西,例如 Mozilla/Firefox 无法处理名称以数字开头的类。有没有办法让 CSS 适用于任何浏览器,或者开发多个 CSS 并添加代码以根据所使用的浏览器选择使用哪个更好?
【问题讨论】:
标签: css cross-browser
您可以考虑使用 CSS 框架,例如 Blueprint。它包含一个 CSS 重置,应该会有所帮助。
另外,你可能想看看Yahoo's CSS reset
【讨论】:
澄清一点的旁白:
...我做了一些研究并学到了一些有趣的东西,例如 Mozilla/Firefox 无法处理具有 以数字开头的名称的类.. ..
抱歉,这不是 Mozilla 的限制,它在 CSS 规范中:类名不能以数字开头。 允许他们的任何浏览器都没有正确执行规则。
在 StackOverFlow 上回答 here。规范的相关部分位于http://www.w3.org/TR/CSS21/syndata.html#characters(参见第 2 段)。
【讨论】:
回答您的问题:没有办法只使用一个通用 css 制作页面并使其在所有浏览器中均等显示,除非您只使用所有可用 css(选择器、值等)的极小子集.).
我的工作方式是:
【讨论】:
一个好的起点是使用 CSS 重置,例如:http://developer.yahoo.com/yui/reset/
【讨论】:
您的目标应该是适用于所有浏览器的 CSS。如果您从每个浏览器的 CSS 文件开始,您会在哪里停止?移动Safari?群?征服者?每个支持的浏览器的每个版本?
最终,您可能需要妥协,但当您到达那里时,您可以穿过那条路。
【讨论】:
无论您的基础架构/框架/等如何,您都应该在所有主流浏览器上测试您的代码。如果可能,请避免使用样式表来解决特定于浏览器的问题。浏览器会发生变化和适应,这意味着当新浏览器出现时,您可能会不得不更新一堆网站。
CSS 是一个善变的野兽,除了大量的尽职调查和测试之外,我还没有找到任何解决方案来涵盖所有的怪癖。
【讨论】:
您可以使用为您执行此操作的框架,例如 GWT,但请记住,您仍然会遇到一些问题。
【讨论】: