深圳网站制作专业品牌! 联灿科技-深圳企业网站专业服务商 加入收藏
用户名: 密码: 注册
深圳市联灿科技有限公司深圳做网站,找联灿! 深圳网站设计热线 深圳网页设计在线咨询
技术交流
网站设计
网站优化
行业动态
 
深圳做网站,找联灿!
深圳市联灿科技有限公司成立于二零零四年,是家专业提供深圳网站制作深圳网页设计深圳网页制作深圳网站设计深圳网站开发、域名注册、虚拟主机、企业邮箱等服务的正规深圳做网站的公司,迄今已累积客户逾千家,在业界具有相当的知名度,在深圳网站建设市场上树立了良好的口碑。
业精于专,值得您的信赖!
销售热线:0755-26955674
查看更多联系方式
网站设计
HTML5网页设计原则 (下)

接上一篇:HTML5网页设计原则 (中)

c. solve real problems

解决现实的问题

这看起来有点像再说废话, 谁不是为了解决问题在做事情的呢?

而这条设计原理才是真正要解决今天的人们所面临的现实问题、令人头疼的问题。

好吧, 继续看代码:

<h2>Heading text</h2>
<p>Paragraph text.</p>
现在我们需要给这两个文本都加上一个链接, 那我们的做法会是什么? 给h2和p分别加上一个a标签? 或许,也有聪明的同学会用a标签来整个包住h2和p,就像:

<a href="somewhere">
<h2>Heading text</h2>
<p>Paragraph text.</p>
</a>
这样写有错吗?没错吧?只不过是种不太好的习惯, 并且通不过严格的校验.

但是这样的应用场景肯定存在的, 那为什么不能这样写呢?

这种写法其实早就已经存在于浏览器中了,因为早就有人这样写了,当然以前这样写是不合乎规范的。所以,说HTML5解决现实的问题,其本质还是“你都这样写了很多年了吧?现在我们把标准改了,允许你这样写了。”

d. pave the cowpaths

求真务实

Cowpath: 把一群牛放在地里,然后看牛喜欢怎么走,然后根据牛群踩过的痕迹来铺一条给牛走的路。

很有趣的比喻吧, 说的就是把一些既然存在的东西变得更加标准一些. 接上地气的标准才是能够被执行的标准.

举个栗子:

WHATWG对抽样对大量网站进行了分析, 得出了这样的一个结论:

id=”header”, id=”footer”, id=”content”, id=”navigation”, id=”sidebar” 这样的命名方式非常常见, 那好吧, 那我就给你们一些这样的标签!

<section>,<article>,<aside>,<nav>,<header>,<footer>,<details>,<figure>

看代码:

<body>
<div id="header"></div>
<div id="navigation"></div>
<div id="main"></div>
<div id="sidebar"></div>
<div id="footer"></div>
</body>
变!

<body>
<header></header>
<nav></nav>
<div id="main"></div>
<aside></aside>
<footer></footer>
</body>
怎么样? 像模像样了吧?

再看:

<div class="item">
<h2></h2>
<div class="meta"></div>
<div class="content"></div>
<div class="link"></div>
</div>
再变!

<section class="item">
<header><h2></h2></header>
<footer class="meta"></ footer >
<div class="content"></div>
<nav class="link"></nav>
</section>
虽然在这个文档中,我们用这些新元素来替换的是id,但在我个人看来,将它们作为类的替代品更有价值。为什么这么说呢?因为这些元素在一个页面中不止可以使用一次,而是可以使用多次。没错,你可以为文档添加一个头部(header),再添加一个脚部(footer);但文档中的每个分区(section)照样也都可以有一个头部和一个脚部。而每个分区里还可以嵌套另一个分区,被嵌套的分区仍然可以有自己的头部和脚部,是这样吧?

这四个新元素:section、article、aside和nav,之所以说它们强大,原因在于它们代表了一种新的内容模型,一种HTML中前所未有的内容模型——给内容分区。迄今为止,我们一直都在用div来组织页面中的内容,但与其他类似的元素一样,div本身并没有语义。但section、article、aside和nav实际上是在明确地告诉你——这一块就像文档中的另一个文档一样。位于这些元素中的任何内容,都可以拥有自己的概要、标题,自己的脚部。

其中最为通用的section,可以说是与内容最相关的一个。而article则是一种特殊的section。aside呢,是一种特殊的section。最后,nav也是一种特殊的section。

最重要的是它们的语义;跟位置没有关系。

这里,请注意,最重要的还不是我用几个新元素替换了原来的div加类,而是我把原来的H2换成了H1——震撼吧,我看到有人发抖了。我碰到过不少职业的Web开发人员,多年来他们一直认为规范里说一个文档中只能有一个H1。还有一些自诩为万能的SEO秘诀同样说要这样。很多SEO的技巧其实是很教条的。所谓教条,意思就是不相信数据。过去,这种教条表现为“不行,页面中包含两个以上的H1,你就会死掉的。”在HTML5中,只要你建立一个新的内容块,不管用section、article、aside、nav,还是别的元素,都可以在其中使用H1,而不必担心这个块里的标题在整个页面中应该排在什么级别;H2、H3,都没有问题。

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

e. degrade gracefully

优雅降级

HTML5中设计了这么些新玩意:

input type="number"
input type="search“
input type="range"
input type="email"
input type="date"
input type="url"
很有趣, 但是浏览器不认识, 怎么办呢?

最关键的问题在于浏览器在看到这些新type值时会如何处理。现有的浏览器,不是将来的浏览器,现有的浏览器是无法理解这些新type值的。但在它们看到自己不理解的type值时,会将type的值解释为text。

无论你写的是input type=”foo”还是input type=”bar”,现有的任何浏览器都会说:“嗯,也许作者的意思是text。”因而,你从现在开始就可以使用这些新值,而且你也可以放心,那些不理解它们的浏览器会把新值看成type=”text”,而这真是一个浏览器实践平稳退化原理的好例子。

比如说,你现在输入了type=”number”。假设你需要一个输入数值的文本框。那么你可以把这个input的type属性设置为number,然后理解它的浏览器就会呈现一个可爱的小控件,像带小箭头图标的微调控件之类的。对吧?而在不理解它的浏览器中,你会看到一个文本框,一个你再熟悉不过的文本框。既然如此,为什么不能说输入type=”number”就会得到一个带小箭头图标的微调控件呢?

当然,你还可以设置最小和最大值属性,它们同样可以平稳退化。这是问题的关键。

HTML5还为输入元素增加了新的属性,比如placeholder(占位符)。有人不知道这个属性的用处吗,没有吧?没错,就是用于在文本框中预先放一些文本。不对,不是标签(label)——占位符和标签完全不是一回事。占位符就是文本框可以接受的示例内容,一般颜色是灰色的。只要你一点击文本框,它就消失了。如果你把已经输入的内容全部删除,然后单击了文本框外部,它又会出现。

使用JavaScript编写一些代码当然也可以实现这个功能,但HTML5只用一个placeholder属性就帮我们解决了问题。

当然,对于不支持这个属性的浏览器,你还是可以使用JavaScript来实现占位符功能。通过JavaScript来测试浏览器支不支持该属性也非常简单。如果支持,后退一步,把路让开,乐享其成即可。如果不支持,可以再让你的JavaScript来模拟这个功能。

再来看一个比较极端的优雅降级方案:

<video>
<source src="movie.mp4">
<source src="movie.ogv">
<source src="movie.webm">
<object data="movie.swf">
<a href="movie.mp4">download</a>
</object>
</video>
很NB吧…

f. Priority of  constituencies

最终用户优先

事先声明, 这是条很哲学的设计原则, 没有代码可以看.

它的意义就是: 一旦遇到冲突,最终用户优先,其次是作者,其次是实现者,其次标准制定者,最后才是理论上的完满。

在有人建议了某个特性,而HTML5工作组为此争论不下时,如果有浏览器厂商说“我们不会支持这个特性,不会在我们的浏览器中实现这个特性”,那么这个特性就不会写进规范。因为即使是把特性写进规范,如果没有厂商实现,规范不过是一纸空文,对不对?实现者可以拒绝实现规范。

嗯, 要学会辩证的去看这些问题, 别钻牛角尖就好.


上一篇:HTML4和HTML5之间的10个主要不同
下一篇:HTML5网页设计原则 (中)

技术交流 最新上线
网站制作中关于图片优化的15个原则
网站进行改版时应该注意哪些方面?
多方面入手有效提升网站的用户体验
谷歌网站管理员博客:五个常见的SEO错误
揭示黑客在社交网站上的五大攻击手法
Dongguan Yicheng Innovation 网站设计完成
鸿翼能科技有限公司深圳网站制作完成
AGS technology limited 深圳网站制作完成
AGS plastic limited 深圳网站设计完成
浩源电子科技有限公司深圳网站制作完成
 
网站首页 | 公司简介 | 新闻动态 | 超值套餐 | 经典案例 | 常见问答 | 技术支持 | 联系方式 | 留言反馈
Copyright © 2004-2017 LINKCHANT TECHNOLOGY LTD, All Rights Reserved. 粤ICP备05037094号
联系电话: 0755-26955674  电子邮箱: sales@linkchant.com
联灿科技: 深圳网站制作公司 | 深圳网页设计公司 | 深圳网页制作公司 | 深圳网站设计公司 | 深圳网站建设公司 | 深圳网站开发公司 | 深圳做网站的公司