| 注册 | 忘记密码
奇技淫巧 - 阅读主题
<<  <  1  >  >>

学习Web标准有感

好(1) 差(0) 阅读(10752) 评论(1)
Wen 给 Wen 发消息 给 Wen 发email
作者头像
等级:◆◆◆◆◇◇◇

经过2个月的Web标准(Web Standards)学习后,按标准重构了自己的聆听小区。其实准确来说还没有完全按标准,主要是语义化方面还符合得不好。

刚重构完聆听小区时,经常到蓝点的论坛上看看关于Web标准的帖子,然后也有些自己的感想,零零散散地作了些回复。现在把这些感想集中起来收于本文,权当对前一段时间Web标准学习的总结。本文可能谈Web标准的缺点会比较多,因为其优点现在铺天盖地,不需要我多说。无法接受Web标准的缺点的读者不建议阅读本文。

  1. Web标准的效率:熟悉了Web标准以后,单人效率确实很高,但如果团队开发,要求每个人都熟悉标准不是一件容易的事,需要一定的时间。
  2. Web标准的兼容性:目前浏览器极不统一,同一代码在不同浏览器中一致(不包括文本界面下的浏览器等特殊浏览器)应该是建立标准的目的之一,但目前这实现不了,于是为了兼顾标准又兼容各种浏览器,弄出了各种小技巧,结果是使本来简洁下来的代码又变复杂了。有人甚至声称,用Web标准就是为了相同的代码在不同浏览器中有同一效果。事实上以目前的浏览器形势,table布局得到的同一性比div+css大得多。至于以后浏览器对Web标准兼容性可能会普遍改善是后话。
  3. 有人问:“标准应该是提倡表现和语义分离,如果我用table排版,然后所有的table属性或表现均用css,这算不算符合标准?”

    我的解答是:这样做表现和语义是分离了,但是语义用得不对,所以还不算合标准。html标签除了span和div可称为无特定语义外,其它标签都有特定语义,像table就表示表格。标准除了提倡表现和语义分离,还提倡正确使用语义标签,就是该是文档最高级标题,就用h1,该是文章段落就用p,该是表格就用table,只有在无法用已有特定语义标签表示语义的情况下才用div/span。尽管table+css可以实现布局,尽管div+css可以实现p,尽管span+css可以实现strong,但这些都不符合标准。

  4. 从上面这一点可看出,很多Web标准教程都误导了初学者,我也曾经被误导过。

    初学时不懂什么是Web标准,有的说简而言之就是XHTML+CSS标准,又有的说简而言之就是用div+css布局替代传统的table布局。于是我以为在XHTML中取消了table标签,但查XHTML的官方规范,查了半天没有发现不能用table的地方。不久又看到一篇文章叫《使用DIV之后,什么时候使用TABLE》,说是table标签仍要用来展示表格式数据,这就使我更加困惑了。

    事实上,把Web标准简称为XHTML+CSS标准或div+css布局标准都是严重的错误。Web标准由很多标准组成,所以其英文Web Standards是复数的。Web标准的成员主要有:XHTML、CSS、DOMWCAG。其中代表WAI的WCAG,尤其其中的语义化要求(即要求正确使用语义标签),是Web标准的精华所在,但却又经常被人们忽视。div+css的布局,正是WCAG的要求。table+css布局不违背XHTML,也不违背CSS,但却违背WCAI。table作为表格的语义,只应该用在展示表格式数据的场合而不应该用来布局,这就是WCAI的语义化要求。由于在Web标准的理解上出现了偏差,忽视了WCAG,于是就导致了下一点问题。

  5. 经常看到有人强调Web标准与美观不冲突,然后列举若干漂亮的网站。其实不强调我倒没有留意这个问题,大家都强调,反而引起我探究了一下Web标准与美观究竟是否冲突。

    我认为,Web标准与美观确实是有冲突的。其冲突不体现在XHTML上(XHTML只是对HTML的代码形式加入了要求,使得形式上符合XML规范,以前HTML可以用的东西,基本上XHTML也可以用),更不体现在CSS上(CSS的美化功能令人叹为观止,自然不会跟美观过不去),而是体现在语义化上。当完全从语义化出发写好一个XHTML之后,再考虑布局、美化,选择的余地就不大了,除非你加些冗余的div标签来增大css美化的选择,但这样又不符合语义化要求了。

    21andy在蓝点论坛上提出了学习Web标准要先学好语义化,其中举了如下一个例子:

    标准的内容代码为:
    <h1>I love SEX</h1>
    <p>I very very very love SEX, and go to bed with beautiful Girl</p>

    当为了使这段内容适应设计的表现,如为圆角的区域,可以在设计的时候改成这样
    <div>
    <h1>I love SEX</h1>
    <p>I very very very love SEX, and go to bed with beautiful Girl</p>
    </div>
    以让CSS有设计的余地,而不是在制作内容页的时候,就把这个DIV写上.

    于是我就对这个例子提问到:后来又人为地加个div是否说明表现与内容始终不能彻底分离,语义化离现实的网页设计还有差距呢?

    21andy承认了这的确是Web标准还不尽人意的地方。

    我建议大家再认真研究一下那些被用来证明Web标准与美观不冲突的漂亮网站,它们很可能能通过XHTML验证和CSS验证,但有多少个能符合WCAG?有多少个是真正语义化地使用HTML标签?

    如果语义化要做得很好,恐怕就只能像W3C上的各种文档那样纯粹白纸黑字了。

  6. 旧有的HTML和现在的标准,前者更像艺术创作而后者更像书写正规文件

    艺术创作,当然可以形式多样,充分发挥艺术家的想象力,想怎么样就怎么样,管它龙飞凤舞,管它水彩水粉油画,只要最后出来的效果能令观众拍手叫好,这就是好作品,即使水彩水粉混用一气。

    正规文件,当然要强调其正规性、规范性,例如国家法律,有条有理,有章有法,又例如W3C那些易用性(WAI)达到两个A三个A的网页,都是白纸黑字,规规矩矩。

    艺术创作总是会牺牲一些欣赏者的,聋人听不到音乐,盲人看不到美术作品,文盲的人读不懂诗歌散文。自然,旧有的HTML也要牺牲通过PDA、手机、阅读机“看”网页的欣赏者。

    正规文件总是要努力到达它应该到达的每一位读者、观众、听众。不管是盲人、聋人还是文盲,都要接受学习国家各种法律法规,不管是通过读、听、摸或者其他形式。

    Web标准不是万灵药,至少现在还不是。一个简单的例子:Web标准的易用性总是强调照顾盲人使用阅读机;那么现在要做一个毕加索抽象画的在线展览,每一幅画作为网页内容当使用img标签,试问其alt和longdesc属性怎样写才能使盲人无损接受抽象画的信息呢?

  7. HTML与XML虽然都以ML结尾,虽然都是用尖括号“<”和“>”来表示标签,但这两个东西骨子里有很大差别。XML只有内容,而HTML一直以来是用来展示网页的,当然以表现为主,内容次之。现在Web标准硬要把HTML往XML上靠,把表现全部甩给CSS,不是说不可以,但是恐怕不是短时间内能够实现的。

    Photoshop也有文字工具,为什么我们不用Photoshop写文档?Word也能处理图像,为什么我们不用Word做平面设计?

综上所述,在Web标准的现阶段,我的建议是:

  1. 遵循XHTML规范和CSS规范;
  2. 至于语义化,在语义明确的地方选择准确的语义标签;网页设计中难免有些元素语义含糊不好选择准确的语义标签,此时不应拘泥,大概用一个,或者就用div或span;
  3. 设计网页时不建议写纯语义化的XHTML后再布局美化,这样极度限制思维;建议从布局入手写XHTML,然后用CSS美化;不要被标准限制了思维。
Share/Save/Bookmark
最后修改:Wen 于 2005-08-21 21:10:58

发表于 2005-08-12 16:27:31

评论:Re: 学习Web标准有感

好(0) 差(0) #1
old9 给 old9 发消息 给 old9 发email
作者头像
等级:△

好文章,十分赞同你的观点。xhtml现阶段还是一个过渡,虽然语义和表现分离是很理想的状态,但目前还是很难达到这个层次,除去浏览器兼容性问题不说,就是xhtml或者css本身都有太多不完善的地方,正如你所说,用xhtml和css“更像书写正规文件”,而网页设计五花八门,web上可以有多种多样的表现形式,xhtml那些有限的标签驾驭起来实在是有些捉襟见肘了。
文中5、6、7点提到的关于美观和艺术方便的观点还有最后提出的三点建议也是十分受用。


发表于 2006-04-02 19:41:54
奇技淫巧 - 阅读主题
<<  <  1  >  >>

Valid XHTML 1.0 | Valid CSS2 | WAI-A WCAG 1.0

Copyright 2005-2018 WEN'S Horizon [33/0.106]