我是一名老派网页设计师,仍倾向于选择桌面而不是div。我觉得更容易做公共网站,特别是我们现有的浏览器平台数量。
我可以很好地完成div,但在跨浏览器中工作时更容易找到表格
如果我在做专业网站,我会被视为做错了,不专业或不赞成?它会被归类为非标准或老式吗?
答案 0 :(得分:5)
您正在使用语义表来实现类似网格的布局。这是错误的(并且不赞成)的原因主要是因为布局信息位于错误的位置。 Html应该用于语义(内容没有外观),样式应该在css中完成(看起来没有内容)。因此,只有当信息是表格时,才应使用表格标签。
然而,问题是一个很好的问题,因为非常好的替代方案仍然存在(参见下面即将推出的CSS布局引擎)。
W3C有几个即将推出的解决方案。目前正在Chrome,Firefox和Internet Explorer(http://dev.w3.org/csswg/css3-grid-layout)中实施最符合您需求的产品。这个CSS就是你要找的。今年冬天,它将在所有吸烟热门的新浏览器中提供。因此,在接下来的几年中,您应该使用较旧(且更麻烦)的CSS(见下文)。
另一个是CSS Flexbox(http://www.w3.org/TR/css3-flexbox)。
这些规格虽然适用于一般用途,但正是这种布局才能正确进行。
我今天会使用CSS网格来避免使用表格。您可以使用此代码作为起点。
使用适用于所有浏览器的CSS,如上例所示,还有一些工作要做,但这适用于所有浏览器。
答案 1 :(得分:1)
表只应用于显示表格数据期间。对它们的任何其他用途都是非语义的,错误的和老式的。布局可以接受的唯一地方是HTML电子邮件......
规则是使用最具语义元素的情况,这是Quentin所暗示的,所以绝对不要这样做:
<table class="header">
尽量避免:
<div class="header">
改为选择(如果可能):
<header>
答案 2 :(得分:1)
我不推荐,但是当前的HTML 5草案规范允许使用表格进行布局。
如何区分布局表与数据表
可能是布局表
- 使用带有值表示的role属性
- 使用不符合值0
的border属性- 使用不合格的cellspacing和cellpadding属性,值为0
可能是非布局表
- 使用标题,thead或th元素
- 标题和范围属性的使用
- 使用border属性不是0
的border属性- 使用CSS
设置显式可见边框不是一个好的指标
(历史上已经为布局和非布局表赋予了此属性)
- 使用摘要属性
参考: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
: - )