【问题标题】:Situations to use DIV over CLASS [duplicate]在 CLASS 上使用 DIV 的情况 [重复]
【发布时间】:2014-08-27 02:00:29
【问题描述】:

好的,所以我将其发布在此线程 (Difference between div id and div class) 中,但被指示将其作为一个单独的问题发布。我在上一个帖子中得到了答案,但想进一步澄清这个主题。

我对 css 还很陌生,所以关于 DIV 和 CLASS 的对话让我很感兴趣。我已经使用允许多个 ID 的 wordpress 建立了一个站点。我很感兴趣,如果这真的有什么问题吗?例如,此代码在容器内显示两列两行的四个框...

<div id="container">
    <div id="sub_container"
    </div>
    <div id="sub_container"
    </div>
    <div id="sub_container"
    </div>
    <div id="sub_container"
</div>

如果我有与 WP 主题不同的特定样式,那么显然它可以应用于 div 或类?

所以在上述情况下,我可能有

#sub_container {background: #ffffff; position: relative; float: left;}

所以我想知道这样可以吗?如果不是,将子容器作为类而不是 div 有什么好处?我得到了 'unique' 参数,但如果这很好用,为什么不使用它呢?

在我的代码中,我为某些标题和部分使用了类,在这些标题和部分中,我需要与内置格式不同的特定格式,但仅此而已..

..如果我想对 sub_container div 应用不同的样式,我想我会使用 class 吗?例如可能希望第二个使用红色字体,或者在另一页上使用不同大小的框等?

【问题讨论】:

  • 它确实 NOT 工作正常(非唯一 ID)。用 JavaScript 或表单编写一些代码,您很快就会看到! 类和 ID 以它们现在的预期方式完美地工作(并且在遥远的将来仍然会以这种方式工作)。 Embrace the standards(这是你未来同事的请求,对他们需要调试的代码大喊大叫)
  • 在您的示例标记中,您的开始 div 标记缺少右右箭头。
  • 嘿-谢谢费利佩,我会接受的! cmets 非常有用!将它们更改为类而不是 div 应该不会太难。..

标签: html css wordpress class


【解决方案1】:

ID 应该始终是唯一的,从 css 的角度来看,具有相同的 ID 可能“有效”,但两辆车没有相同的注册号,两个人没有相同的社会保险号。

ID = 身份。

如果您想将相同的样式应用于多个元素,请改用类

标记

<div id="container">
    <div class="sub_container">
    </div>
    <div class="sub_container">
    </div>
    <div class="sub_container">
    </div>
    <div class="sub_container">
</div>

css

.sub_container {background: #ffffff; position: relative; float: left;}

【讨论】:

  • id = unique identifier(但这也是一个很好的定义。我认为词源相同;))
  • 为了强调@FelipeAls 所说的,id 唯一性不是“应该”,而是必须:“此名称在文档中必须是唯一的。”
【解决方案2】:

其他开发人员会期望 ID 是唯一的。这意味着,如果您在应该使用可重用类时使用预期的唯一 id,那么在使用 3rd 方软件时,您有时会遇到意外行为。

例如,使用 jQuery,您会发现这种行为。

//jQuery selecting by id
$('#sub_container') //will find one of the elements with the sub_container id.

//jQuery selecting by class
$('.sub_container') //will find all elements with the sub_container class.

【讨论】:

  • 我要强调的是,有一类特殊的开发者:浏览器开发者!根据规范,他们也希望 id 是唯一的 :) +1
  • 谢谢 - 很高兴知道这一点!
【解决方案3】:

一个 id 在页面中应该是唯一的。这不仅仅是标准告诉我们的规则,而是在元素上设置标识符的全部要点。

当它是一个真正只在页面中出现一次的元素时,您应该使用 id。如果您有一个可以很好地使用 id 的页脚,因为您只有一个页脚。对于任何可以出现多次的元素,最好使用一个类。即使元素实际上只出现一次,这也适用,它只是符合属性的意图。

“我得到了 'unique' 参数,但如果它工作正常,为什么不使用它?”

这样做有两个问题:

  • 你不知道它在所有当前的浏览器中都能正常工作,更不用说未来的所有浏览器和浏览器版本了。

  • 当您超越 CSS 时,它不会正常工作。例如,如果您想使用 Javascript 访问元素,您会发现如果页面中有重复的 id 属性,则 id 几乎完全无用。

【讨论】:

  • 如果您按预期将其用作锚目标,它也不起作用,因此您可能会争辩说它在当前浏览器中不起作用。
  • 好一个@jme11 for/id 标签和表单输入也是codepen.io/anon/pen/Avsnf,这只是可见的部分。在服务器端获得他们的价值将是...... mmh 这很复杂©
  • 好的,很酷,到目前为止收到的所有答案都非常有建设性和帮助 - 而且它们绝对有意义。我真的只是想在我的脑海中澄清重要性和不重要。特别是阅读有关使用 3rd 方工具、javascript 和未来浏览器的意外情况非常有用。谢谢大家,加强这一点的重要性是很好的,尤其是当我自学 CSS 时...
猜你喜欢
相关资源
最近更新 更多
热门标签