网络编程
位置:首页>> 网络编程>> 网页设计>> HTML5设计原则(3)

HTML5设计原则(3)

作者:赵振宇  发布时间:2012-04-26 16:46:45 

标签:HTML5,设计,XHTML2

同样,这样写也是有效的。它不仅适用于最新版本的浏览器,只要是今天还有人在用的浏览器都同样有效。为什么?因为在我们把这些meta元素输入浏览器时,浏览器会这样解释它:“元数据(meta)点点点点点,字符集(charset)utf-8。”这就是浏览器在解释那行字符串时真正看到的内容。它必须看到这些内容,根据就是伯斯塔尔法则,对不对?

我多次提到鲁棒性原则,但总有人不理解。我们换一种说法,浏览器会想“好,我觉得作者是想要指定一个字符集……看,没错,utf-8。”这些都是规范里明文规定的。如今,不仅那个斜杠可以省了,而且总共只要写meta charset=”utf-8″就行了。

关于省略不必要的复杂性,或者说避免不必要的复杂性的例子还有不少。但关键是既能避免不必要的复杂性,还不会妨碍在现有浏览器中使用。比如说,在HTML5中,如果我使用link元素链接到一个样式表,我说了rel=”stylesheet”,然后再说type=”text/css”,那就是重复自己了。对浏览器而言,我就是在重复自己。浏览器用不着同时看到这两个属性。浏览器只要看到rel=”stylesheet”就够了,因为它可以猜出来你要链接的是一个CSS样式表。所以就不用再指定type属性了。你不是已经说了这是一个样式表了嘛;不用再说第二次了。当然,愿意的话,你可以再说;如果你想包含type属性,请便。

同样地,如果你使用了script元素,你说type=”text/javascript”,浏览器差不多就知道是怎么回事了。对Web开发而言,你还使用其他的脚本语言吗?如果你真想用其他脚本语言,没人会阻拦你。但我要奉劝你一句,任何浏览器都不会支持你。

愿意的话,你可以添加一个type属性。不过,也可以什么都不写,浏览器自然会假设你在使用JavaScript。避免-不必要的-复杂性。

b. Support existing content


支持已有的内容

显然,我们都会考虑让Web的未来发展得更好,但他们则必须考虑过去。别忘了W3C这个工作组中有很多人代表的是浏览器厂商,他们肯定是要考虑支持已有内容的。

再来看几段代码:

 <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>

这几段代码有问题吗? 没有, 是的, 完全没有问题!

因为我们讨论的只是编码风格或者写作风格,跟哪种语法正确无关.

在JavaScript,你可以在每条语句末尾加上分号,但不是必需的,因为JavaScript会自动插入分号.

当然这并不阻碍我们用XHTML的语法规范来规约大家书写辨识度高的文档, 当然也可以借由lint工具来为我们验证整个文档的正确性.

我个人认为,不仅对团队来说,就算是你自己写代码,也要坚持一种语法风格。从浏览器解析的角度讲,不存在哪种语法比另一种更好的问题,但我认为,作为专业人士,我们必须能够自信地讲“这就是我的编码风格。”然而,我不认为语言里应该内置这种开关。你可以使用lint工具来统一编码风格。现在就来说说lint工具。大家可以登录htmllint.com,在其中运行你的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解决现实的问题,其本质还是“你都这样写了很多年了吧?现在我们把标准改了,允许你这样写了。”

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com