通常,当我构建网站设计时,我会专注于一个浏览器(Chrome)并在打开另一个浏览器之前将其构建完成。完成后,我将在其他浏览器中对其进行测试,同时祈祷一切正常。
我知道可用的CSS 规范化器有助于跨浏览器保持一致性,但有时我更愿意避免使用一个以防止不必要的膨胀。
我只关心最新的浏览器,像素完美的设计不是必需的。我应该注意哪些设计(视觉和引擎盖下)注意事项,以防止由于跨浏览器兼容性问题而导致任何潜在的头痛或“CSS hacks”?
通常,当我构建网站设计时,我会专注于一个浏览器(Chrome)并在打开另一个浏览器之前将其构建完成。完成后,我将在其他浏览器中对其进行测试,同时祈祷一切正常。
我知道可用的CSS 规范化器有助于跨浏览器保持一致性,但有时我更愿意避免使用一个以防止不必要的膨胀。
我只关心最新的浏览器,像素完美的设计不是必需的。我应该注意哪些设计(视觉和引擎盖下)注意事项,以防止由于跨浏览器兼容性问题而导致任何潜在的头痛或“CSS hacks”?
考虑到您只针对最新的浏览器(在编写 Chrome 37.x、Firefox 32.x、Internet Explorer 11 时应该涵盖主要的最新渲染引擎),您可以相当容易地实现跨浏览器兼容性,并且在大多数情况下 - hack免费,因为所有提到的浏览器都支持大多数最新的 HTML 和 CSS 属性。
在开始之前你应该问自己几个问题:
1.) 我将如何从花在使我的网站看起来与跨浏览器相同的时间/金钱中受益?
如果您花费大量时间优化您的网站并使其在所有浏览器中看起来都一样,但无法在合理的时间内收回成本,那么很明显您是在浪费时间来实现跨浏览器兼容性(例如:如果您正在使用的库与 Microsoft 签订了 10 年的合同以在他们的软件上运行?)。
2.) 我的网站内容在所有浏览器中看起来都一样重要吗(像素完美)?
如果没有特定原因需要虚线在所有浏览器中看起来都一样,那么您不应该打扰它 - 让浏览器按照它的渲染规则来渲染它。它在每个浏览器中看起来都不一样,但是没有普通用户会去检查您的网站是否确实在 Firefox 或 IE 中呈现相同的虚线。用户倾向于使用一个浏览器来浏览内容 - 只要您的所有网站功能都可以正常工作并且看起来很吸引人,那么您就可以开始使用了。像素完美的设计很少需要(您可能希望实现它们来炫耀您的技能 - 特别是在个人开发者作品集网站中)。
3.) 我的网站功能可以在任何浏览器中运行吗?
许多最新的 HTML/CSS(/JavaScript) 技术并不适用于所有浏览器,因为最新的 HTML/CSS 规范还远未完成,浏览器供应商通常决定在不遵循规范或更改规范的情况下包含测试功能,而供应商仍未发布其浏览器的新版本。如果是这种情况,您有两种选择:
建立网站时的一些注意事项:
这些将是我在开始工作之前要考虑的主要考虑因素。
您需要注意的是 HTML、CSS 等的某些元素与不同浏览器的兼容性。较新的 HTML5 元素(甚至是一些 CSS3)在某些浏览器中不起作用,从而导致设计区域出现问题。
您可以通过查找许多可能的参考来检查这一点(Mozilla Developer Network、CSStricks、CanIUse、w3schools(另请参见w3fools))。这些通常有一个浏览器兼容性部分,它显示一个元素将在哪些浏览器中工作,以及是否可以使用任何替代或前缀来帮助兼容性 - 例如:
条件代码也可用于添加内容以使其适用于特定浏览器 - 例如,让 IE 的 8 版或更少版本使用HTML5shiv(让 HTML5 元素工作):
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></sc/>
<![endif]-->
尽管首先制作一个可以正常工作的东西也很好。
我只关心最新的浏览器,像素完美的设计不是必需的。
那么你很可能会好起来。只要您按照标准构建,如果您只针对最新和最伟大的浏览器,就不应该有任何巨大的惊喜。只是不要完全依赖任何一项尚未得到广泛支持的 CSS 功能而没有后备计划。