HTML5基础——笔记

HTML5基础——笔记

  近几年来,互联网+、大数据、云计算‘物联网‘虚拟现实‘人工智能、机器学习、移动互联网等IT相关新名词、新概念层出不穷,相关产业发展如火如荼。互联网+移动互联网已经深入到人民日常生活的角角落落,人民已经离不开互联网。为了让用户有更好的互联网体验效果 ,Web前端开发、移动终端开发相关技术发展迅猛。

  HTML、CSS、JavaScript、jQuery、Bootstrap、Vue等技术相关配合使用,大大减少了Web前端开发者的工作量,降低了开发成本。本系列主要在帮助读者(我和你)快速掌握目前最前沿技术,使前端设计从外观上变得更炫,在技术上更简易。

  HTML是Hypertext Markup Language的缩写,中文翻译为:超文本标记语言,使用HTML编写的文档称为网页,目前最新版本是HTML5,而使用最广泛的是HTML4.1版本。

1、HTML4 基本语法

  HTML文档一般都应包含两个部分:头部区域和主体区域。HTML文档基本结构由3个标签页负责组织:<html>、<head>和<body>。其中<html>标签标识HTML文档,<head>标签标识头部区域,而<body>标签标识主体区域。

<html> <!--语法开始-->
    <head>
            <!--头部信息,如<titile>标签定义的网页标题-->
    </head>
    <body>
            <!--主体信息,包含网页显示的内容-->
    </body>
</html> <!--语法结束-->

  编写HTML文档时,必须遵循HTML语法规范。HTML文档由标签和信息混合组成,当然这些标签和信息必须遵循一定的组合规则,否则浏览器无法解析的。

  HTML语言的规范条文不多,从逻辑上分析,这些标签包含的内容就表示一类对象,也可以称为网页元素。从形式上分析,这些网页元素通过标签进行分隔,然后表达一定的语义。具体说明如下:

 1 所有标签包含在"<"和">"起止标识符中,构成一个标签。如<style>、<head>、<body>、<div>等。
 2 在HTML文档中,绝大多数元素都有起始标签和结束标签,在起始标签和结束标签之间包含的是元素主体。如<body>和</body>中间包含的就是网页内容主体。
 3 起始标签包含元素的名称以及可选属性,也就是说,元素的名称和属性都必须在起始标签中。结束标签以反斜杠开始,然后附加上元素名称。例如:<tag> 元素主体 </tag>
 4 元素的属性包含属性名称和属性值两部分,中间通过等号进行连接,多个属性之间通过空格进行分隔。例如:<tag a1="v1" a2="v2" a3="v3"……an="vn"> 元素主体 </tag> 
 5 少数元素的属性也可能不包含属性值,仅包含一个属性名称。例如:<tag a1 a2 a3……an> 元素主体 </tag>
 6 一般属性值应该包含在引号内,虽然不加引号,浏览器也能够解析,但是读者应该养成良好的习惯。
 7 属性是可选的,元素包含多少个属性,也是不确定的,这主要根据不同元素而定。不同的元素会包含不同的属性。HTML也为所有元素定义了公共属性,如title、id、class、style等。
 8 虽然大部分标签都成对出现,但是也有少数标签是不成对的,这些孤立的标签,被称为空标签。空标签仅包含起始标签,没有结束标签。例如:<tag>
 9 标签可以相互嵌套,形成文档结构。嵌套必须匹配,不能如<div><span></div></span>这样交错嵌套。合法的嵌套应该是包含或被包含的关系,例如,<div><span></span></div>或<span><div></div></span>
10 HTML文档所有信息必须包含在<html>标签中,所有文档元信息应包含在<head>子标签中,而HTML传递信息和网页显示内容应包含在<body>子标签中。
11 <!-- 单行注释--> 或 <!---------n行---->

2、HTML5 基本语法 

  与HTML4相比, HTML5在语法上发生了很大的变化。为了确保兼容性,HTML5根据Web标准,重新定义了一套在现有HTML基础上修改而来的语法,以便各浏览器在运行HTML的时候能够符合通用标准。下面具体介绍在HTML5中语法进行了哪些改变。

  1、内容类型

  HTML5的文件扩展名和内容类型保持不变。例如,扩展名仍然为".html"或"htm",内容类型(ContentType)仍然为"text/html"。

  2、文档类型

  DOCTYPE命令声明文档的类型 ,它是HTML文档必不可少的组成部分,且必须位于代码的第一行。

  在HTML5中,可以不使用版本说明,一份文档将会适用于所有版本的HTML。在HTML5中,文档类型的声明方法如下:<!DOCTYPE html>

   当使用工具时,也可以在DOCTYPE声明中假如SYSTEM识别符,声明方法如下:<!DOCTYPE HTML SYSTEM "about:legacy-compat">

  在HTML5中,DOCTYPE声明方式是不区分大小写的,引号也不区分单引号还是双引号。

  3、字符编码

  在HTML5中 ,继续沿用meta元素定义文档的字符编码,但是简化了charset属性的写法:<meta charset="UTF-8">

  从HTML5开始,对于文件的字符编码推荐使用UTF-8。

  4、标记省略

  在HTML5中,元素的标记可以省略。具体来说,元素的标记分为3种类型: 不允许写结束标记可以省略结束标记开始标记和结束标记全部可以省略。下面简单介绍下这3种类型各包括哪些HTML5新元素。

  1. 不允许写结束标记的元素有: area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr。
  2. 可以省略结束标记的元素有:li、dt、dd、p、rt、rp、optgroup、option、colgroup、thead、tbody、tfoot、tr、td、th。
  3. 可以省略全部标记的元素有:html、head、body、colgroup、tbody。

3、HTML4 元素

  HTML4共包含91个元素,这些元素都是针对特定内容、结构或特性定义的。具体分为结构元素、内容元素和修饰元素3大类。、

  1. 结构元素:结构元素用于构建网页文档的结构,多指块状元素。
  2. 内容元素:内容元素定义了元素在文档中表示内容的语义,一般只文本格式化元素,它们多是行内元素。
  3. 修饰元素:修饰元素定义了文本的显示效果。

结构元素:

  • div: 在文档中定义一块区域,即包含框、容器 。
  • span: 在文本行中定义一个区域,即行内包含框。
  • ol: 根据一定的排序进行列表。
  • ul: 没有排序的列表。
  • li: 每条列表项。
  • dl: 以定义的方式进行列表。
  • dt: 定义列表中的词条。
  • dd: 对定义的词条进行解释。
  • del: 定义删除的文本。
  • ins: 定义插入的文本。
  • h1~h6: 标题1~标题6,定义不同级别的标题。
  • p: 定义段落结构。
  • hr: 定义水平线。

内容元素:

  • a: 定义超链接。
  • abbr: 定义缩写词。
  • acronym: 定义取首字母的缩写词。
  • address: 定义地址。
  • dfn: 定义条目。
  • kbd: 定义键盘键。
  • samp: 定义样本。
  • var: 定义变量。
  • tt: 定义打印机字体。
  • code: 定义计算机源代码。
  • pre: 定义预定义格式文本,保留源代码格式。
  • blockquote: 定义大块内容引用。
  • cite: 定义引文。
  • q: 定义引用短语。
  • strong: 定义重要文本。
  • em: 定义文本为重要。

修饰元素:

  • b: 定义粗体。 
  • i: 定义斜体。
  • big: 定义文本增大。
  • small: 定义文本缩小。
  • sup: 定义文本上标。
  • sub: 定义文本下标。
  • bdo: 定义文本显示方向。
  • br: 定义换行。

以下是已废除的修饰元素:

  • center: 定义文本居中。
  • font: 定义文本的样式、大小和颜色。
  • u: 定义文本下划线。
  • s: 定义删除线。strike的缩写。

4、HTML4 属性

  • 核心属性:为大部分元素所共有 

    • class:定义类规则或样式规则。
    • id:定义元素的唯一标识。
    • style:定义元素的样式声明。
  • 语言属性:定义元素的语言类型 

    • lang:定义元素的语言代码或编码。
    • dir:定义文本方向,包括ltr和rtl取值,分别表示从左向右和从右向左。
  • 键盘属性:定义元素的键盘访问方法 

    • accesskey:定义访问某元素的键盘快捷键。
    • tabindex:定义元素的Tab键索引编号。
  • 内容属性:定义元素包含内容的附加信息。 

    • alt:定义元素的替换文本。
    • title:定义元素的提示文本。
    • longdesc:定义元素包含内容的大段描述信息。
    • cite:定义元素包含内容的引用信息。
    • datetime:定义元素包含内容的日期和时间。
  • 延伸属性:定义元素的相关信息 

    • rel:定义当前页面与其他页面的关系。

    • rev:定义其他页面与当前页面的关系。

5、HTML5元素

  HTML5在HTML4的基础上新增了很多新的元素,根据标记内容的类型不同,这些新的元素被分成了如下几种类型。

  • 结构元素
  • 功能元素
  • 表单元素

结构元素: HTML5定义了一组新的语义化机构标记来描述网页内容。

  1. <header>:描述了文档的头部区域,于定义内容的介绍展示区域
  2. <nav>:定义导航链接的部分。
  3. <section>:定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分,section通常 包含了一组内容及其标题。
  4. <article>:定义独立的内容。
  5. <aside>:定义页面主区域内容之外的内容(比如侧边栏)。
  6. <figure>:标签规定独立的流内容(图像、图表、照片、代码等等)。
  7. <figcaption>:定义 <figure> 元素的标题。
  8. <footer>:述了文档的底部区域,一个页脚通常包含文档的作者,著作权信息,链接的使用条款,联系信息等。

 功能元素: 根据页面内容的功能需要,HTML5又新增了很多专用元素。

  1. hgroup元素:用于对整个页面或页面中一个内容区块的标题进行组合。
  2. figure元素:表示一段独立的流内容,一般表示文档主题流内容中的一个独立单元。
  3. video元素:定义视频,比如电影片段或其他视频流。
  4. audio元素:定义音频,比如音乐或其他音频流。
  5. embed元素:用来插入各种多媒体,格式可以是MIDI、WAV、AIFF、AU、MP3等。
  6. mark元素:主要用来在视觉上向用户呈现需要突出显示或高亮显示的文字。
  7. time元素:表示日期或时间,也可以同时表示两者。
  8. canvas元素:表示图形,如图表和其他图像。
  9. output元素:表示不同类型的输出,比如脚本的输出。
  10. source元素:为媒介元素定义媒介资源。
  11. menu元素:表示菜单列表。当希望列出表单控制时使用该标签。
  12. ruby元素:表示ruby注释。
  13. rt元素:表示字符的解释或发音。
  14. rp元素:在ruby解释中使用,以定义不支持ruby元素的浏览器所显示的内容。
  15. wbr元素:表示软换行。
  16. command元素:表示命令按钮,如单选按钮、复选框或按钮。
  17. details元素:表示用户要求得到并且可以得到的细节信息,可与summary 元素配合使用。
  18. datalist元素:可选数据的列表,与input元素配合使用,可以制作出输入值的下拉列表。
  19. datagrid元素:表示可选数据的列表,它以树形列表的形式来显示。
  20. keygen元素:表示生成密钥。
  21. progress元素:表示运行中的进程,可以使用progress来显示JavaScript中耗费时间的函数的进程。
  22. email:表示必须输入E-mail地址的文本输入框。
  23. url:表示必须输入URL地址的文本输入框。
  24. number:表示必须输入数值的文本输入框。
  25. range:表示必须输入一定范围内数字值的文本输入框。
  26. Date Pickers:HTML5拥有多个可供选取日期和时间的新型输入文本框。

表单元素: 通过type属性,HTML5为input元素新增了很多类型。

  1. tel: 格式<input type="tel"/>, 用于输入电话号码的文本框。
  2. search: 格式<input type="search"/>, 表示搜索文本框。
  3. url: 格式<input type="url"/>, 表示必须输入URL地址的文本框。
  4. email: 格式<input type="email"/>, 表示必须输入电子邮件地址的文本框。
  5. datetime: 格式<input type="datetime"/>, 表示日期和时间文本框。
  6. date: 格式<input type="date"/>, 表示日期文本框。
  7. month: 格式<input type="month"/>, 表示月份文本框。
  8. week: 格式<input type="week"/>, 表示周几文本框。
  9. time: 格式<input type="time"/>, 表示时间文本框。
  10. datetime-local: 格式<input type="datetime-local"/>, 表示本地日期和时间文本框。
  11. number: 格式<input type="number"/>, 表示必须输入数字的文本框。
  12. range: 格式<input type="range"/>, 表示范围文本框。
  13. color: 格式<input type="color"/>, 表示颜色文本框。

  这些新类型设计用户代理(浏览器)可以提供用户界面,如日历、日期选择器,或整合用户的地址簿,并提交到服务器的格式。它给用户一个更好的经验,因为在发送到服务器之前,进行输入类型检查,这意味着有更少的时间等待反馈。

6、HTML5 属性

 HTML5 的新的表单属性

本章讲解涉及 <form> 和 <input> 元素的新属性。

新的 form 属性:

  • autocomplete
  • novalidate

新的 input 属性:

  • autocomplete
  • autofocus
  • form
  • form overrides (formaction, formenctype, formmethod, formnovalidate, formtarget)
  • height 和 width
  • list
  • min, max 和 step
  • multiple
  • pattern (regexp)
  • placeholder
  • required

浏览器支持

Input typeIEFirefoxOperaChromeSafari
autocomplete 8.0 3.5 9.5 3.0 4.0
autofocus No No 10.0 3.0 4.0
form No No 9.5 No No
form overrides No No 10.5 No No
height and width 8.0 3.5 9.5 3.0 4.0
list No No 9.5 No No
min, max and step No No 9.5 3.0 No
multiple No 3.5 No 3.0 4.0
novalidate No No No No No
pattern No No 9.5 3.0 No
placeholder No No No 3.0 3.0
required No No 9.5 3.0 No

autocomplete 属性

autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。

注释:autocomplete 适用于 <form> 标签,以及以下类型的 <input> 标签:text, search, url, telephone, email, password, datepickers, range 以及 color。

当用户在自动完成域中开始输入时,浏览器应该在该域中显示填写的选项:

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get" autocomplete="on">
First name:<input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
E-mail: <input type="email" name="email" autocomplete="off" /><br />
<input type="submit" />
</form>

<p>请填写并提交此表单,然后重载页面,来查看自动完成功能是如何工作的。</p>
<p>请注意,表单的自动完成功能是打开的,而 e-mail 域是关闭的。</p>

</body>
</html>

autofocus 属性

autofocus 属性规定在页面加载时,域自动地获得焦点。

注释:autofocus 属性适用于所有 <input> 标签的类型。

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
User name: <input type="text" name="user_name" autofocus="autofocus" />
<input type="submit" />
</form>

</body>
</html>

form 属性

form 属性规定输入域所属的一个或多个表单。

注释:form 属性适用于所有 <input> 标签的类型。

form 属性必须引用所属表单的 id:

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get" id="user_form">
First name:<input type="text" name="fname" />
<input type="submit" />
</form>

<p>下面的输入域在 form 元素之外,但仍然是表单的一部分。</p>

Last name: <input type="text" name="lname" form="user_form" />

</body>
</html>

注释:如需引用一个以上的表单,请使用空格分隔的列表。

表单重写属性

表单重写属性(form override attributes)允许您重写 form 元素的某些属性设定。

表单重写属性有:

  • formaction - 重写表单的 action 属性
  • formenctype - 重写表单的 enctype 属性
  • formmethod - 重写表单的 method 属性
  • formnovalidate - 重写表单的 novalidate 属性
  • formtarget - 重写表单的 target 属性

注释:表单重写属性适用于以下类型的 <input> 标签:submit 和 image。

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get" id="user_form">
E-mail: <input type="email" name="userid" /><br />
<input type="submit" value="Submit" /><br />
<input type="submit" formaction="/example/html5/demo_admin.asp" value="Submit as admin" /><br />
<input type="submit" formnovalidate="true" value="Submit without validation" /><br />
</form>

</body>
</html>

注释:这些属性对于创建不同的提交按钮很有帮助。

height 和 width 属性

height 和 width 属性规定用于 image 类型的 input 标签的图像高度和宽度。

注释:height 和 width 属性只适用于 image 类型的 <input> 标签。

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
User name: <input type="text" name="user_name" /><br />
<input type="image" src="/i/eg_submit.jpg" width="99" height="99" />
</form>

</body>
</html>

list 属性

list 属性规定输入域的 datalist。datalist 是输入域的选项列表。

注释:list 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email, date pickers, number, range 以及 color。

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
Webpage: <input type="url" list="url_list" name="link" />
<datalist id="url_list">
    <option label="W3School" value="http://www.w3school.com.cn" />
    <option label="Google" value="http://www.google.com" />
    <option label="Microsoft" value="http://www.microsoft.com" />
</datalist>
<input type="submit" />
</form>

</body>
</html>

min、max 和 step 属性

min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定(约束)。

max 属性规定输入域所允许的最大值。

min 属性规定输入域所允许的最小值。

step 属性为输入域规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)。

注释:min、max 和 step 属性适用于以下类型的 <input> 标签:date pickers、number 以及 range。

下面的例子显示一个数字域,该域接受介于 0 到 10 之间的值,且步进为 3(即合法的值为 0、3、6 和 9):

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
Points: <input type="number" name="points" min="0" max="10" step="3"/>
<input type="submit" />
</form>

</body>
</html>

multiple 属性

multiple 属性规定输入域中可选择多个值。

注释:multiple 属性适用于以下类型的 <input> 标签:email 和 file。

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
Select images: <input type="file" name="img" multiple="multiple" />
<input type="submit" />
</form>

<p>当您浏览文件时,请试着选择多个文件。</p>

</body>
</html>

novalidate 属性

novalidate 属性规定在提交表单时不应该验证 form 或 input 域。

注释:novalidate 属性适用于 <form> 以及以下类型的 <input> 标签:text, search, url, telephone, email, password, date pickers, range 以及 color.

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get" novalidate="novalidate">
E-mail: <input type="email" name="user_email" />
<input type="submit" />
</form>

</body>
</html>

pattern 属性

pattern 属性规定用于验证 input 域的模式(pattern)。

模式(pattern) 是正则表达式。您可以在我们的 JavaScript 教程中学习到有关正则表达式的内容。

注释:pattern 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password。

下面的例子显示了一个只能包含三个字母的文本域(不含数字及特殊字符):

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
Country code: <input type="text" name="country_code" pattern="[A-z]{3}"
title="Three letter country code" />
<input type="submit" />
</form>

</body>
</html>

placeholder 属性

placeholder 属性提供一种提示(hint),描述输入域所期待的值。

注释:placeholder 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password。

提示(hint)会在输入域为空时显示出现,会在输入域获得焦点时消失:

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
<input type="search" name="user_search" placeholder="Search W3School" />
<input type="submit" />
</form>

</body>
</html>

required 属性

required 属性规定必须在提交之前填写输入域(不能为空)。

注释:required 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file。

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
Name: <input type="text" name="usr_name" required="required" />
<input type="submit" />
</form>

</body>
</html>

7、HTML5 全局属性

  HTML 属性能够赋予元素含义和语境。下面的全局属性可用于任何 HTML5 元素。

NEW:HTML 5 中新的全局属性。

属性描述
accesskey 规定访问元素的键盘快捷键
class 规定元素的类名(用于规定样式表中的类)。
contenteditable 规定是否允许用户编辑内容。
contextmenu 规定元素的上下文菜单。
dir 规定元素中内容的文本方向。
draggable 规定是否允许用户拖动元素。
dropzone 规定当被拖动的项目/数据被拖放到元素中时会发生什么。
hidden 规定该元素是无关的。被隐藏的元素不会显示。
id 规定元素的唯一 ID。
lang 规定元素中内容的语言代码。
spellcheck 规定是否必须对元素进行拼写或语法检查。
style 规定元素的行内样式。
tabindex 规定元素的 tab 键控制次序。
title 规定有关元素的额外信息。
posted @ 2018-07-31 00:57  左扬  阅读(715)  评论(0编辑  收藏  举报
levels of contents