Web标准的web UI(2)
作者:icebirds 来源:蓝色理想 发布时间:2008-01-02 12:34:00
Chapter 2 web标准真的是要完全不用表格?
好像是在2005年的时候,一篇叫做《把表格从你的网页中扔出去》(找不到文章的链接了,但确实有这篇文章)的在线文章,似乎给了人们一个错觉,要符合标准,那么表格在网页中就完全不能使用了。必须用div来代替。也许div+css这个概念就是这样被想当然的创造出来的(源自表格布局)。但事实上,web标准并不是完全不允许使用表格。而是要求摒弃使用表格来布局的做法。同时,也不再使用布局这个概念。而是提倡结构与表现分离。这时,就有一些人会产生一个疑惑,如果说xhtml代表结构,css用来控制表现,那么,布局该如何解决?相信现在接触web标准的朋友不会再有这个疑惑了吧?结构和表现结合起来就形成了布局。既然不能用表格来做布局了,那么表格还有什么用呢?似乎很多人忘了表格在html中的原始定义——展现结构化数据表格。举个例子,某学校班级的期中考试成绩表,这种数据,就是一个非常明显的表格。web标准中绝对没有要求你用div来模拟表格,那是非常蠢的做法。这几天在经典论坛上还看到有人产生这样的疑惑,表格形式的格式化数据,用表格比用div要方便的多,他们搞不懂为什么一定要用div来表现表格,现在我告诉你答案了,该用表格展现数据的时候就要用表格。
Chapter 3 为什么要用web标准?怎么样才算是符合web标准?
很多人会说例如兼容性好、代码易懂、代码量小、结构合理、甚至有人说使用标准可以实现比表格更丰富的样式等各种理由来支持web标准,而web标准也的确具有这些优点,然而,这些却并非web标准真正要做的。
并非把表格换成div就是符合web标准了。也并非使用xhtml和css就是符合web标准。甚至就算你的代码能够通过w3c的验证,也很难说它就完全符合web标准。事实上,web标准的最终目标不是为了让人容易看懂网页如果仅仅是为了让人容易看懂,那么表格布局已经足够了。它的最终目标是为了让计算机能够读懂网页。看下面几个例子:
表格布局的一段代码:
<table width="50%">
<tr>
<td width="30%"></td>
<td width="30%"><font size="3">web</font>标准的概念</td>
<td width="40%">如何实现<b>标准化制作</b></td>
</tr>
<tr>
<td colspan="3"><font color="red"><font size="3">web</font>标准在网页中的使用</font></td>
</table>
web标准(XHTML/CSS)实现的一段代码:
<h3><span>web</span>标准的概念</h3>
<h3>如何实现<em>标准化制作</em></h3>
<h3 class="important"><span>web</span>标准在网页中的使用</td>
web标准(XML)实现的另一段代码:
<articles>
<articletitle>web标准的概念</articletitle>
<articletitle em="4" emlegth="3">如何实现标准化制作</articletitle>
<articletitle level="important">web标准在网页中的使用</articletitle>
<articles>
看过以上几段代码后,我们先来分析一下。第一段是表格布局的代码,它把整块分成了两行,第一行用了三列,第一列是空的用于缩进,后面两列分别放了两篇文章的标题。其中的英文文字采用了不同于中文的字号。第二篇文章的标题上还有一部分是加粗强调的。第二行则是一篇文章的标题占用了整行,并且以红色显示文章标题。在页面展现出来之后,我们能够明白下面的信息:第一篇文章是普通文章,第二篇文章中有一个概念是很重要的。而第三篇文章则非常重要。然而,在代码中我们却很难看出这一点。因为没有人说过加粗就一定是强调。也没有人告诉我们红色就一定表示重要(如果是在暗红色背景下,它甚至表示不重要,光看代码是不知道页面展现出来是什么样子的,是否重要自然无从判断),在这段代码中甚至没有告诉我们,这几段文字是文章标题。
第二段代码就要清楚的多了,首先,h3标签告诉我们,它是一个标题。span标签完全没有含义,会被分析器忽略掉。而em标签则表示强调。程序很容易明白它究竟是什么。最后一行指定的的类important则可以告诉分析器,这篇文章十分重要。
最后,我们再看第三段中的XML代码,首先,articletitle已经明明白白的告诉我们,它是文章标题,多余的信息没有了。事实上多数情况下是否强调一段文字中某一个部分对于分析器来说并不重要。因此,加粗强调被放到了属性里面。最后一条,level属性非常明白告诉分析器,这个属性定义的是文章的级别。而它的属性important则告诉分析器,它的级别是重要。将来采用这种结构,我们的网络将会更加智能,而搜索引擎的搜索结果也将会更加准确。当然,好处远远不只是这些。
直到现在为止,第三段代码要想真正完美实现并且兼容,仍然只能停留在我们的梦想里。


猜你喜欢
- 首先介绍下比较简单但必不可少且实用的知识,可以当手册查询,适合像我一样的新手看。PHP常用库函数介绍一、PHP字符串操作常用函数1.确定字符
- 下面是例子分析表A记录如下: aID aNum
- 其实这个问题来源于笔者的横坐标太多了,然后生成的那个figure框框太小,导致坐标重叠,而输出的图片是需要批量保存的,总不能每次都拉长截图吧
- 前言在前面两篇文章中 初见 Go Mutex 、Go Mutex 源码详解,我们学习了 Go语言 中
- 1. 避免将多个类放在一个文件里面。 2. 一个文件应该只有一个命名空间,避免将多个
- 本文为大家分享了Ubuntu18.04安装mysql5.7.23的具体方法,供大家参考,具体内容如下参考文章:Ubuntu 18.04 安装
- 本文实例讲述了JavaScript设计模式之模板方法模式原理与用法。分享给大家供大家参考,具体如下:一、模板方法模式:一种只需使用继承就可以
- 先创建表,然后生成批量数据。在models文件里from django.db import models# Create your mode
- 经纬度坐标转换最常见办法就是调用第三方 API,例如百度、高德地图等服务平台,提供了相应的功能接口,它们的这类技术已经非常成熟啦,准确稳定,
- 昨天我只是将数据库附加到SQL2012,然后各个数据库都做了收缩事务日志的操作兼容级别这些都没有改再附加回SQL2005的时候就报错在SQL
- 目录执行原生 SQL 查询1、执行原生查询1.1 普通查询1.2 将查询字段映射为模型字段1.3 索引查询1.4 将参数传给 raw()2、
- 1、Git本地版本库结构如下图所示:工作区(Working Directory)添加、编辑、修改、删除文件等操作。暂存区(Stage)打算提
- 概要在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HT
- 如果查询结果很多,服务器解释你的ASP script将花费大量的时间,因为有许多的Response.Write语句要处理. 如果你将输出的全
- 本段源码可以学习的地方:1. 考虑到效率问题,可以通过上下文的机制,在属性被访问的时候临时构建;2. 可以重写一些魔术方法,比如 __new
- 昨天给公司服务器重做了一下系统,遇到Asp附件无法上传,之前服务器上使用好好的,怎么重做了就不正常了,于是一番google,baidu,下面
- Golang中的time.After的使用理解关于在goroutine中使用time.After的理解, 新手在学习过程中的“此时此刻”的理
- 一、概述相信大家在日常开发中,在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种
- 本文实例为大家分享了python实现学生信息管理系统的具体代码,含代码注释、增删改查、排序、统计显示学生信息,供大家参考,具体内容如下运行如
- 在任何编程语言中,检查字符串是否包含子字符串都是常见的任务。例如,假设您正在构建在线游戏。您可能需要检查用户名是否包含禁止使用的短语,以确保