Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html <;部门>;元素而不是<;表>;?_Html_Css_Layout_Css Tables - Fatal编程技术网

Html <;部门>;元素而不是<;表>;?

Html <;部门>;元素而不是<;表>;?,html,css,layout,css-tables,Html,Css,Layout,Css Tables,副本: 最近有很多人谈论使用div而不是table标签来让页面更易于浏览。为什么div更好?下面是一个例子。因为表格传达了一种语义含义,即您当前显示的表格数据与h1一样,意味着您有一个标题。因此,如果使用表格式化输出,则会误导对代码语义的解释 例如,对于使用屏幕阅读器的人来说,这可能会导致可访问性问题。大多数人都会继续讨论表应该如何仅用于数据,当您将其用于布局时,它会带来性能问题。而且,它应该更灵活,因为您可以使流向左、向右和流到其他任何地方 然而,我认为这不值得努力。尤其是当你有一列

副本:



最近有很多人谈论使用div而不是table标签来让页面更易于浏览。为什么div更好?

下面是一个例子。

因为表格传达了一种语义含义,即您当前显示的表格数据与h1一样,意味着您有一个标题。因此,如果使用表格式化输出,则会误导对代码语义的解释


例如,对于使用屏幕阅读器的人来说,这可能会导致可访问性问题。

大多数人都会继续讨论表应该如何仅用于数据,当您将其用于布局时,它会带来性能问题。而且,它应该更灵活,因为您可以使流向左、向右和流到其他任何地方

然而,我认为这不值得努力。尤其是当你有一列控件应该与它们相应的标签正确对齐时,要让它们正确对齐就需要太长的时间

有几个原因:

1) 在大多数情况下,div在语义上更为正确。在表结构中编写站点代码的人并没有使用表来实现他们的目的,即表格数据。div表示一个“分区”或页面的一部分,因此将项目放入div中更为正确

2) div更灵活,更易于设计和维护。你不必每次想说什么就在这里写
文本
,而只需在这里写
文本
。您可以将css挂钩(即类或元素)添加到表和div中,但使用div则更加灵活


3) 表结构的站点非常难看:)

这里的关键是使用它们进行布局。请注意,表格数据并没有什么问题。这就是他们的目的

但是,当你使用表格进行布局时,你会创建一个非常僵硬的页面结构,这通常无法与不同的屏幕大小、用户代理(想想移动浏览器或盲人屏幕阅读器。特别是在后一种情况下,你破坏了任何应该向用户读取内容的顺序)。不幸的是,表格仍然是布局页面的最强大的机制之一,因为几乎没有不同的实现,而且它们工作了十多年。在这里,CSS是一个完全不同的问题

但基本上可以归结为:

桌子
  • 违反内容和表达的区别
  • 从长远来看,它们是笨拙且无法维护的,特别是当试图以类似的方式更改多个页面的布局时
  • 没有很强的语义意义,这对于可能只依赖朗读文本的受损人群很重要。这里逐行逐列地读取表格,这在基于表格的布局中几乎总是没有多大帮助
CSS布局
  • 更难做到正确(至少在演讲中)
  • 允许(有时)清晰地分离内容和演示文稿。请注意,由于CSS有一些限制,因此有时您必须在HTML中使用多个容器元素,以允许某些布局和样式正常工作
  • 如果您不盲目使用
    ,则允许基础标记具有更好的语义。有许多标签都有其含义,因此应该使用。例如,当您可以使用
    时,不要使用

使用div比使用table好,因为在设计中易于控制,它可以是控件的容器,而不是table,并且table主要用于以相似的结构对数据进行分组,因此它的设计是为了完成此任务,但div被认为是容器,而不是table。
我发现在收集许多控件时,我可以控制容器,但在表中,我感到困惑,因为我必须插入内部并将其循环插入彼此内部。

使用表进行布局对于网页设计来说是革命性的,但那是15年前的事了,没有其他选择。正是由于这段历史,今天甚至考虑在布局中使用表格


基于CSS的布局比基于表的布局灵活得多。还有一些事情用表格更容易完成,但另一方面,有很多事情用CSS很容易完成,但用表格很复杂或不可能完成。

我使用CSS和表格,有时使用div,但表格太全面了! 在Dreamweaver,Frontpage上它们看起来很漂亮。。。
很难放弃表格,但看起来我会的,因为有必要让我的页面加载得更快

我告诉你我个人使用div的主要原因:

  • 表只有一个静态网格,而div是动态的: 表的第一行定义所有列(如MS Excel中的列)。在下一行中,您可以合并这些列,但不能更改在第一行中定义的基本布局。 div是动态的:您可以创建一个补丁,让div重叠或在它们之间留出一些空间。你要什么都行。你不会被迫按行思考。你自由了。更大的灵活性

  • 表会导致呈现和跨浏览器不兼容问题: 桌子看起来并不总是一样的。每个浏览器都为您提供了自己对表格及其内容的解释。因此,有很多令人不安的惊喜。一个浏览器以粗体字体显示常规文本。另一个浏览器为您的表提供了或多或少的其他html元素的空白,因此,表的位置不好。用复杂的解决方法解决这些问题需要数小时的工作。div在所有浏览器中看起来都一样。如果您使用div,即使是IE(众所周知的网络程序员的麻烦制造者)也会带来更少的问题

  • div渲染速度更快: div的加载速度比表快。更快