“我想你仍然可以在没有 Javascript 的情况下做很多事情” - 有趣的是,不久前我们在没有 javascript 的情况下完成了所有事情。
最好的方法是所谓的“渐进式增强”。原则是制作一些无需 JavaScript 即可工作的东西,然后通过将 JavaScript 绑定到对象来对附加行为进行“分层”。诸如 jQuery 之类的库使这一点变得简单,因为它们支持 CSS 样式的选择器。这样您就可以应用几乎与应用 CSS 相同的方式来应用 JS 行为(好吧,有点夸张)。
需要考虑一下什么是好的基线以及应该如何更改页面。
通常真正的额外工作是在服务器端,您可能需要拥有多个请求处理系统。在一个小小的回应中解决这个问题有点大!
此外,值得考虑的是用户不使用 JavaScript 的原因和原因。 Here's something I wrote a while ago on the subject你有兴趣吗。
举个例子?举个简单的例子,例如。当用户将鼠标移动到表单字段时,您希望通过表单字段显示漂亮的“工具提示”。在 HTML 中,这些可以(例如)标记为段落:
<label for="username">User name</label><input type="text" id="username" />
<p>Username must be between 6-8 characters</p>
对于非 JS 用户,提示可以简单地显示为一个漂亮的段落。所以你用 CSS 来设计它。为 JS 用户提供额外的 CSS,默认隐藏段落。所以:两套 CSS,一套覆盖另一套。
非 JS:
form p {
margin: 10px 0 0 0;
border-bottom: 1px solid grey;
}
js:
form p {
position: absolute; display: none;
width: 180px;
background-image: url(nice-bubble.gif);
padding: 10px;
}
如何在 JS/非 JS 情况下应用 CSS 取决于您。有很多选择。就个人而言,我喜欢在 CSS 中为 JS 编写代码,并在标签中有一个 noscript.css 变体(即向后工作)。这不是有效的 XHTML,但效果很好。
然后,有一些 JS 来查找元素并管理工具提示的显示代码。例如:
$(document).ready(function() {
$('form input').focus(function() {...display paragraph...});
// etc;
})
这是伪造的代码,但你明白了。你最终得到的是 1 组 HTML,有 2 个演示文稿和其他行为,并且没有 JS 纠缠在你的 HTML 本身中。