【问题标题】:Is there a recommended maximum line length for HTML or JavaScript? [closed]HTML 或 JavaScript 是否有推荐的最大行长? [关闭]
【发布时间】:2010-05-22 01:44:20
【问题描述】:

大多数编程语言的大多数样式指南都推荐最大行长,通常为 80 个字符。对于 HTML 和 JavaScript(当它嵌入 HTML 时)来说,这似乎不切实际。对于 HTML/JavaScript 的实际行长限制是否有共识?还是通常由开发人员的常识决定?

【问题讨论】:

  • 许多“服务”不会换行,也没有滚动条,因此超过 72 或 80 个字符可能会被截断。一些 terminal 窗口、GitHub 等。此外,即使有滚动条,它也有助于提高可读性。因此,虽然代码会运行,但它可能并不总是显示所有内容。

标签: javascript html coding-style


【解决方案1】:

既然你提到了 JavaScript,这就是 Douglas Crockford 不得不说的话题:

避免超过 80 个字符的行。当一条语句不适合一行时,可能需要将其中断。将中断放在运算符之后,最好是在逗号之后。运算符后的中断降低了复制粘贴错误被分号插入掩盖的可能性。下一行应该缩进 8 个空格。

发件人:Code Conventions for the JavaScript Programming Language

【讨论】:

  • 我发现 8 个空格缩进使代码更难阅读,并严重限制了一行中可以输出多少代码
  • @Newtopian:请注意,他建议仅对语句中断之后的行使用 8 个空格缩进,即。当语句不适合一行时。否则他建议“缩进的单位是四个空格”。就我个人而言,我更喜欢 JavaScript 中的 2 个空格缩进。
  • 4 个空格的缩进使得很难达到 80 行。我会选择 2 和 80 或 4 和 100。
【解决方案2】:

这个限制似乎是古代 IBM 打孔卡的遗产。 Why is 80 characters the 'standard' limit for code width?

我真的发现只有 80 个字符的 HTML 很难工作。它变得不可读非常快。所以我决定自己以 GitHub 上的行长作为衡量标准。

似乎存在不同的字符限制,具体取决于操作系统和/或浏览器。但是 120 应该是一个相当安全的值。

在 Ubuntu 上:

  • 火狐:126
  • Opera 12.16: 126
  • 铬:113

在 OSX 10.9 上:

  • 谷歌浏览器:125
  • 火狐:122
  • Safari:121

来源:What is Github's character limit, or line length for viewing files on github?


另一方面,有时选择自己的标准是行不通的。您的语言或框架的编码标准或 linter 可能会迫使您坚持使用 80 个字符。这至少对于在移动屏幕上阅读代码很有帮助。

但对于 HTML,我会将这个数字增加到 120 个字符。为了可读性。我的意思是想想所有像 Bootstrap 这样的 CSS 类繁重的框架,你的模板最终会是什么样子,只有 80 个字符的行长? (除此之外,您最好选择 Bourbon Neat,它不会用大量的类污染您的 HTML。)

【讨论】:

  • 如果 linter 或框架迫使我坚持使用 80 个字符,我永远不会使用它。
【解决方案3】:

Google 说 JS 500-ish:https://developers.google.com/closure/compiler/faq#linefeeds

闭包编译器有意每 500 次添加换行符 字符左右。防火墙和代理有时会损坏或忽略 行很长的大型 JavaScript 文件。每次添加换行符 500 个字符可避免此问题。

uglify --max-line-len 500 或 grunt-contrib-uglify options: { maxLineLen: 500 }

我不确定该限制是否适用于 HTML 或 CSS,但我还没有看到我使用的任何 CSS 压缩器的选项。

SMTP 规则将适用于 HTML 电子邮件: https://www.ietf.org/rfc/rfc0821.txt

包括命令字在内的命令行的最大总长度 并且 CRLF 是 512 个字符。

【讨论】:

  • 对我来说,这个答案是最正确的,因为它说明了现实世界的实际限制。即使它背后的推理是一种边缘情况(防火墙),它仍然具有很大的实际意义。
  • 我想指出这与编译脚本有关,你不应该编辑,而应该编译成。
【解决方案4】:

80 个字符行的限制是从没有大量空间的屏幕时代产生的。现在它只是为了便于阅读,因此可以并排打开两个(或多个)不同的代码文件,而无需滚动查看每个文件。

这些原因仍然适用于 HTML 和 JavaScript,但显然没有必要遵守它们。所以这取决于你。

我同意 HTML 很难保持在这个限制之内,尽管使用 JavaScript 应该不成问题。

【讨论】:

  • 谢谢!我提到 javascript 的原因是因为它有时嵌入了几个缩进级别——在 HTML 中很深。但我实际上主要是在谈论 HTML。
  • 好吧,我想有人会说您不应该在 HTML 页面中深度嵌套 javascript。就我个人而言,我更喜欢每个源文件尽可能只有一种语言
【解决方案5】:

行长的最大限制是您觉得阅读和编辑的舒适度。就个人而言,我的任何代码如果不换行就无法在屏幕上显示。

【讨论】:

    【解决方案6】:

    将所有的 HTML 放在一行中怎么样?浏览器将如何应对呢?我在某处读到某些浏览器(不记得是哪一个)因长行而中断。

    从文件中删除新行是一种优化技术。您不需要为客户提供与开发时相同的易于阅读的版本。你可以给他们一个剥离版本。为什么?带宽不是免费的。

    【讨论】:

    • 我从来没有见过关心换行的网络浏览器,更不用说行长了。去掉换行符是绝对安全的。
    • @duskwuff 我不确定。我记得由于浏览器兼容性问题,YUI 在拆分行上有一些代码。他们显然对浏览器的重视程度超过了一个字节。
    • 这是一个很好的观点 - 换行符在 JavaScript 中以及在 HTML 中的 <pre> 中确实有一些特殊含义。还是……
    【解决方案7】:

    许多“服务”(例如,一些 终端 窗口实现、GitHub 等)不会换行并且没有滚动条。
    因此,超过 72 或 80 个字符的任何内容都可以简单地被切断。

    此外,即使有滚动条,它也有助于提高可读性,如果代码可以适合(或大部分)单个屏幕宽度,则代码可以更容易阅读/消化/调试。

    因此,虽然代码会运行,但它可能并不总是能够完整显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2019-10-05
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      相关资源
      最近更新 更多