HTML&HTML5
1.编程语言和标记语言
编程语言 (programming language)可以例如 c, perl, javascript
标记语言( markup language ), 有 xml, html, xhtml ( xml 和 html 的合体 )你会见到他们都是以 “ml” 结尾的.
标记语言的存在用来被读取的, 例如 svg 的图档其实就是用 xml 写出来的. 而其本身是没有行为能力的. 在标记语言里你会看到很多 < 和 > 这些钻括号, 这些是用来写出 “层次” 和 “属性” 的. 简言之, 他是被动的。而在 编程语言 里, 你会看到很多 if else for while print … 这些具有逻辑性和行为能力的指令,这是主动的.
2.Xml、html、xhtml
XHTML 全名是“可扩展超文本置标语言”(eXtensible HyperText Markup Language)
HTML(HyperText Markup Language)
XML 是未来的趋势,但是需要一个过程慢慢摸索实现的途径,所以就有了 XHTML,这是一个作为 HTML 到 XML 过渡过程的一个产物。
XHTML 是在 HTML 的基础上向 XML 过渡的东西,和 HTML 最大的区别就在于它更严谨而且语义化更强。比如 XHTML 规定所有标记都必须小写,因为 XML 需要区分大小写,而 HTML 不这么要求;XHTML 要求标签必须闭合,不允许开放标签存在。
1.XHTML 与 HTML 的区别 XHTML 元素必须被正确地嵌套。 XHTML 元素必须被关闭。 标签名必须用小写字母。 XHTML 文档必须拥有根元素。
2.使用XHTML 局限 所有的 XHTML 元素都必须被正确地嵌套,XHTML 必须拥有良好的结构,所有的标签必须小写,并且所有的 XHTML 元素必须被关闭。所有的 XHTML 文档必须拥有DOCTYPE 声明,并且 html、head、title 和 body 元素必须存在。虽然代码更加的优雅,但缺少容错性,不利于快速开发。
3.HTML5 HTML5 是最新的 HTML 标准,他的主要目标是提供所有内容而不需要任何的像 flash, silverlight 等的额外插件,这些内容来自动画,视频,富 GUI 等。 HTML5 是万维网联盟(W3C)和网络超文本应用技术工作组(WHATWG)之间合作输出的。
4.XML 与 HTML 的主要差异 最直观的就是XML语法要求更为严格。
3.HTML<!DOCTYPE>
HTML 也有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确地显示出 HTML 页面。这就是 <!DOCTYPE> 的用处。
不是 HTML 标签。它为浏览器提供一项信息(声明),即 HTML 是用什么版本编写的。4.HTML格式
<!DOCTYPE html> //文档类型声明,不区分大小写,主要是告诉浏览器当前的文档类型
<html> //表示html文档开始
<head> //包含文档元数据开始
<meta charset="UTF-8"> //声明字符编码
<title></title> //设置文档标题
</head> //包含文档元数据接受
<body> //表示html内容部分开始,也就是可见部分
</body> //表示html内容部分结束
</html> //表示html文档结束
5.块级元素
块状元素代表性的就是div,其他如p、nav、aside、header、footer、section、article、ul-li、address等等,都可以用div来实现。不过为了可以方便程序员解读代码,一般都会使用特定的语义化标签,使得代码可读性强,且便于查错。
块状元素特征:(1)能够识别宽高
(2)margin和padding的上下左右均对其有效
(3)可以自动换行
(4)多个块状元素标签写在一起,默认排列方式为从上至下
如果与 CSS 一同使用,<div> 元素可用于对大的内容块设置样式属性。
<div> 元素的另一个常见的用途是文档布局。它取代了使用表格定义布局的老式方法。
使用<table> 元素进行文档布局不是表格的正确用法。
<table> 元素的作用是显示表格化的数据。
6.行级元素
行内元素最常使用的就是span,其他的只在特定功能下使用,修饰字<b>和<i>标签,还有<sub>和<sup>这两个标签可以直接做出平方的效果,而不需要类似移动属性的帮助,很实用。
行内元素特征:(1)设置宽高无效
(2)对margin仅设置左右方向有效,上下无效;padding设置上下左右都有 效,即会撑大空间
(3)不会自动进行换行
7.行内块级元素
行内块状元素综合了行内元素和块状元素的特性,但是各有取舍。因此行内块状元素在日常的使用中,由于其特性,使用的次数也比较多。
行内块状元素特征:(1)不自动换行
(2)能够识别宽高
(3)默认排列方式为从左到右
8.转换
使用display属性能够将三者任意转换:
(1)display:inline;转换为行内元素
(2)display:block;转换为块状元素
(3)display:inline-block;转换为行内块状元素
9.语义化
**为什么需要语义化?
(1)为了在没有css代码时,也能呈现很好的内容结构,代码结构,以至于达到没有编程基础的非技术人员,也能看懂一二。(其实,就是为了不穿CSS外衣,裸奔依然好看)。
(2)提高用户体验,比如:title,alt用于解释名词和图片信息。
(3)利于SEO,语义化能和搜索引擎建立良好的联系,有利于爬虫抓取更多的有效信息。爬虫依赖于标签来确定上下文和各个关键字的权重。
(4)方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以语义的方式来渲染网页。
(5)便于团队开发和维护,语义化更具可读性,如果遵循W3C标准的团队都遵循这个标准,可以减少差异化,利于规范化。
**基于此,在写页面结构时,我们应该注意什么呢?
(1)尽可能少的使用没有语义的div和span元素。
(2)在对语义要求不明显时,既能使用div也能使用p,那就使用p,以为p默认有上下边距,可以兼容特殊终端。
(2)不要使用纯样式标签,如:b、font、u等,改用css设置。
(4)需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b,因为没语义),em是斜体(不用i同b);
(5)使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头标题用th,内容单元格用td;