我厌倦了的笑话和/或讨论之一是人们贬低HTML 。是的, HTML不是一种编程语言。不, HTML不应该只是一个编译目标。学习HTML是一项可靠的投资,而且并不难做到。
我并不孤单,《连线》有一篇关于HTML作为一种编程语言的文章,甚至对于RAG训练来说, HTML 也比文本更有意义。
HTML构建了我们的内容,使索引变得更加容易,并为我们提供了大量可访问且易于使用的界面元素。而且学习起来很简单。语法很清晰,规则也很少。然而,似乎没有人愿意去查找这些内容。
在上周的 Bytes 时事通讯中,有一个“发现错误”挑战,如下所示:
姓名:
年龄:
提交
公司:
雇员:
提交
所描述的错误是,由于第一个表单没有关闭,脚本得到了错误的内容。但在这少量的HTML中还有很多错误,这让我退缩了。
字段集需要图例
它使用没有图例的字段集——为什么?字段集的想法是将表单元素分组并给该组命名。如果你省略名字,你所做的只是在它们周围画一个难以设计的边框。
无意义的标签
它使用标签,这是一个令人高兴的惊喜,但无法将它们连接到正确的表单元素。对于描述表单元素的标签,您需要该元素连接到 ID,而不是名称。名称属性不是唯一的,而是将表单元素聚集在一起。因此,您可以有几个具有相同名称的元素,但每个元素都需要有一个 ID 才能将其连接到标签。当表单被提交时,名称成为表单数据(或URL参数),ID 供HTML解析器内部使用。还有更多。 ID 是网络上为数不多的多维事物,因为它们可以通过浏览器访问( URL末尾的哈希),它们将HTML元素连接在一起(指向它的链接,或带有“for”的标签) ,它们很容易在CSS和DOM脚本中使用。一件奇怪的事情是,每个具有 ID 的元素也成为窗口上的全局 JavaScript 挂钩。这是浏览器的一种便捷方法,但不是标准。
一个很好的例子就是广播团体。我几乎没有看到它们在使用,但它们是提供“选择一个”界面而不需要任何 JavaScript 的好方法。
唱片公司
木马
墓志铭
地狱猫
请注意,“ID”的名称可以是随机的,但必须是唯一的,而“名称”则有意义,以便人类可读。这甚至是规范的一部分:
标识符是不透明的字符串。不应从 id 属性的值派生出特定含义。
另外,激活“切换复选框/单选”按钮即可看到,只需更改HTML输入的“类型”属性,您就可以允许用户提交一个或多个值。通过使用正确连接的标签,我们还允许用户单击/点击/点击整个文本上的空格进行选择,而不必点击小型无线电控件。
HTML过去和现在都很有趣!
我敢说HTML对我来说很有趣。原因是我很久以前就开始了。构建我的第一个网站而不是使用 Visual Basic 或 C 生成器创建东西真是太棒了。 HTML在我看来非常强大。我不需要花任何钱,安装和了解开发环境。它所需要的只是一个index.html 文件并使用操作系统附带的文本编辑器编写代码。我访问htmlhelp.com ,下载了 zip 格式的HTML规范,并将其放在软盘上以进行查找。我只在工作时上网,家里的互联网连接要晚得多。
无情的浏览器
在早期,犯HTML错误是一个问题,因为浏览器会因此惩罚你。 Netscape 不会渲染未关闭的表。当时表格是创建复杂布局的唯一方法。这是对HTML的错误使用,因为它不符合语义,但我们没有别的办法。
后来,当CSS成为一种东西时,最终产品中仍然有很多HTML的干扰。空格在HTML中不会产生影响,但它会在表格单元格和图像中造成大量额外空间。当时我给设计师的最好建议就是验证他们的HTML 。 HTML验证器成为我为客户解决问题的强大工具。
如今,随着HTML5解析器的出现, HTML不再受到人们的关注,事情变得更加宽松。
缺乏对HTML 的兴趣和尊重
随着浏览器竭尽全力修复损坏的HTML ,开发人员不再关心它。如果它不破坏构建,那么它就没有捆绑这些 JavaScript 包那么重要。但这对我来说是懒惰的开发。为什么要依赖一个平台来修复只要我们付出一点努力就可以避免的错误?
到 2025 年, HTML将为我们带来一些令人兴奋的新功能。单个元素可以取代整个组件库。当然,该组件可能会给我们带来更可预测的样式和更多的控制。但这也是另一种依赖性,并且可能是安全、性能和维护问题。这是一个我们无法解决的问题,因为我们无法控制它。
无论您如何为网络创建内容,最终产品都将是HTML 。在服务器上生成的HTML或使用 JavaScript 生成的 HTML。由于人工智能搜索机器人不渲染 JavaScript,也许现在是重新学习HTML可以为您做什么的好时机。 25 年来,它一直没有让我失望,而许多其他“神奇的解决方案”却让我失望。
原文: https://christianheilmann.com/2025/01/15/learning-html-is-the-best-investment-i-ever-did/