小白捧回大叔给的HTML秘籍后,兴奋不已,无法入睡。于是决定彻夜学习,希望到时能给大叔一个惊喜。
翻开秘籍后,看到的第一页上便写着HTML是一套超文本标记语言。
所有招式都由标签定义,每一招的发和收对应着开始标签和结束标签,大多数招式都必须有收发,既有开始和结束标签(HTML基本所有元素都是开始标签和结束标签成对出现)。标签种类多达几十种,最基本的<html></html>,用来包含整个网页,<script></script>用来包含javascript代码,<style></style>包含css样式,<a></a>包含一个链接,<div></div>包含一个层,<p></p>包含一个段落,<button></button>包含一个按钮等等等。
小白越看越糊涂,不明白大叔给他的这本秘籍为什么和之前他在大街上3毛钱买的HTML入门差不多,可是奇怪归奇怪,疑惑归疑惑,他还是耐着性子,将HTML的基本标签都学了个遍。但是标签太多了,记得他头晕脑胀。就在他昏昏欲睡的时候,突然想到大叔曾经说过,江湖老怪淘宝网站的前端是html,于是他决定对着淘宝网来学这些标签。说来就来,打开浏览器,输入淘宝网址,https://www.taobao.com/,按下F12。淘宝首页的源代码就出现了:
接着小白对照着秘籍和淘宝网页进行了学习,一眼他就发现<!DOCTYPE HTML>有点不一样,与众不同。 书籍上说<!DOCTYPE>不是html标签,只是用于指示浏览器页面使用的是哪个 HTML 版本进行编写,然后好让浏览器解析。如果没有声明它,浏览器就会按照自己的怪异模式渲染,页面在每个浏览器上的样子可能就会不一样,如果声明了,浏览器就会按照标准模式渲染,这样每个浏览器显示的页面都是一样的。而小白之所以觉得怪,是因为之前书上展示的声明是这样的。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
小白经过研究,明白了复杂声明是因为网页使用的是HTML旧版本,HTML旧版本4.01 基于SGML,在声明中要引用 DTD,DTD 是用来制定标记语言的规则,浏览器根据这些规则正常解析,正确地呈现内容。而新版本HTML5 不是基于SGML,所以直接声明成<!DOCTYPE HTML>,浏览器就能识别文档类型,以正确的方式解析。而且HTML版本是向后兼容的,即使将之前网页复杂声明改成简单的,浏览器也能照常解析。而淘宝就用了简单声明,可以节省字节。于是小白又马不停蹄的看了下百度、京东、腾讯,他们都使用的是简单声明,可惜的是有的网页还是使用的复杂声明。
明白来<! DOCTYPE>后,小白孜孜不倦的又接着往下学。整个网页都是用html head body来包含实现的:
HTML 标签是根标签,包含和网页有关的所有内容,而head 标签用来包含声明和引用的标签,body用来包含用于向用户显示的标签。
接着他又详细看来下head 标签里面的内容。发现淘宝首页,在head标签中先是包含了一堆<script>,接着又一堆<meta>,再接着<link>和<style>。
小白对着秘籍看着这些标签,略有所思:
<script>标签用于引入javascript脚本,而且利用他的src属性,还可以引入外部脚本。
<meta>标签用于向浏览器提供一些声明信息,告诉浏览器应该按照声明的规则来操作,比如文档编码方式,网页要不要缓存,兼容模式,关键词等。
<link>是用来链接一个外部样式表,既css文件,浏览器看见链接后,就会去同时下载这个css文件。
看到这儿之后,小白觉得自己再也无法专心往下看了,因为太浪费时间了,于是他决定明天去找大叔,看有没有速成的法子,因为他想早点练完HTML,好去练css,JavaScript, 还有好多事等着他去干。