据我了解渐进增强,基本原则之一是网站应该对每个人都有效,无论浏览器版本或设置如何。
我看到的建议细分是:
- 使用语义标记的 HTML 内容层
- CSS 表示层
- 增强层(通常通过 JavaScript 或 JQuery 等 JS 库)
但是,我对处理 HTML 内容层的正确方法有点困惑。特别是语义标记。
我不断看到诸如导航、文章、页脚等 HTML5 标记是为 PE 维护这种语义标记的理想方法。但是,许多较旧的浏览器不支持 HTML5 标签。解决这个问题的简单方法是使用 CSS 将默认样式设置为 { display: block; } 用于 HTML5 标记,但这仅适用于某些浏览器。例如,可怕的 IE6 无法识别 HTML5 元素。
典型的解决方法是使用 javascript 将缺失的元素直接动态地创建到 DOM 中(例如通过 HTML5 shiv)。
但是...如果客户端运行的环境无法识别 HTML5 元素,并且无论出于何种原因,它们都不接受 javascript,那么您如何合并 HTML5 语义标签以支持渐进增强,而不会无法正确呈现无法识别标签的无脚本浏览器?这可能吗,或者您是否必须将这些浏览器排除在您的设计考虑之外(这似乎与 PE 理想背道而驰)?