HTML 是用来描述网页的一种语言。
HTML 文档 = 网页
Web 浏览器的作用是读取 HTML 文档,并以网页的形式显示出它们。浏览器不会显示 HTML 标签,而是使用标签来解释页面的内容。
HTML是超文本标记语言(Hyper Text Markup Language),是最早写网页的语言,但是由于时间早,规范不是很好,大小写混写、编码不规范而且很多地方模糊不清。
实际上,网页的终极标记语言应该是XML(Extensible Markup Language),可扩展标记语言。XML是一种跨平台语言,编码更自由,可以自由创建标签。但XML结构复杂,语法严谨,学习起来相对现行的HTML也比较困难,尤其在早期标准不统一的年代,XML没法立即铺开。
于是,W3C想出一个折衷的办法,就是XHTML(Extensible Hyper Text Markup Language),可扩展超文本标记语,扩展的HTML。也就是适当地、逐步地向HTML加入XML的标准。XHTML即是升级版的HTML,对HTML进行了规范,编码更加严谨纯洁,是一种过渡语言,HTML向XML过渡的语言。
语义化是指根据内容的结构化(内容语义化),选择合适的标签(代码语义化),便于开发者阅读和写出更优雅的代码的同时,让浏览器的爬虫和机器很好的解析。
语义化的优点:
若想要做到html语义化,则网页的开发者应该要做到熟悉所有规范的HTML标签的使用场景,在合适的地方使用合适的标签。如:
一个网页可以简单的分为三个部分:HTML——结构,CSS——表现,JavaScrip——行为。内容和样式的分离,就是指在网页编码的过程中,要将HTML和CSS两大部分分开。写HTML的时候先不管样式,重点放在HTML的结构和语义化上,让HTML能体现页面结构和内容;然后进行 CSS 样式的编写,减少 HTML 与 CSS 契合度(即内容与样式分离) ;写JS的时候,尽量不要用JS去直接操作样式,而是通过给元素添加删除class来控制样式变化(即行为分离)。
样式与结构分离的优点:
文档声明的作用是告知浏览器页面使用的HTML版本;严格模式又叫标准模式,使页面按照 HTML 与 CSS 的定义渲染。混杂模式,又叫怪异模式,以比较宽松的向后兼容的方式呈现,模拟老式浏览器以兼容老的站点;<!doctype html> 的作用是告诉浏览器开启标准模式,开启标准模式后浏览器就得老老实实的按照W3C的 标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。
通用的编码方式:
乱码原因:使用编辑器编写 HTML 文件,保存编写的HTML文件,会按照使用的编辑器默认的编码方式进行保存,使用浏览器打开HTML文件。在没有声明的情况下,浏览器并不知道你的这个文件是使用什么编码方式,于是会使用了默认解码方式。例如文件保存为GBK格式,在Chrome打开时默认使用 ISO -8859的解码方式,就会导致编码和解码不匹配,产生乱码。 解决方法:在文件保存的时候,自己要清楚是用哪种编码方式保存的(sublime默认保存方式是utf-8,安装了GBK Encoding support插件也可另存为gbk)。如果你的文件是保存为utf-8格式,在html 的 <head>里添加<meta charset="utf-8">;如果你的文件保存为gbk格式,一定在文件里添加<meta charset="gbk">,对浏览器进行说明,直接按照声明的编码方式进行解析读取,就不会有乱码问题。
<meta charset="utf-8">
编码方式
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
双核浏览器
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
用于移动端的展示合理
<meta name="keywords" content="前端 饥人谷"> 网页关键字,利于搜索
<meta name="description" content="最有爱的前端学习社区">
搜索引擎优化
<meta name="keywords" content="">
向搜索引擎说明你的网页的关键词
<meta name="description" content="">
告诉搜索引擎你的站点的主要内容
<meta name="author" content="你的姓名">
告诉搜索引擎你的站点的制作的作者
<meta http-equiv="Content-Type" content="text/html";charset=utf-8">
指定字符集
<meta http-equiv="refresh" content="n;url=">
定时让网页在指定的时间n内跳转
<meta http-equiv="pragma" content="no-cache">
禁用缓存
<meta http-equiv="set-cookie" content="Mon,12 May 2001 00:20:00 GMT">
cookie设定,如果网页过期,存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式
浏览器 | 内核 |
---|---|
Internet Explorer | IE内核 |
Firefox | Gecko |
Opear | Presto |
Safair&Chromr | Webkit |
国内大部分浏览器 | IE内核 |