不恰当的使用

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 提供适用于您旅程各个阶段的云产品。立即开始使用 $200 免费积分!

数据库
用于内容
HTML
用于描述和显示内容
CSS
用于设计
JavaScript
用于功能

 

这些是这些技术的适当用途。不恰当的使用是当您跨越这些界限并创建不匹配时。

不恰当的数据库使用

您将博客文章的标题存储为值

<h1>10件你不应该带去跳伞的东西</h1>

将 HTML 标签与标题一起存储是不合适的。它在以后会变得不灵活,并且与内容本身无关。如果它最初的设计就是为了让所有标题在输出时具有不同的 HTML 标签呢?那么,使用另一个数据库字段来存储标签,或者更进一步,使用一个独立的字段来保存表示该标题重要性的符号。

不恰当的 HTML 使用

人们常说“HTML 用于内容”,这只是一部分正确。是的,内容最终会变成 HTML,但是由 HTML 编码员编写的标记应该包含很少的实际内容。它应该包含描述内容的结构元素,在所有这些结构的内部,描述性标签包围动态获取内容的代码。

其他不恰当的 HTML 使用包括:

<div class="post-seperator"></div>

很有可能,它纯粹是为了视觉效果而存在的。理想情况下,应该使用另一种方法来实现相同的视觉效果,而无需额外的 div。

另一个不恰当使用的例子,无需解释

<p style="border: 1px solid red; padding: 10px;">警告:您永远不应该这样做。</p>

不恰当的 CSS 使用

与其他语言相比,误用 CSS 更加困难。编写糟糕的 CSS 很容易,但这只是糟糕的 CSS,而不是技术的误用。例如,使用 RGBa,它允许您在声明颜色时调整颜色的 alpha(不透明度)。然后,您将框的背景设置为使用非常浅的黑色色调,并在其上使用黑色字母。并非所有浏览器都支持 RGBa,框将变成全黑,黑色字母不可读。这无疑是一个巨大的错误,但并非技术的误用。

但是,您可能会误用它,一个例子是 CSS 允许您实际将内容追加到 HTML 中。这有几个有趣的用途,但也可能被误用。例如

#footer:after { content: "版权所有 2009 The Bad Idea Police"; }

不恰当的 JavaScript 使用

关于 JavaScript 有趣的是,如果某件事可以用其他语言完成,那么它可能应该用其他语言完成。

例如,CSS 完全能够处理设计更改的“悬停”事件,但 JavaScript 有时会被误用以处理悬停事件。例如,在悬停时更换图像。这绝对是 CSS 精灵的领域。

另一个典型的例子是表单验证。您可以使用 JavaScript 为表单添加出色的验证,这对用户来说非常响应且有用。但是,您最好也使用服务器端语言验证该表单,否则您可能会遇到安全问题。

上面说 JavaScript 用于功能。这是真的。当您需要页面在加载完成后“执行某些操作”并具有交互性时,这通常是 JavaScript 的领域。但这并不是它所做的一切。JavaScript 非常强大。它可以添加/调整/删除 CSS。它可以添加/删除/调整 HTML。(这两件事都是通过 DOM 完成的)。它可以与您的计算机通信并获取答案。通过 AJAX 技术,它可以与服务器通信并获取答案。

JavaScript 被误用的可能性非常高,但界限有点模糊。例如,在上面不当使用 HTML 的示例中,我们试图摆脱一个用于纯粹设计原因的空 div。我们可以用 JavaScript 将该 div 追加到页面中。这解决了 HTML 的问题,但现在 JavaScript 在处理您的 HTML。感觉像是越界了,但我认为这是一种可以接受的 JavaScript 使用方式。然后,假设您在追加此 div 时,知道它需要是红色的,因此您使用 JavaScript 将 CSS 追加到它并使其变红。这就不是JavaScript 的误用,因为您本来可以使用常规 CSS 来完成。感觉很奇怪,但这就是我的意思,如果您可以用另一种语言做到,那么您就应该用另一种语言做到。

只在理想的世界中

所有这些不只是我的一家之言,这只是对我们行业今天讨论的内容的复述/融合。但这不仅仅是胡言乱语,这些标准的演变是因为它是构建更易于维护、更易访问和更语义化的网站的正确做法。

然而,我首先要承认,规则有时会被打破。我们都是普通人,我们只知道我们所知道的,我们一天只有那么多时间。如果您必须偶尔打破规则才能完成工作,那也没关系。您甚至知道自己正在打破规则,这本身就非常棒,而且您每天都在学习和进步。