【问题标题】:Should HTML element classes have prefixes depending on their use?HTML 元素类是否应该根据其用途有前缀?
【发布时间】:2011-03-24 11:07:30
【问题描述】:

有人告诉我,标准做法是在 HTML 元素的类名称前加上“jq”或“js”,这样设计者就不会与开发者发生冲突。

我已经有一段时间了,我从未见过这样做过,我个人认为这会在设计和代码之间造成人为且无益的鸿沟。

问题是这是否确实是标准做法,此外,我想参考解释为什么这样做的文章(它解决了什么问题)。

【问题讨论】:

  • 公司对这些事情可能有非常奇怪的政策。我曾经在一家公司工作,出于同样的原因,该公司有使用 ID 设置页面样式的政策。对我来说似乎很不合理。
  • @Jakub - 听起来很荒谬! :-P

标签: javascript html css coding-style


【解决方案1】:

我是我所在组织的前端开发人员,因此负责 CSS。我为布局和 UI 创建所有必需的类,并定期整理未使用的样式和标记。

我们的开发人员从不需要为演示添加类,但他们偶尔会为 Javascript 添加类。在这些情况下,我要求他们在课程前加上js-

这只是帮助我识别不用于演示但仍然需要功能的类。我的其他类名都是对内容的描述。

在我们介绍这个之前,保持标记整洁(通过删除未使用的类)要困难得多,因为类可能看起来是多余的(在样式表中没有引用),但仍然被使用。

我没有遇到任何文档说这是一个坏主意。它对我们有用,所以只是个人喜好问题。

【讨论】:

    【解决方案2】:

    这对我来说听起来像是一个老式的约定,尤其是在 html/javscript/css 的上下文中。

    类只能用于布局原因。如果无论如何都有由设计者定义的类,那么它们可以并且应该被开发人员使用。纯程序控件的值应使用自定义属性 (http://www.javascriptkit.com/dhtmltutors/customattributes.shtml) 定义。这种做法与经过深思熟虑的详细命名约定一起可以避免出现问题。

    听起来像使用这种前缀实践的类必须经常两次分配给元素。还有一个理由要问这样的做法如何成为一种好的甚至是标准的做法。


    编辑: 前缀在插件中可能很有用,例如javascript 库当然是为了避免类冲突!

    【讨论】:

    【解决方案3】:

    这不是一般的标准做法,但它可能是特定组织内的标准做法。

    使用前缀来指定标识符的用法称为匈牙利表示法。它主要用于指定脚本语言中的数据类型,没有严格的类型,但最初的目的只是指定对标识符的使用至关重要的任何方面。

    使用这样的前缀有助于确保用于设计的类不会与用于程序控制的类发生冲突。然而,这并不取决于谁在创建类,而是如何使用类。如果开发人员创建了一个脚本,该脚本将类添加到元素以更改其外观,则该类用于设计,因此不应将其作为程序控制类名称的前缀。用于程序控制的类名仅用于此目的,并且没有应用任何视觉样式。

    与大多数编程实践一样,选择一个标准并坚持下去比选择绝对最佳的标准更为重要。

    【讨论】:

      【解决方案4】:

      它不仅不是标准做法(可能在您的组织中除外),而且W3C advises against it。类名应该用来进一步描述语义HTML标签的内容,而不是作为设计开发的参考点。

      我希望结构良好的 HTML 页面对于类似的内容类型具有一致的类,这将非常适合 JavaScript 使用。

      一个不能正确编写 HTML 的设计师,记住 HTML 标记应该描述内容而不是样式,不应该编写 HTML IMO。

      【讨论】:

      • 我认为 W3C 文章纯粹是从表示的角度讨论类名,而类现在通常用作 jQuery 挂钩,没有视觉用途。我没有读过那篇文章,并认为 W3C 建议不要为非展示类添加前缀。
      • @John Catterfeld:我不同意。毕竟这篇文章的标题是“使用具有语义的类”。还有 FTA:“...用该类的某个 HTML 元素所具有的角色命名您的类 [...]”。
      【解决方案5】:

      我当然没有听说过这是一种“标准”做法。阅读指南和文章,我从未在课程前看到过前缀。

      但是,如果您打算在 jQuery 中使用该类,则为类名添加前缀可能会很方便。它会更容易识别,也可以让其他人知道它被某个函数使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-17
        • 2019-03-11
        • 2023-03-21
        • 2015-10-05
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多