• Jpg文件的Mimetype为Image/Jpeg

    by{ guangboo }, published {2010-03-25}, Tag { HTML / .net / }

    由于项目的原因,开发了几套系统,部署在不同的服务器上,但数据库可以统一的访问,但附件就不太那么容易处理了,如文章里面的图片一般都是存储在磁盘上的,并且都是相对路径,而其他系统访问此文章的时候,图片就获取不到了。

    这里的解决方案是使用DFS,分布式文件服务系统,将文件共享,或可以利用DFS复制,同步这些图片。因为DFS复制需要使用域和AD的方式来创建文件根目录,我使用的是独立根目录创建的,因此访问图片还是要共享的服务器上读取。

    图片的读取时没有问题的,但在IE 6下,文章中显示图片没有问题,但使用IE 6直接访问图片就不行了,在IE 8下面文章中显示图片和直接访问图片都不能显示。后来发现,bmp格式的图片都能访问,无论在IE 6还是IE 8,还是在文章中显示,还是直接访问图片都正常。偏偏是jpg格式的文件出现上述情况。

    原来我去图片的MimeType的时候出的问题,因为,bmp,gif等的MimeType为image/bmp,image/gif,而jpg的MimeType是image/jpeg,因此简单的使用"image/" + extesion,是可靠的。

  • 禁用浏览器Autocomplete功能

    by{ guangboo }, published {2009-11-11}, Tag { HTML / }

    有时候我们并不希望别人看到我在电脑上曾经搜索过什么,然而浏览器总是能记住我搜索的关键字,每当我用鼠标在输入框中点一下,浏览器就会“好心”的帮我把以前搜索过的关键词都拉出来。很多时候,这是非常有帮助的,但是有时候我就不希望它偷偷记下我搜索了什么电影或照片,那么我可以:

    1. 当浏览器“好心”列出我的输入记录时,采用方向键,选择我不希望被浏览器记住的词,然后按“Delete”;同样的浏览器地址栏的记录我也可以使用这种方法将浏览器的部分记忆抹去;

    2. 在浏览(IE8)"Tools"->“Internet Options”->"Content"->"AutoComplete",点击“Settings”,在“AutoComplete Settings”对话框中,点击“Delete Auto Complete history...”按钮,抹去浏览器的所有记忆,你也可以在“Use AutoComplete for”中勾选你希望浏览器保存的项。

    这些都是在客户端的操作或浏览器的设置,有时候,比如证券公司的电脑,采用这样的设置就太费劲了,而且大部分浏览器默认都是要“偷看”我们的操作的,证券公司就是不希望用户在还没有输入自己的资金账户时,就出现了别人的账户。解决方法:

    对整个表单禁用autocomplete功能:<form name="form1" autocomplete="off"></form>

    或对某个输入框禁用autocomplete功能:<input type="text" name="username" autocomplete="off"/>

  • 浏览器为什么限制Iframe跨域访问

    by{ guangboo }, published {2009-09-03}, Tag { HTML / 安全 / Web安全 / }

    在dhtml中,不同的窗口和框架iframe可以通过DOM模型相互进行访问,然而我们可以在页面中的iframe中嵌入任意站点,如果没有跨iframe访问的限制的话,那么我们都可以通过DOM模型来访问iframe引用站点的内容了,因此制定一定的访问限制是必要的。

    大部分情况是只有属于同一个域的站点才被运行相互访问,例如:http://www.klipdas.com 是不能访问http://www.guangboo.org站点的,并且http://www.klipdas.com也不能访问http://cms.klipdas.com站点;根据规则,同一站点的两个页面才可以跨iframe相互访问,满足同一个域的条件是:

    1. 协议相同,必须都是http,或者都是https

    2. 端口号相同,http://www.klipdas.com(默认80端口)与http://www.klipdas.com:8080是不同的

    3. 域名主机相同,http://www.klipdas.com(主机是klipdas.com)和http://cms.klipdas.com(cms.klipdas.com)是不同的

    但是很多时候,我们的站点都被设计成使用二级域名来区别不同的应用,但是很多时候多个应用之间也要相互访问。http://account.klipdas.com与http://www.klipdas.com需要相互访问,如在www.klipdas.com/首页面添加一个iframe,iframe.src = http://account.klipdas.com/login/登陆页面,我要在www.klipdas.com的页面中访问iframe里的页面,来判断是否登陆成功。如果按照浏览器的限制的话,这样是被限制的,会报“拒绝访问”的错误。好在处于这样的需要下,是有解决方法的:

    通过在www.klipdas.com的document.domain与http://aacount.klipdas.com/login/的document.domain都设为klipdas.com的话,就运行访问了。

    必须要在两个页面都要设置document.domain,因为只有这样iframe里面的页面才能对www.klipdas.com页面信任,这并不违反安全性、隐私性原则。

    从安全的角度理解跨域脚本操作的限制是非常重要的,因为否则的话,一个恶意站点的页面可以通过嵌入iframe加载别的网站的内容从而通过脚本和DHTML模型进行攻击。

  • Html5正在改变Web

    by{ guangboo }, published {2009-08-05}, Tag { HTML / HTML 5 / }

    HTML5 是近十年来 Web 标准最巨大的飞跃。和以前的版本不同,HTML 5 并非仅仅用来表示 Web 内容,它的使命是将 Web 带入一个成熟的应用平台,在这个平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化。尽管 HTML 5 的实现还有很长的路要走,但HTML 5 正在改变 Web。

      HTML 最近的一次升级是1999年12月发布的 HTML 4.01。自那以后,发生了很多事。最初的浏览器战争已经结束,Netscape 灰飞烟灭,IE5 作为赢家后来又发展到 IE6, IE7。Mozilla Firefox 从 Netscape 的死灰中诞生,并跃居第二位。苹果和 Google 各自推出自己的浏览器,而小家碧玉的 Opera 仍然嘤嘤嗡嗡地活着,并以推动 Web 标准为己命。我们甚至在手机和游戏机上有了真正的 Web 体验,感谢 Opera,iPhone 以及 Google 即将推出的 Android。

      然而这一切,仅仅让 Web 标准运动变得更加混乱,HTML 5 和其它标准被束之高阁,结果,HTML 5 一直以来都是以草案的面目示人。

      于是,一些公司联合起来,成立了一个叫做 Web Hypertext Application Technology Working Group (Web 超文本应用技术工作组 - WHATWG) 的组织,他们将重新拣起 HTML 5。这个组织独立于 W3C,成员来自 Mozilla, KHTML/Webkit 项目组,Google,Apple,Opera 以及微软。尽管 HTML 5 草案不会在短期内获得认可,但 HTML 5 总算得以延续。

      HTML 5 将带来什么?以下是 HTML 5 草案中最激动人心的部分:

      全新的,更合理的 Tag,多媒体对象将不再全部绑定在 object 或 embed Tag 中,而是视频有视频的 Tag,音频有音频的 Tag。

      本地数据库。这个功能将内嵌一个本地的 SQL 数据库,以加速交互式搜索,缓存以及索引功能。同时,那些离线 Web 程序也将因此获益匪浅。

      不需要插件的富动画。Canvas 对象将给浏览器带来直接在上面绘制矢量图的能力,这意味着我们可以脱离 Flash 和 Silverlight,直接在浏览器中显示图形或动画。一些最新的浏览器,除了 IE,已经开始支持 Canvas。

      浏览器中的真正程序。将提供 API 实现浏览器内的编辑,拖放,以及各种图形用户界面的能力。

      内容修饰 Tag 将被剔除,而使用 CSS。

      理论上讲,HTML 5 是培育新 Web 标准的土壤,让各种设想在他的组织者之间分享,但 HTML 5 目前仍处于试验阶段。

      Mozilla 的技术副总裁 Mike Shaver 说,HTML 5 是一个被寄予厚望的概念,它既是 WHATWG 组织的实验田,又是 W3C 的标准之路。

      Shaver 认为,Mozilla 的兴趣和 WHATWG 实验相吻合,Mozilla 在 HTML 5 工作组中非常活跃,我们对一些早期的细则进行实验并将成熟的结果提交 W3C。

      在过去的几年,Mozilla 随着各种出现的新标准,推出多个富有前瞻性的项目,包括 Prism,一个用于离线运行 Web 程序的系统,以及 Weave,一个数据存储框架。

      Shaver 说,HTML 5 运动肇始于对 W3C 的不耐烦,Web 标准中的很多进展都因 W3C 将重点从 HTML 转移到 XML 而停滞不前。

      很多基于 XML 架构的新技术被设计出来替代 HTML,Shaver 说,这不是一条正确的道路,人们不应象黑瞎子掰玉米把样一边掰一边丢。

      HTML 5 的新实验在 Firefox 以及 基于 Webkit 的 Safari 和 Chrome 浏览器中逐渐得到强化,但仍有不少问题。

      Chrome 的开发者 Darin Fisher 说,Chrome 仍在襁褓中时,就不得不面临几个问题,尽管使用的是最新的 Webkit,HTML 5 的本地数据库功能在 Chrome 的初期版本中并没有实现。因为 Chrome 的沙箱机制和 Webkit 的数据库功能有冲突。

      而由于 Chrome 属于秘密开发,Chrome 的开发人员也不便参与 Webkit 的开发。

      我们要想保守 Chrome 的秘密,就无法参与 Webkit 社区。Fisher 说,我们很希望可以在某些方面给 Webkit 以帮助,我们拥有众多经验丰富的开发者,我们很想知道人们目前遇到的挑战并乐意提供帮助。

      随着 Chrome 的发布,Fisher 说他的团队成员有时会和 Webkit 的人一起吃饭,有些人私下里还成了好朋友。Fisher 称,他们迫切地想同其他 Webkit 开发组一起工作解决离线数据库的问题。

      Chrome 里面还包含Google 的开源 Gears 技术,用来实现与 HTML 5 类似的离线功能。

      Gears 可以看作已有 API 的替代品,Fisher 说,HTML 5 对新浏览器来说是非常好的东西,但绝大多数用户还使用旧浏览器。Gears 可以让那些旧浏览器也获得这样的 API,我们正在为 HTML 5 版 API 提供兼容。

      Gears 兼容性非常好,它正成为将 HTML 5 带向人们桌面的另外一条途径。

      目前,绝大多数工作由 Apple,Mozilla, Opera, Google 以及 Trolltech 展开。微软在干什么?IE 因其对 Web 标准的迟钝而闻名,更不要说 HTML 5。但 IE8 可能会做出改变。

      微软 IE 平台与 WHAT 工作组主席 Chris Wilson 在邮件中称,我们希望我们现在开始的工作可以在 HTML 工作组创建一套测试系统。Wilson 说,IE 开发组仍然对 HTML 5 的一些提议感到担忧。我觉得工作组的所有成员都会承认我们还有很多事要做。

      目前处于 Beta 版的 IE8,已经包含 HTML 5 的诸多新功能。它拥有一个跨文档消息系统,本地存储,以及一些离线事件来检测网络的中断。但还有些功能还未提上议程,如 Canvas。

      HTML 5 非常庞大,仍处在开发阶段,我认为浏览器厂商应当尽快达成一致,而每个浏览器的具体实现时间可以自己选择。Web 开发者和浏览器厂商会同意 Wilson 的下面这句话,这确切无疑是一个激动人心的时刻,我们希望看到 Web 成为新的应用平台。

     

  • 【翻译】Html 5 一览 By Lachlan Hunt

    by{ guangboo }, published {2009-07-29}, Tag { HTML / HTML 5 / }

    原文地址:http://www.alistapart.com/articles/previewofhtml5

    摘要
        随着web技术的发展,富有创意的网站不断涌现,从而也推动了HTML 4在各领域的应用。HTML 4至今已经有十年,它的发布者也这寻找着新的技术来提供更多的功能来减少因语言和

    浏览器的制约而带来的阻碍。

        本着为用户提供更灵活,更富有操作性,并使能创建更交互性及精彩的网址或应用,HTML 5介绍并提供了这种可能,包括表单控件,API,多媒体,结构及语义。

        HTML 5的开发工作是从2004年开始的,如今在W3C HTML WG及WHATWG两个组织的共同努力下终于完成。很多关键角色也在W3C努力参与着,主要包括4个主要的浏览器提厂商:

    Apple,Mozilla,Opera,Microsoft,及有着各种兴趣和技术的组织和个人。

        注意:HTML 5文档还在开发当中,并且会有相当长的时间才能完成。因此,本文中所讨论的任何特性都有可能被改变。本人也有意的只是简单的介绍了一下当前草案的主要特性。

    结构
        HTML 5 介绍了新元素集合,使其跟轻松的组织网页。大部分的HTML4页面都包含各种普通的结构,例如header,footer,column,tody等,页面普遍使用div元素来将它们标记起来,

    并给它们注明id或class。

     

    图片表示了经典的两列布局,使用DIV,并设置id,class属性。包括header,footer,header下面的水平导航栏。主体部分包括文章和右边的边栏。

     

          DIV元素的使用很广泛,因为当前HTML 4版本缺少必要的语义来更详细的描述那些部分。HTML 5谈到了这个问题,并为那些每个部分都介绍了新的元素来表示。

     

    DIV标记可以使用新的标记来代替:header, nav, section, article, aside, and footer.

    文档标记可以这样表示:

      
    <header>...</header>
      <nav>...</nav>
      <article>
        <section>
          ...
        </section>
      </article>
      <aside>...</aside>
      <footer>...</footer>
    </body>
    


    使用这些标记有很多优点。与标题元素(h1-h6)结合使用时,所有这些都提供了一个方法,使得标题标记嵌套的部分,这超越了六个(h1-h6)基于在上个版本中的效果。规范文档中包括一

    个详细的生成概述的规则,考虑到这些标签的结构,仍然向上兼容。这可以方便开发的工具及浏览器生成目录及帮助用户浏览文档。

    例如,下面的标记结构表示了嵌套的section和h1元素:
    view plaincopy to clipboardprint?
    <section> 
      <h1>Level 1</h1> 
      <section> 
        <h1>Level 2</h1> 
        <section> 
          <h1>Level 3</h1> 
        </section> 
      </section> 
     
    </section> 
    <section>
      <h1>Level 1</h1>
      <section>
        <h1>Level 2</h1>
        <section>
          <h1>Level 3</h1>
        </section>
      </section>

    </section>

     

          为了与当前浏览器有更好的兼容性,而且可能会适当的使用h2-h6的元素来代替h1. 通过认识页面中sections的目的,使用特别的区域标记,这一技术能帮助用户更方便的浏览页面。例如,他们可以轻易的跳过导航区域,或者迅速的从一片文章跳到下一篇,而不需要开发者提供跳转连接。开发者也得到了好处,因为在文档中只要使用几个清晰的标记中的一个来代替大多数的div,就可以使得代码的更清晰度,简洁。

          header标记表示区域的首部。header标记可以不只包含区域的头部 -- 例如,它可以适当的为标题添加副标题,版本历史资料及署名。

    view plaincopy to clipboardprint?
    <header> 
      <h1>A Preview of HTML 5</h1> 
      <p class="byline">By Lachlan Hunt</p> 
    </header><header> 
      <h1>Example Blog</h1> 
      <h2>Insert tag line here.</h2> 
    </header> 
    <header>
      <h1>A Preview of HTML 5</h1>
      <p class="byline">By Lachlan Hunt</p>
    </header><header>
      <h1>Example Blog</h1>
      <h2>Insert tag line here.</h2>
    </header>

     

          footer标记表示它所适用的区域的脚部,页脚通常包括该区域的信息,如作者,相关文档链接,版权信息,等。
         view plaincopy to clipboardprint?
    <footer>2007 Example Inc.</footer> 
    <footer>2007 Example Inc.</footer>

    nav标记表示导航链接区域,它既适合网站导航也适合目录。
    view plaincopy to clipboardprint?
    <nav> 
      <ul> 
        <li><a href="/" mce_href="">Home</a></li> 
        <li><a href="/products" mce_href="products">Products</a></li> 
        <li><a href="/services" mce_href="services">Services</a></li> 
        <li><a href="/about" mce_href="about">About</a></li> 
      </ul> 
    </nav> 
    <nav>
      <ul>
        <li><a href="/" mce_href="">Home</a></li>
        <li><a href="/products" mce_href="products">Products</a></li>
        <li><a href="/services" mce_href="services">Services</a></li>
        <li><a href="/about" mce_href="about">About</a></li>
      </ul>
    </nav>
     

        aside标记是为其周围无关的内容辅助的,通常用于标记siderbar
    view plaincopy to clipboardprint?
    <aside> 
      <h1>Archives</h1> 
      <ul> 
        <li><a href="/2007/09/" mce_href="2007/09/">September 2007</a></li> 
        <li><a href="/2007/08/" mce_href="2007/08/">August 2007</a></li> 
        <li><a href="/2007/07/" mce_href="2007/07/">July 2007</a></li> 
      </ul> 
     
    </aside> 
    <aside>
      <h1>Archives</h1>
      <ul>
        <li><a href="/2007/09/" mce_href="2007/09/">September 2007</a></li>
        <li><a href="/2007/08/" mce_href="2007/08/">August 2007</a></li>
        <li><a href="/2007/07/" mce_href="2007/07/">July 2007</a></li>
      </ul>

    </aside>

     

    section标记表示文档或应用的一般区域,如章节,例如:
    view plaincopy to clipboardprint?
    <section> 
      <h1>Chapter 1: The Period</h1> 
      <p>It was the best of times, it was the worst of times,  
         it was the age of wisdom, it was the age of foolishness,  
         it was the epoch of belief, it was the epoch of incredulity,  
         it was the season of Light, it was the season of Darkness,  
         ...</p> 
    </section> 
    <section>
      <h1>Chapter 1: The Period</h1>
      <p>It was the best of times, it was the worst of times,
         it was the age of wisdom, it was the age of foolishness,
         it was the epoch of belief, it was the epoch of incredulity,
         it was the season of Light, it was the season of Darkness,
         ...</p>
    </section>
     

    摘录:A Tale of Two Cities

    article标记表示一个独立于文档,页面,网站的区域。适用于新闻或博客的文章,论坛帖子或独立的评论。

    view plaincopy to clipboardprint?
    <article id="comment-2"> 
      <header> 
        <h4><a href="#comment-2" mce_href="#comment-2" rel="bookmark">Comment #2</a> 
            by <a href="http://example.com/" mce_href="http://example.com/">Jack O'Niell</a></h4> 
        <p><time datetime="2007-08-29T13:58Z">August 29th, 2007 at 13:58</time> 
      </header> 
      <p>That's another great article!</p> 
    </article> 
    <article id="comment-2">
      <header>
        <h4><a href="#comment-2" mce_href="#comment-2" rel="bookmark">Comment #2</a>
            by <a href="http://example.com/" mce_href="http://example.com/">Jack O'Niell</a></h4>
        <p><time datetime="2007-08-29T13:58Z">August 29th, 2007 at 13:58</time>
      </header>
      <p>That's another great article!</p>
    </article>

     

    音频和视频
          近年来,web上的音频和视频日益可行,像网站youtube,viddler,myspace及其他很多网站使得任何人都可以发布视频,音频。然而,目前hmtl缺少必要的手段,来成功地嵌入和控制多媒体本身,很多完整都依赖于Flash来提供该功能。尽管使用各种插件(如:QuickTime,WIndows Media,等)可以嵌入多媒体,Flash是当时唯一广泛使用的插件,它提供了跨浏览器的解决方案,并为开发着提供丰富的API.

          各种基于Falsh的播放器证明,感兴趣的开发者还设计了自己的用户界面,通常允许用户播放,暂停,停止,定位,调节音量。HTML 5为在浏览器中提供此功能,而增添了对嵌套视频,音频的自然(native support)支持,还提供了DOM API来通过脚本控件重放。

          新加的video和audio标记使其变的简单,大部分API在这两个标记中是通用的,不同点仅仅在于他们分别继承可视化和非可视化的媒体。

          Opera和Webkit浏览器已经发布了对视频标记的支持版本。你可以通过连接来下载opera开发版或最近基于WEBKIT开发的nightly版本来尝试一下这些示例。Opera包括对Ogg Theora

    的支持,Webkit支持所有格式,如QuickTime及第三方编码器。

          嵌入视频最简单的方法是使用video标记,允许浏览器提供默认的用户接口,controls属性(布尔类型)指定开发者是否使用默认的UI.
    view plaincopy to clipboardprint?
    <video src="video.ogv" mce_src="video.ogv" controls poster="poster.jpg"   
    width="320" height="240"> 
        <a href="video.ogv" mce_href="video.ogv">Download movie</a> 
    </video> 
    <video src="video.ogv" mce_src="video.ogv" controls poster="poster.jpg"
    width="320" height="240">
        <a href="video.ogv" mce_href="video.ogv">Download movie</a>
    </video>

          可选的poster属性用于指定一个图片,在视频播放之前显示在播放器位置。尽管有一些视频格式,支持自己的海报帧特性,如MPEG - 4 ,这提供了一种替代的方案,能够独立工作

    的视频格式。

          使用audio标记很容易将音频文件嵌入进页面。它大部分属性和video标记一样,尽管出于显示的原因,audio标记没有width,height,poster属性。

    view plaincopy to clipboardprint?
    <audio src="music.oga" mce_src="music.oga" controls> 
        <a href="music.oga" mce_href="music.oga">Download song</a> 
    </audio> 
    <audio src="music.oga" mce_src="music.oga" controls>
        <a href="music.oga" mce_href="music.oga">Download song</a>
    </audio>

          HTML 5提供了source标记来指定可供选择的视频和音频文件,浏览器可以根据对媒体类型和编码器的支持来选择。media属性用于在设备受限的时候选择媒体的查询,type属性用于指定媒体类型和编码器。注意,当使用source标记时,src属性需要从上级节点video或audio标记中删除,否则source标记会被忽略。

    view plaincopy to clipboardprint?
    <video poster="poster.jpg"> 
        <source src="video.3gp" mce_src="video.3gp" type="video/3gpp"   
        media="handheld"> 
        <source src="video.ogv" mce_src="video.ogv" type="video/ogg;  
        codecs=theora, vorbis"> 
        <source src="video.mp4" mce_src="video.mp4" type="video/mp4"> 
    </video> 
    <audio> 
      <source src="music.oga" mce_src="music.oga" type="audio/ogg"> 
      <source src="music.mp3" mce_src="music.mp3" type="audio/mpeg"> 
    </audio> 
    <video poster="poster.jpg">
        <source src="video.3gp" mce_src="video.3gp" type="video/3gpp"
        media="handheld">
        <source src="video.ogv" mce_src="video.ogv" type="video/ogg;
        codecs=theora, vorbis">
        <source src="video.mp4" mce_src="video.mp4" type="video/mp4">
    </video>
    <audio>
      <source src="music.oga" mce_src="music.oga" type="audio/ogg">
      <source src="music.mp3" mce_src="music.mp3" type="audio/mpeg">
    </audio>

          开发者想要更多一点的控制权的用户界面,使他们能做出合适的整体设计的网页,大量的API提供了一些方法和事件,让脚本来控制媒体的回放。最常用的方法有play(),pause(),

    设置currentTime来回退到开始。下面的例子说明了这一点:

    view plaincopy to clipboardprint?
    <video src="video.ogg" mce_src="video.ogg" id="video"></video> 
    <mce:script type="text/javascript"><!--  
      var video = document.getElementById("video");  
    // --></mce:script> 
    <p><button type="button" onclick="video.play();">Play</button> 
       <button type="button" onclick="video.pause();">Pause</button> 
       <button type="button" onclick="video.currentTime = 0;"> 
       << Rewind</button> 
    <video src="video.ogg" mce_src="video.ogg" id="video"></video>
    <mce:script type="text/javascript"><!--
      var video = document.getElementById("video");
    // --></mce:script>
    <p><button type="button" onclick="video.play();">Play</button>
       <button type="button" onclick="video.pause();">Pause</button>
       <button type="button" onclick="video.currentTime = 0;">
       << Rewind</button>

          video和audio标记还有很多属性和API,这里就不多讨论。了解更多信息,你可以翻阅当前拟草的说明
    http://www.whatwg.org/specs/web-apps/current-work/multipage/section-video.html#video

    文档显示和前面html,xhtml版本不同,他们是定义在语法条款上,HTML 5则是定义在DOM上 - 浏览器内部使用树结构来呈现文档。例如,考虑一个简单文档,由题目,标题,段落组成。DOM

    树看起来就像:

     

    (DOM树包括头部中的一个标题标记,和body中的h1,p标记)

          HTML 5定义在DOM下的优点是语言本身可以被定义而不依赖与语法。有两个关键的语法规则,他们用来呈现HTML文档:HTML序列(serialisation )(HTML 5可以识别),XML序列(

    XHTML 5识别)。

          HTML序列涉及的语法是受到起源与早期html版本的SGML的语法的启迪,但定义得更适合浏览器实际处理HTML方式的习惯。

    view plaincopy to clipboardprint?
    <!DOCTYPE html> 
    <html> 
      <head> 
        <title>An HTML Document</title> 
      </head> 
      <body> 
        <h1>Example</h1> 
        <p>This is an example HTML document.  
      </body> 
    </html> 
    <!DOCTYPE html>
    <html>
      <head>
        <title>An HTML Document</title>
      </head>
      <body>
        <h1>Example</h1>
        <p>This is an example HTML document.
      </body>
    </html>

          注意像以前的hTML版本,一些标签是可选的,并自动隐藏的。

          xml序列化涉及的语法是沿用了XML1.0及命名空间,就像XHTML1.0.

    view plaincopy to clipboardprint?
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <title>An HTML Document</title> 
    </head> 
    <body> 
        <h1>Example</h1> 
        <p>This is an example HTML document.</p> 
    </body> 
    </html> 
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>An HTML Document</title>
    </head>
    <body>
        <h1>Example</h1>
        <p>This is an example HTML document.</p>
    </body>
    </html>

     

          撇开xmlns属性及空白,这两个是一样的。

          浏览器使用MIME类型来识别它们,然后文档要为text/html提供服务比较遵守HTML序列化的规范,然后服务与XML MIME类型的文档如application/xhtml+xml也必须遵守XML序列化的规范。

          开发者必须清楚的知道选择哪种序列化方式,这可能取决于很多不同的因素。开发者不应该不假思索的选择其中一个;它们每一个都有各自适合的场合。

    HTML优势
     --- 对浏览器向后兼容
     --- 熟悉的语法
     --- 强大的容错性语法,这意味着不再有恶意用户的“Yellow screen of death” ,即使偶尔出现差错也会被跳过。
     --- 语法方便记忆,例如,开发者可以忽略一下标签和属性。

    XHTML的优势
    --- 严格的XML语法,使开发者书写完整规范的标记,开发者会发现这很容易做到并这样做下去。
    --- 直接与其他XML规范集成,如SVG,MathML
    --- 允许xml方式的使用,很多开发者在部分使用XML的编辑,发布方式。

    如何反馈

          HTML 5的开发工作进展很迅速,但依然需要持续几年。由于需要提供测试案例,实现交互,目前估计工作还要在10-15年内完成。这此过程中,来自各种用户的反馈,包括网页设计师,开发者,CMS,开发工具厂商及浏览器厂商,这是成功必不可少的条件。不是所有人都对此支持,但积极的态度鼓舞着他们向HTML 5递交反馈意见。

          除了详细文档外,还有其他很多相关内容,旨在帮助用户更好的了解这项工作。

    --- The Differences from HTML 4 讲了跟以前版本发生的变化。
    --- The THML Design Principle讨论了一些规范,来帮助做出决策,这会帮助你在许多设计方案中做出逻辑决策。
    --- The Web Developer's Guide to HTML 5,这是最近才开始的,意在帮助网页设计师,开发者了解他们规范的书写HTML 5文档所需要知道的一切。

        你可以通过很多途径来为此出份力,你可以加入W3C's HTML WG,可以订阅或反馈给HTML WG mailing lists或WIKI.你也可以订阅或反馈任何WHATWG 邮件列表,在WHATWG 论坛发帖,回帖,或在WHATWG 博客发表文章。

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/guangboo/archive/2009/07/23/4372616.aspx

  • 【转】对Div和Table运用的理解

    by{ guangboo }, published {2009-07-20}, Tag { css / HTML / }

    对DIV和Table运用的理解,大家都有不同的看法,本人看资料及自己开发的经验作如下总结,希望对迷茫的朋友有帮助! 网页布局一直是WEBpage开发人员关注的内容,从早期table构架页面到DIV再到DIV+Table,可以说我们的需求一直在变,但是目的一直没有改变。Why?,很明显从简单到复杂,再从复杂到简单;从简单运用到复杂运用;一切都是围绕需求性来做的。很多开发设计人员在从事页面布局开发的时候都要考虑到几点:布局是否合理,结构是否紧凑,是否有充分的扩展性,可读性是否强。而合理使用Table和DIV来构架我们的web是我们探讨的一个重要问题。对此要从几个不同的方位来看待:

    一.定位。

    首先,严格意义来说,table和div都是可用合理的布局方法,你不能否认table的价值,或者div只有优点没有缺点。可以说web架构即可以使用table也可以div。那么关键就是你对你的web需求的定位。 我们需要考虑到web页面给我们的站点会带来多大的影响。如我们的站点针对的海量的访问,海量的数据,(当然cache问题这里不讨论)那么在构架上通常会减少table使用量,尤其是大量的循环的时候,当然table也是有用的。对于复杂的站点来说,div+css有时候很难准确定义出我们所表达的内容这时候table就是很好的选择。这也是开发前要考虑的问题,在要达到开发目的的同时保证所需要的成本。同样用div+css来实现一个结构复杂的page时往往不如用一个table就能简单得搞定。

    二.特性。

    table和div有其各自得特征。这也意味着他们价值取向有不同,对于开发设计的人员来说很重要的。 table可以很容易建立起结构化的界面,通过table自身的参数定义,我们能把页面布局很快定义成我们所需要的效果。当然css的配合就可以相对减少。缺点就是扩展性和可读性相对较差,扩展性差表现在维护和修正上面,一个复杂的table布局的站点,她的海量页面在随着需求变化下,开发人员将一筹莫展,大量的修改需求会把web的界面开发工作彻底粉碎。可读性差,这个也是相对来说. 从web设计来说,给技术人员最大的一个障碍便是当table容器内内容过多时,使页面的加载时间增加,因为浏览器首先要加载标签,而在加载到 之前,table里的内容不会显示。也就是说,当涉及到双列或三列布局时,给技术人员制造了很大的麻烦。单单从布局上来说,表格是不具有优势的。 div呢,在html语法中我们知道div的含有和作用,如果用它来实现布局页面的话,几乎完全要靠css来支撑,可以说div不能单独使用,尤其是针对性强的web,给用户视觉上的效果要求十分严格,div的使用要配合专业的css参数来实现。从前面的例子可以看出div布局更加灵活,能简单也能够复杂。相同的显示效果在css和div的配合上可以产生不同的搭配方式。扩展性强是她的优点,开发设计人员只要对相应的css做调整就能让布局焕然一新,这点是table远远不及的。但在对结构相对复杂的局部,往往div+css开发难度高,一个简单效果div和css要写半天,这点table就好很多了,用dw之类的所见即所得的软件下我们可以轻易做出用div+css写半天才能做出的东西。

    三.兼容  

    这是每个website的一个重要课题,浏览器的兼容问题。table和div在兼容问题中,table更具有优势。   

    我们常用的ie,火狐浏览器对div css设置上非常挑剔,往往同一个css在2种浏览器上会有不同的结果,对开发人员来说是个可怕的问题。我们不可能对用户的浏览器进行排斥,因此只有通过在开发的时候调整我们的语法和布局方法。div要求我们严格css支持,而table可以不用考虑这么多。table的严谨在不同浏览器中得到了很好的表现。   在考虑我们的定位,特征,兼容问题后,如何布局,采用何种构架方案我想大家心里应该都很清楚了,我想说对于真正的开发者来说善用其利是最重要的理念。而不是一味偏好,或者体现自己技术能力来做开发设计工作。对于div我们可以充分发挥其灵活清晰的架构特性,配合table的严谨来实现各种webpage的需求。