CSS,(X)HTML严格或过渡以实现跨浏览器兼容性?

时间:2012-10-03 06:17:15

标签: html css cross-browser

我正在从头开始制作网页,它需要尽可能广泛地支持浏览器市场份额。 网页将相对简单,只有一些ajax调用会填充一些div

我应该支持哪些(X)HTML和CSS版本,我应该在严格模式还是过渡模式下编码?哪个应该是我应该支持的最早的IE浏览器?我追求最大的跨浏览器兼容性和一致性。

编辑:该网页将面向商务人士。最初的问题假设他们中的大多数仍然使用IE 6,但似乎我错了。

4 个答案:

答案 0 :(得分:2)

我强烈建议您使用HTML5,即使您不使用任何新的语义元素。

引自Google Maps API

<!DOCTYPE html>
     

大多数当前浏览器将呈现使用此声明的内容   “标准模式”中的DOCTYPE表示您的应用程序应该   更符合跨浏览器。 DOCTYPE也是为了设计的   优雅地退化;不理解它的浏览器会忽略它,   并使用“怪癖模式”来显示其内容。

如果您想使用几乎任何Web 2.0 API,那么您将无法使用XHTML Strict / Transitional。

声明<!DOCTYPE html>,你会觉得很舒服。


CSS版本并不重要,因为 现代 浏览器还不支持某些CSS2属性。您必须依赖这些网站来检查您认为必需的每个属性的兼容性,以显示内容:

  1. Quirks Mode
  2. Can i Use
  3. Litmus
  4. 通常,您可以通过Google“apropertyname浏览器支持”来获取非常有用的信息。

    请注意websites don't have to look exactly the same in every browser,您的主要目标是使内容在“任何”条件下可读并可用。


    说到IE,请检查自己的使用情况更新至2012年8月/ 9月

    • StatCounter IE6:notevenlisted,IE7:1.12%,IE8:13.08%
    • W3Counter IE6:notevenlisted,IE7:4.60%,IE8:10.19%
    • Wikimedia IE6:0.99%,IE7:3.44%,IE8:8.46%

    所以最多你可能会担心IE7。

    对于使用IE7及以下版本的人conditional comments,您也可以创建一个“向后兼容”版本(基本上禁用css和javascript)。因此,您肯定会提供可读性,然后添加一个链接以切换回正常版本(风险自负)。

    即使大多数API(例如Vimeo,Facebook,Google Maps)以及库和插件等也不再适用于IE7。或者至少它们会导致JavaScript错误。

答案 1 :(得分:1)

支持IE8 +,使用

<!DOCTYPE html>
<head>
 <meta http-equiv="X-UA-Compatible" content="IE=edge" />

然后到达。

答案 2 :(得分:1)

  

我应该支持哪些(X)HTML和CSS版本

除非你已经使用XML工具链,否则XHTML会更麻烦。

HTML 4是HTML的最新推荐。

HTML 5虽然是草稿,但您可以使用

  

我应该在严格模式还是过渡模式下编码?

如果您使用的是具有Strict和Transitional变体的HTML版本,请使用Strict,除非您需要Transitional的特定功能(不太可能,浏览器很久以前就已完成向1996推荐的过渡)。

  

哪个应该是我应该支持的最早的IE浏览器?

取决于您的目标受众选择的浏览器(这些浏览器会随着时间的推移而变化,因此任何具体的答案都会过于本地化)和预算。

  

和CSS

不要注意CSS版本号。担心对特定功能的支持。

  

我追求最大的跨浏览器兼容性和一致性。

是网络。瞄准“好”而不是“相同”。

答案 3 :(得分:0)

<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script>
<![endif]-->
<script type="text/javascript" src="js/html5shiv.js" ></script>
<script type="text/javascript" src="js/html5.js" ></script>

过渡是最好的。你可以从这个browser compact

下载shiv.js

也请参阅此链接What does <meta http-equiv="X-UA-Compatible" content="IE=edge"> do?