注意目录和修改相同的字符编码

HTML5--语法

  一、标记方法

1、内容类型(ContentType)还是.text/html

2、声明:<!DOCTYPE html SYSTEM “about:legacy-compat”>

3、字符编码:<meta charset="UTF-8"  >

二、语法三要点:

1、可以省略标签的元素:

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

2、允许省略boolean值的属性

html5属性 语法描述
checked     checked="checked"        checked=""            checked
readonly  readonly="readonly"       readonly=""           readonly
disabled    disabled="disabled"        disabled=""            disabled
selected     selected="selected"        selected=""            selected
defer   defer="defer"                 defer=""                 defer
ismap      ismap="ismap"                ismap=""               ismap
nohref   nohref="nohref"               nohref=""              nohref
noshade  noshade="noshade"         noshade=""            noshade
nowrap  nowrap="nowrap"           nowrap=""              nowrap
multiple multiple="multiple"           multiple=""            multiple
noresize  noresize="noresize"         noresize=""            noresize

 

 

 

 

 

 

 

 

                               

                 

举例说明:

如果省略了属性本身,则表达为false;若省略的是属性值,则表达为true。                

以下属性值全为true:

<input type="checkbox" checked>

<input type="checkbox" checked="checked">

<input type="checkbox" checked="">

3、省略属性的引用符

可以用双引号或者单引号引用属性的值,只要属性值中不包括空格、<、>、'、"、‘、=等字符,都可以省略引用符。

举例说明:

<input type="text">                            <input type='text'>                             <input type=text>                               

三、新增元素

1、结构元素 

<section></section>定义文档或应用程序中的一个区段,如章节、页眉、页脚或文档的其他部分

一个section元素通常由内容和标题组成。

当一个容器要被直接定义样式或通过脚本定义行为时,推荐用div,不是section。

<article></article>表示文档中独立的一块内容,如博客、教程、故事、视频及脚本。

一个article元素通常有它自己的标题header,有时还有自己的脚注。

article元素可以嵌套使用。

article元素也可以用来表示插件,作用是使插件看起来像内嵌在页面中。如下所示:

<header></header>有引导和导航的作用。放置页面中一个内容区块或整个页面的标题,也可以包含内容,如搜索表单或logo。

一个页面可以有多个header元素。

在html5中,一个header元素通常包括至少一个heading元素,即h1~h6元素,也可以包括hgroup、table、from、nav元素。

hgroup元素:将标题与子标题分组的元素。

hgroup元素通常将h1~h6元素进行分组;若只有一个主标题,则不需要写hgroup元素。

           

<nav></nav>导航部分,主要放主要的、基本的链接。

一个页面可以有多个nav元素,该元素可以用于以下场合:

传统导航条(将当前页面跳转到网站的其他页面上),侧边栏导航(将当前页面或文章跳转到其他页面或文章中)、页内导航(在本页面的几个组成部分之间跳转)、翻页操作(在多个页面的上下页或博客网站的上下篇文章滚动)。

在html5中不能用menu来代替nav元素,因为menu元素是用在一系列发出命令的菜单上的,是一种交互性的元素,更准确的说是用在web应用程序中的。

<footer></footer>页面的脚注部分,一般包含作者姓名、创作日期、版权信息等。

一个页面可以包含多个footer元素,可以为article和section元素添加footer元素。

<address></address>用于当前article或文档的作者的详细联系方式。

                       

2、块级元素

<aside></aside>放置位于article元素外的相关内容,可以用于摘录引用或边栏的排版效果,用于广告或导航元素。。

aside元素主要有以下两种用法:

(1)被包含在article元素中作为主要内容的附属信息部分,可以是与当前文章相关的信息等。

(2)在article外使用,作为页面或站点全局的附属信息部分,比如侧边栏。

<figure></figure>一般表示文档主体流内容中的一个独立单元,使用<figcaption>为figure添加标题。     <figure><figcaption>...</figcaption></figure>

<dialog></dialog>定义对话。如:

                             对话中的每个句子都必须属于<dt> 标签定义的部分。

figure元素:块级图像元素。具有独立性。可以放图片,还可以给audio、video、iframe、embed元素添加说明。

                                     

figcaption元素:表示figure的标题,一个figure元素内只能放一个该元素。

                                   

3、行内元素

<mark></mark>用于在视觉上向用户呈现需要突显的文字,比如搜索关键词。

                         

mark、em、strong的区别:mark的目的是吸引用户的注意力,提供参考。em是作者为突出文章重点使用的。strong是原文作者用来强调一段文字的重要性的,譬如警告信息、错误信息等。

<time></time>表示日期或时间

<meter></meter>表示度量衡,仅用于已知最大值和最小值的度量。必须定义度量的范围,可以在元素文本或max/min属性中定义

<progress></progress>表示一个任务的完成进度

progress有两个属性值:value表示已经完成的工作量;max表示总共的工作量。

                            

     

4、多媒体元素         video(视频)                        audio(音频)

5、交互性元素

<details></details> 表示详细信息,提供一个展开/收缩区域。可与summary(提供标题或图例)配合使用。用户单击标题时,会显示details。

(1)没有sunmary情况:                                              (2)有sunmary情况:

                                                                   

  结果:                                                                                           结果:

                                                     

该元素并没有严格地限制于纯文本标记,它可以是一个登录表单、一段说明性的视频、以图形为源数据的一个表格,或者提供给使用辅助性技术的用户的一个表格式的结构说明。

details元素可以可选择地接受open属性,来确保页面载入的时候该元素是可以打开的。

<details open>

 <datagrid></datagrid>表示可选数据的列表,通常用于显示树列表

<menu></menu>表示菜单列表,通常用于列出表单控件

                                         

command元素:表示命令按钮,如单选按钮,复选框或按钮

                             

fieldset元素:将表单内的相关元素分组。

                                  

                          

output元素: 显示一些计算的结果或脚本等其他结果。必须从属于表单。

                                                  

                  

6、新增的input元素类型

email类型:用于包含e-mail地址的输入域

email类型的文本框具有multiple属性,表示允许输入多个email地址,且用逗号隔开。

url类型:用于包含url地址的输入域

 <input type="url" value="http://www.qq.com" />

number类型:用于包含数值的输入域

                       

range类型:用于包含一定范围内数字值的输入域

具有max和min属性,默认最小为0,最大为100。在Opera浏览器中,以滑动条方式进行值的指定;在Opera10中是输入文本的方式。

     

date pickers:数据检出器

search类型:用于搜索域,如站点搜索或google搜索。默认是圆角矩形文本框,firefox显示的依然是常规矩形。

                       

tel类型:用于input元素中输入电话号码,没有特殊校验规则,在实际开发中可以通过pattern属性指定输入电话格式进行验证。

                                                

color类型:提供颜色选择器,默认为黑色。

                               

日期和时间的输入类型:

date-----------日、月、年    该类型的input元素以日历的形式方便用户输入

 

   

month---------------月

 

week类型的input元素用来输入周号的文本框。

time--------------时间(小时和分钟)

                              

datetime------------日、月、年(UTC时间)    用来输入UTC日期和时间的文本框,且提交时对输入内容有效性检查。

time元素的机器可读部分是在datetime属性中的,格式有以下类型:

<time datetime="2011-10-12">2011年10月12日</time>

<time datetime="2011-10-12">10月12日</time>

<time datetime="2011-10-12T20:00">晚上8点</time>   日期与时间用T文字分开

<time datetime="2011-10-12T20:00Z">晚上8点</time>     Z表示给机器编码时使用UTC标准时间

<time datetime="2011-10-12T20:00+09:00">美国晚上8点</time>          加上了时差,表示向机器编码另一地区时间;若编码本地时间,则不需要加时差

datetime-local------------日、月、年(本地时间)      用来输入本地日期和时间的文本框,且提交时对输入内容有效性检查。

pubdate属性:布尔属性,表明哪个time元素代表了发布日期

如:<time datetime=2011-10-11 pubdate>2011年10月11日</time>

7、新增的属性

与表单相关的属性:

autocomplete:是否保存输入值以备使用。保护敏感用户数据,避免本地浏览器对它们进行不安全的存储。

有三个值:"on":显示指定候补输入值的数据列表。使用datalist元素和list属性提供候补输入值的数据列表,自动完成时,将该datalist元素中的数据作为候补输入数据在文本框                             中显示。

                   "off":不指定。

                    " ":使用浏览器默认值。

                  

适用于<form>标签,以及以下类型的<input>标签:text、search、url、telephone、email、password、date pickers、range、color。

autofocus:适用于所有<input>标签的类型,规定在页面加载时,域自动地获得焦点。

                            

一个页面只能有一个控件具有该属性。

list属性:该属性的值是datalist元素的id,datalist元素类似于select选择框,但是期望值不在选择列表内时,允许自己输入。

适用于以下类型的<input>标签:text、search、url、telephone、email、date pickers、number、range、color。

                                                                                                

                               

form override attributes:表单重写,允许用户重写form元素的某些属性设定,适用于以下类型的<input>标签:submit、image。

formaction-----重写action属性                  formenctype-----重写enctype属性                 formmethod-----重写method属性         

formnovalidate-----重写novalidate属性                                                                          formtarget-----重写target属性

height、width属性:  <input type="image" src="images/1.jpg" width="200" height="200"/>

min、max属性:规定输入值的范围。默认的min为0,max为100

                                         

step属性:为输入域规定合法的数字间隔(若step=“3”,则合法数是-3、0、3、6等)

       

step属性的值取决于控件的类型,对于range控件,step默认为1。

为配合step属性,html5引用的stepUp和stepDown两个函数,分别根据属性的值来增加或减少控件的值。

multiple属性:规定输入域中可选择多个值,适用于以下类型的<input>类型:email、file

novalidate属性:规定在提交表单时不应该验证form或input域,适用于<form>以及以下类型的input标签:text、search、url、telephone、email、password、date pickers、range、color。

pattern属性:用于验证input域的模式,模式是正则表达式。适用于以下类型的input标签:text、search、url、telephone、email、password。

                                      

                                

placeholder属性:提供一种提示(hint),描述输入域的期待值。适用于以下类型的input标签:text、search、url、telephone、email、password。

              

 required属性:必须填写的项。

                               

 该属性是最简单的一种表单验证方式。

适用于以下类型的input标签:text、search、url、telephone、email、password、date pickers、number、checkbox、radio、file。        

 与链接相关的属性:

 media属性:为a与area元素增加了media属性,该属性规定目标URL是为什么类型的媒介/设备进行优化的。只能在href属性存在时使用。

 hreflang、rel属性:为area元素增加了hreflang、rel属性,以保持与a、link元素的一致。

sizes属性:为link元素增加了新属性sizes。该属性可以与icon元素结合使用,以指定关联图标(icon元素)的大小。

target属性:为base元素增加了target属性,主要目的是保持与a元素的一致性,同时target元素由于在web应用程序中,尤其是在与iframe结合使用时,是非常有用的。

其他新增属性:

reversed属性:为ol元素增加reversed属性,它指定列表倒序显示。

         

charset属性:为meta元素增加charset属性。

type、label属性:为menu元素增加的属性。label属性为菜单定义了一个可见的标注,type属性让菜单可以以上下文菜单、工具条或列表菜单三种形式出现。

scoped属性:为style元素添加的属性,用来规定样式的作用范围,为script元素增加async属性,它定义脚本是否异步执行。

manifest属性:为html元素增加的属性,开发离线web应用程序时与API结合使用,定义一个URL,在这个URL上描述文档的缓存信息。为iframe元素增加sandbox、seamless、srcdoc三个属性,用来提高页面安全性,防止不信任的web页面执行某些操作。

全局属性:任何元素都适用的属性

contentEditable属性:允许用户编辑元素中的内容(该元素必须是可以获得鼠标焦点,且单击后向用户提供一个插入符号),它的值为布尔类型。

                                              

ondblclick="contentEditable=true" :表示双击后才可以编辑。

此外,该属性有个隐藏的inherir(继承)状态,若父元素可编辑,则子元素也是可编辑的。

iscontentEditable属性:为true是可编辑,为false是不可编辑。

 designMode属性:指定整个页面是否可以编辑,只能在js脚本里被编辑修改,该属性有两个值:off和on。       <body ondblclick="document.designMode='on';">

脚本指定该属性的方法:document.designMode="on"。

大部分浏览器支持designMode属性,而IE8不支持,但是IE9允许。

hidden属性:布尔值。不可见状态是true,可见状态是false。  hidden="true"相当于css中的display:non。

  

           

spellcheck属性:布尔型,告诉浏览器检查元素的拼写和语法。可以不写该属性,但是一旦书写,必须有值。支持该属性的浏览器有Chrome、Opera和Safari,IE与Firefox暂未支持。若是元素的readOnly属性或disabled属性设为true,则不执行拼写检查。

tabindex属性:用户使用键盘导航一个页面时,控制页面上的元素获得焦点的顺序。   

  tabindex有三个值:0 ,-1, 以及X(X里32767是界点,稍后说明)

  在IE中,tabindex范围在1到32767之间(包括32767);在FF、 Chrome无限制,不过一旦超出32768,顺序跟tabindex=0时一样。这个估计跟各个浏览器对int型的解析有关

  原本在Html中,只有链接a和表单元素可以被键盘访问(即使是a也必须加上href属性才可以),但是aria允许tabindex指定给任何html元素。

  当tabindex=0时,该元素可以用tab键获取焦点,且访问的顺序是按照元素在文档中的顺序来focus,即使采用了浮动改变了页面中显示的顺序,依然是按照html文档中的顺序来定位。

  当tabindex=-1时,该元素用tab键获取不到焦点,但是可以通过js获取,这样就便于我们通过js设置上下左右键的响应事件来focus,在widget内部可以用到。

  当tabindex>=1时,该元素可以用tab键获取焦点,而且优先级大于tabindex=0;不过在tabindex>=1时,数字越小,越先定位到。   

        

 

posted @ 2019-05-19 11:16  黑使  阅读(386)  评论(0编辑  收藏  举报