这些DIV真的有必要吗?

时间:2009-07-30 17:01:19

标签: css html

我有时发现自己创造了一个div,除了拥有另一个元素之外别无其他目的。

例如,在创建菜单时,我会创建一个div并为其指定背景颜色,位置等。然后在其中创建一个无序列表。

我当然可以将我分配给DIV的所有属性分配给UL,而不是使用div。

关于什么是最佳做法及其原因的任何想法。

由于

泽纳

9 个答案:

答案 0 :(得分:4)

DIV可用于对语义相关元素进行分组。如果您只是包装一个也是块元素的单个元素,那么您只需将字节添加到文件中。

答案 1 :(得分:2)

不,他们不是。 div元素的目的是创建block level structure in the document。如果你失去他们就会失去他们。永远不要使用div来解决设计目的,css就是为了这个目的。使用html元素,如列表,数据定义或表格(过去过度使用并用作div现在用于css目的)。 HTML知识越多样化,你就越少使用div。

答案 2 :(得分:1)

我经常使用div来保持子填充/边距不会破坏父宽度。但是你需要小心这类东西 - 你最终可能会添加一些废话。

答案 3 :(得分:1)

真正的问题是我们正在以其创作者从未想象过的方式使用HTML。 “所有这些div”的需求是因为一些非常聪明的人已经找到了一些非常有创意的方法来采用一个非常古老的标准并用它做一些非常现代化的事情。

答案 4 :(得分:1)

最佳做法 应尽可能少地使用div元素。如果你有一个只有一个孩子的div元素,那么它很可能是无用的div。实际上只应在需要块元素时才使用div元素,并且手头没有语义预定义元素。这包括按照Renesis的建议对元素进行分组。

答案 5 :(得分:0)

Div没有更多语义丰富的标签,实际上是一种必要的恶魔。

他们的目的是将服务器作为通用容器。因此,我想你可以说他们做得很好。

答案 6 :(得分:0)

如果你可以在没有额外div的情况下做你想做的事情,那么就把它留下来。如果它是你的设计的一个重要部分,你不能用一些聪明的CSS修复,那么它仍然比使用表格好很多......

答案 7 :(得分:0)

我主要使用DIVS主要是出于以下两个主要原因之一:

  • 我需要它以某种方式提供一个新的物理层次的CSS(固定宽度元素内的子填充,图像周围的阴影或双边框等)。
  • 它逻辑地对它包含的元素进行分组(为了HTML和CSS中的未来可移植性和语义 - IE“div#menu .label”。这样我可以在几个地方使用“label”类,但是应用了特定的样式“menu”div中的标签。

例如,如果您要将所有属性传输到UL,但后来又决定要在菜单上方或下方但在同一位置使用标题或图像,则必须再次创建DIV以放置新元素在里面,并将一半的属性转移回它。

答案 8 :(得分:0)

在UL的情况下,是的,DIV是不必要的。它们都是块元素,所以你可以用DIV包裹在外面的任何东西都可以直接用于UL本身。

但是,由于某些IE浏览器的Box Model问题,有些人会告诉您添加这些DIV作为解决方法。当您组合填充和宽度时,IE6不同意其他浏览器关于元素的最终大小。因此,一种解决方法是在内部元素上放置填充但没有宽度,并且在外部元素上放宽但没有填充。