HTML5 设计原理笔记

今天拜读了HTML5 设计原理,算是重新认识了html5,这里做下笔记总结。

  1. 设计原理
    设计原理本质上是一种信念、一种想法、一个概念,是你行动的支柱。
  2. HTML
    伯斯塔尔法则(Postel’s Law):发送时要保守;接收时要开放。
  3. HTML5
    HTML5必将是一个伟大的规范,而W3C与WHATWG已经认可这就是他们的共同行动纲领。
  4. 避免不必要的复杂性
<!DOCTYPE html>
<meta charset="utf-8">
  1. 支持已有的内容
    在HTML5中,你可以随意使用下列任何语法:
<img src="foo" alt="bar" />
<p class="foo">Hello world</p>

<img src="foo" alt="bar">
<p class="foo">Hello world

<IMG SRC="foo" ALT="bar">
<P CLASS="foo">Hello world</P>

<img src=foo alt=bar><p class=foo>Hello world</p>
  1. 解决现实的问题
<h2><a href="/path/to/resource">Headline text</a></h2>
<p><a href="/path/to/resource">Paragraph text.</a></p>

在HTML5中,我只要简单地把所有内容都包装在一个链接元素中就行了。

<a href="/path/to/resource">
    <h2>Headline text</h2>
    <p>Paragraph text.</p>
</a>
  1. 求真务实
<div class="item">
    <h2>...</h2>
    <div class="meta">...</div>
    <div class="content">...</div>
    <div class="links">...</div>
</div>

可替换为

<body>
    <header>...</header>
    <nav>...</nav>
    <div id="main">...</div>
    <aside>...</aside>
    <footer>...</footer>
</body>

即便是现在,你照样可以使用div和类来描述页面中不同的部分,就像下面这样:

<div class="item">
    <h2>...</h2>
    <div class="meta">...</div>
    <div class="content">...</div>
    <div class="links">...</div>
</div>

其中包含可能是有关内容作者的元数据,而下面会给出一些链接,差不多就这样。在HTML5中,我完全可以说这块内容就是一个文档,通过对内容分区,使用section或article或aside,我可以说“这一块完全是可以独立存在的。”因此,我当然可以使用header和footer。

<section class="item">
    <header><h1>...</h1></header>
    <footer class="meta">...</footer>
    <div class="content">...</div>
    <nav class="links">...</nav>
</section>

这个变化太厉害了。想一想吧,这个变化对内容管理是革命性的。因为现在,你可以把每个内容分区想象一个独立的、能够从页面中拿出来的部分。此时,根据上下文不同,这个独立部分中的H1,在整个页面中没准会扮演H2或H3的角色——取决于它在文档中出现的位置。面对这个突如其来的变化,也许有人的脑子会暂时转不过弯来。不要紧,但我可以告诉你,我认为这才是HTML5中这些新语义标记的真正价值所在。换句话说,我们现在有了独立的元素了,这些元素中的标题级别可以重新定义。

  1. 平稳退化
    有关HTML5遵循这条原理的例子,就是使用type属性增强表单。
    input type="number"
    input type="search"
    input type="range"
    input type="email"
    input type="date"
    input type="url"

现有的浏览器,不是将来的浏览器,现有的浏览器是无法理解这些新type值的。但在它们看到自己不理解的type值时,会将type的值解释为text。

<video>
    <source src="movie.mp4">
    <source src="movie.ogv">
    <object data="movie.swf">
        <a href="movie.mp4">download</a>
    </object>
</video>

上面的代码中包含了4个不同的层次。

1).如果浏览器支持video元素,也支持H264,没什么好说的,用第一个视频。
2).如果浏览器支持video元素,支持Ogg,那么用第二个视频。
3).如果浏览器不支持video元素,那么就要试试Flash影片了。
4).如果浏览器不支持video元素,也不支持Flash,我还给出了下载链接。

  1. 最终用户优先
    一旦遇到冲突,最终用户优先,其次是作者,其次是实现者,其次标准制定者,最后才是理论上的完满。
    软件,就像所有技术一样,具有天然的政治性。代码必然会反映作者的选择、偏见和期望。
    所以,我认为平常多看一看别人推崇的设计原理,有助于做好自己手头的工作。你可以把自己认为有道理的设计原理贴在墙上。当然,你可以维护一个URL,把自己认为有价值的设计原理分享出来,就像Mozilla基金会那样,对不对,以下是Mozilla的设计原理:
    Internet作为一种公共资源,其运作效率取决于互通性(协议、数据格式、内容)、变革及全球范围内的协作。
    基于透明社区的流程有助于增进协作、义务和信任。

我觉得像这样的设计原理都非常好。而有了设计原理,我认为才更有希望设计出真正有价值的产品。设计原理是Web发展背后的驱动力,也是通过HTML5反映出来的某种思维方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 格式后期处理。 Jeremy Keith在 Fronteers 2010 上的主题演讲 今天我想跟大家谈一谈HTM...
    LordZhou阅读 4,804评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 今天妈妈让我帮她下载电视剧,说是等店里不忙的时候可以看看。我问她想看什么题材的,妈妈说想看可以开动脑子的,我很...
    张小静gugu阅读 1,703评论 0 0
  • 每个人都渴望成功,为了成就自己而努力奋斗。我们渴望成为成功的企业家、成功的作家……我们渴望成为模范,成为别人模仿的...
    琳娜911阅读 6,664评论 0 3