div上的旧学校表[关闭]

问题描述 投票:4回答:3

我是一名古老的网页设计师,仍倾向于选择桌面而不是div。我觉得更容易做公共网站,特别是我们现有的浏览器平台数量。

我可以完美地完成div,但在跨浏览器中工作时更容易找到表格

如果我在做专业网站,我会被视为做错了,不专业还是不赞成?它会被归类为非标准或老式吗?

html css html-table w3c
3个回答
5
投票

您正在使用语义表来实现类似网格的布局。这是错误的(并且不赞成)的原因主要是因为布局信息位于错误的位置。 Html应该用于语义(内容没有外观),样式应该在css中完成(看起来没有内容)。因此,只有当信息是表格时,才应使用表格标签。

然而,问题是一个很好的问题,因为非常好的替代方案仍然存在(参见下面即将推出的CSS布局引擎)。

How do you now if you should use a semantical table?

  1. 每行应表示与对等主题相关的其他行或主题具有相同性质的某个主题。
  2. 每行的每列应与主题的某个方面相关。
  3. 关于在单元格中放置一些信息的决定应该合理地基于1)和2)而不是美学。

The modern CSS alternative

W3C有几个即将推出的解决方案。最符合您需求的产品目前正在Chrome,Firefox和Internet Explorer(http://dev.w3.org/csswg/css3-grid-layout)中实施。这个CSS就是你要找的。今年冬天,它将在所有吸烟热门的新浏览器中提供。因此,在接下来的几年中,您应该使用较旧(且更繁琐)的CSS(见下文)。

另一个是CSS Flexbox(http://www.w3.org/TR/css3-flexbox)。

这些规格虽然适用于一般用途,但它是这种布局正确进行的方式。

The current CSS alternative to grid like layouts

今天我会使用CSS网格来避免使用表格。您可以使用此代码作为起点。

http://simplegrid.info

使用适用于所有浏览器的CSS,如上例所示,还有一些工作要做,但这适用于今天的所有浏览器。


1
投票

表格仅应用于显示表格数据期间。对它们的任何其他用途都是非语义的,错误的和老式的。唯一可以接受布局的地方是HTML电子邮件......

规则是使用最具语义元素的情况,这是Quentin所暗示的,所以绝对不要这样做:

<table class="header">

并尽量避免:

<div class="header">

选择(尽可能):

<header>

1
投票

我不推荐,但目前的HTML 5草案规范允许使用表格进行布局。

如何区分布局表与数据表

可能是布局表

  • 使用带有值表示的role属性
  • 使用具有不符合值0的border属性
  • 使用不符合的cellspacing和cellpadding属性值为0

可能是非布局表

  • 使用标题,thead或th元素
  • 使用header和scope属性
  • 使用border属性的值不是0
  • 使用CSS设置显式可见边框

不是一个好的指标

(历史上已经为布局表和非布局表赋予了此属性)

  • 使用summary属性

参考:http://dev.w3.org/html5/spec/the-table-element.html#the-table-element

关于做跨浏览器网站,即使你使用表格或div来布局网页也应该很容易到达。

但是,通过瞄准WCAG 2.0 AA级一致性,可以使它们可以访问。 The WCAG 2.0有一整套Techniques for HTML,可用作最佳HTML编码实践,并创建可访问的网站。

Quick reference to the guideline and techniques: How to Meet WCAG 2.0

:-)

© www.soinside.com 2019 - 2024. All rights reserved.