如何在为本机不识别未知元素的无脚本客户端支持渐进增强的同时使用HTML5标签?

Beo*_*ett 7 javascript css html5 progressive-enhancement

据我了解渐进式增强功能,其中一个基本原则是,无论浏览器版本或设置如何,网站都应该适用于所有人.

我看到的建议细分是:

  • HTML内容层使用语义标记
  • CSS表示层
  • 增强层(通常通过JavaScript或像JQuery这样的JS库)

但是,我对处理HTML内容层的正确方法感到困惑.特别是语义标记.

我一直看到HTML5标签,如nav,article,footer等,是维护PE语义标记的理想方法.但是,许多旧版浏览器不支持HTML5标记.解决这个问题的简单方法是使用CSS将默认样式设置为{display:block; 对于HTML5标签,但这仅适用于某些浏览器.例如,可怕的IE6无法识别HTML5元素.

典型的解决方法是使用javascript直接在DOM中动态创建缺少的元素(例如通过HTML5 shiv).

但是......如果客户端运行的环境不能识别HTML5元素,并且由于某种原因它们不接受javascript,那么如何合并HTML5语义标签以支持渐进增强功能,而无法正确呈现无法识别标签的无脚本浏览器?这是否可能,或者您是否必须将这些浏览器排除在您的设计考虑之外(这似乎与PE理想相反)?

Nor*_*ard 3

如果您对以这种方式支持没有 JS 的 GhettoIE 非常偏执,那么现在可能是if ie在 HTML 中使用注释的时候了,指导人们获取 Chrome Frame,或者获取更好的浏览器,或者单击链接来获取它们到一个老式的、丑陋但实用的页面版本,它遵守 CSS2.1(只是核心功能)和 HTML4.01 严格标记。

渐进增强的重点是提供关注点分离,并提供受支持的功能......但这里有基线要求。

你也不能指望 Mosaic 和 IE3 能够运行这些东西。

带 JS 的 IE6,或者非 IE,现代标准浏览器,不带 JS 是事实上的。