【问题标题】:Why to use "class=" when I can use my own tag?当我可以使用自己的标签时,为什么要使用“class=”?
【发布时间】:2014-01-16 20:35:40
【问题描述】:

我只是想知道为什么我应该使用“class=”标识符而不是我自己的“tag”()?

Class example

 <span class="red"> Hello there! (using class)</span>
 .red {color: red;}

Tag example

<div id="reddiv">
<red>Hello, there (using own tag)</red>    
</div>
#reddiv red {color: red;}

使用我自己的标签更容易,因为它写起来更快。 您能否告诉我以第一种/第二种方式进行操作是否有任何负面/正面?

【问题讨论】:

  • 我对 html 之类的东西几乎一无所知,但我猜想支持旧的/更简单的浏览器。
  • 因为这在旧版浏览器上不起作用并且不是有效的 html
  • 感谢 asnwer,如果这是唯一的问题,那我很好。
  • @loqan,我能问为什么吗?需要传输的数据更多,可重用性更低。
  • 另一个需要关注的方面是语义。标签不应该具有视觉意义,而是具有语义意义,它们应该说明内容的性质。这就是为什么像 (粗体,视觉表示)这样的标签被替换为 (意味着强调)以及为什么像

标签: html class tags


【解决方案1】:

虽然这可能适用于大多数浏览器,但您的 HTML 会丢失上下文。当诸如搜索引擎(或屏幕阅读器或其他任何查看源代码的应用程序)之类的应用程序解析您的文档时,命名为“红色”或“紫色”或“工作”的标签是什么?它没有上下文,所以你会输。 HTML 使用一组预定义的有意义的标签,您可以冒险摆脱它,但您将失去每个人都能立即理解(全部或部分)您的文档的优势。

如果此文档是数据传输框架的一部分,而不是在公共网络上,您应该查看 XML。

【讨论】:

    【解决方案2】:

    使用类有很多好处。

    1. 首先,对于类,我们使用 css 样式,它提供了比简单的 HTML 标记更多的配置选项。
    2. 我们一次性提供所有样式和格式,然后在任何我们想应用它们的地方调用该类,这在 ERP 等大型项目中对代码大小有很大影响。
    3. css 样式与最新版本的浏览器更兼容,许多旧的 HTML 格式和样式标签在最新版本的 HTML 中已弃用。
    4. HTML 标签在不同的浏览器和不同的文档模式下表现不同。 css 在哪里都会给出相同的结果。
    5. 只需在页面顶部的某处定义 css 类,即可一次将其应用于页面上的所有相关标签。

    【讨论】:

      【解决方案3】:

      您也不应该忘记预定义的标签有很多默认属性,而您的自定义标签没有。因此,您需要为除跨度之外的所有元素重新定义所有内容。 此外,您可以在一个元素上拥有多个类,因此 &lt;span class="red bold"&gt;Red&lt;/span&gt; 是可能的。

      【讨论】:

      • 它从 BODY 获得属性。所以我只使用这些标签来进行简单的编辑,比如左右边距、字体粗细等等。
      • 正如您在我的示例中清楚地看到的那样。正文有颜色和大小,因为我希望页面上的所有文本都采用这种格式,但只有一小段需要离开 200 像素,所以我使用自己的 html 标记来标记文本的那部分并使用 css 来标记它。这个例子显示得更好jsfiddle.net/ukg9K/3
      【解决方案4】:

      您可以在类之间删除、更改和交换以动态更改元素样式或行为,这是标签无法做到的。 标签是需要类来设置其行为和样式的元素。

      【讨论】:

        【解决方案5】:

        使用 document.registerElement() 创建自定义元素:

        var reds = document.registerElement('red');
        document.body.appendChild(new reds());
        

        【讨论】:

        • 问题不是以任何方式询问 javascript。
        • 您要对网站上的每个标签都这样做吗?这在 ie8 中会做什么?
        • 这不能回答所提出的问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-04
        • 1970-01-01
        • 2011-11-11
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多