html5笔记

html5:语义化的结构标签,"非革命性的发展"

html5的Doctype声明:
<!doctype html>
<!doctype html system "about:legacy-compat">

html5指定文件中的字符编码
<meta charset="utf-8">

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

html5对于具有boolean值的属性
对于具有boolean值的属性,例如disabled与readonly等,当只写属性而不指定属性值时,表示属性值为true,不使用该属性则默认为false

html5省略引号
当属性值不包括空字符串,"<",">","=",单引号,双引号等字符时,属性值两边的引号可以省略.如下:
<input type=text >

html5新增的结构元素
1>section元素表示页面中的一个内容区块,比如章节,或页面中的其他部分,可以与h1,h2,h3,h4等元素结合使用,标示文档结构
<section>...</section>
2>article元素,表示页面中的一块与上下文不相关的独立的内容,譬如博客中的一篇文章或报纸中的一篇文章
<article>...</article>
3>aside元素
aside元素表示article元素的内容之外的,与article元素的内容相关的辅助信息.
<aside>...</aside>
4>header元素表示页面中的一个内容区块或整个页面的标题
<header>...</header>
5>hgroup元素,用于对整个页面或页面中的一个内容区块的标题进行组合.
<hgroup>...</hgroup>
6>footer元素,表示整个页面或页面中的一个内容区块的脚注。一般来说,它会包含创作者的姓名,创作日期以及联系信息
<footer>...</footer>
7>nav元素表示页面中导航链接的部分
<nav></nav>
(html4中代码为:)
<ul></ul>
8>figure元素表示一段独立的流内容,一般表示文档文体流内容中的一个独立单元,使用figcaption元素为figure元素组添加标题
<figure>
<figcation>PRC</figcaption>
<p>The People‘s Republic of China was born in 1949...
</figure>
在html4中代码示例:
<dl>
<h1>PRC</h1>
<p>The People‘s Republic of China was born in 1949...</p>
</dl>

除了结构元素外,html5中新增的其它元素
1>video元素,定义视频,比如电影片段或其他视频流
<video src="movie.ogg" controls="controls">
video元素
</video>
2>audio元素定义音频,比如音乐或其他音频流
<audio src="someaudio.wav">
    audio元素
</audio>
3>embed元素,用来插入各种多媒体,格式是Midi,Wav,AIFF,AU,MP3等
<embed src="horse.wav" />
4>mark元素,主要用来在视觉上向用户呈现出那些需要突出显示或高亮显示的文字。其典型应用就是在搜索结果中向用户高亮显示搜索关键词.
<mark></mark>
5>progress元素,表示运行中的进程,可以使用progress元素来显示JavaScript中耗费时间的函数的进程
<progress>
<span id="objprogress">85</span>%
</progress>
6>time元素,表示日期或时间,也可以同时表示两者
<time></time>
7>ruby元素,表示ruby注释(中文注意或字符)
<ruby>
漢 <rt><rp>(</rp>ㄏㄢˋ<rp>)</rp></rt>
</ruby>
8>rt元素,表示字符(中文注音或字符)的解释或发音
<ruby>
 漢 <rt> ㄏㄢˋ </rt>
</ruby>
9>rp元素在ruby注释中使得,以定义不支持ruby元素的浏览器所显示的内容
<ruby>
漢 <rt><rp>(</rp>ㄏㄢˋ<rp>)</rp></rt>
</ruby>
10>wbr元素,表示软换行.wbr元素与br元素的区别是:br元素表示此处必须换行;而wbr元素的意思是浏览器窗口或父级窗口的宽度足够宽时(没必要换行时),不进行换行,而当宽度不够时,主动在此处进行换行.wbr元素好像对字符型的语言作用很大,但是对于中文,貌似没多大用处.
<p>To learn AJAX,you must be fmi<wbr>liar with the XMLHttp</wbr>
Request Object.</p>
11>canvas元素,表示图形,比如图表和其他图像。这个元素本身没有行为,仅提供一块画布,但它把一个绘图API展现给客户端JavaScript,以使脚本能够把想绘制的东西绘制到这块画布上
<canvas id=myCanvas width=200 height=200></canvas>
12>command元素,表示命令按钮,比如单选按钮,复选按钮
<command label="cut">
13>details元素,表示用户要求得到并且可以得到的细节信息。它可以与summary元素配合使用。summary元素提供标题或图例。标题是可见的,用户点击标题时,会显示出细节信息。summary元素应该是details元素的第一个子元素
<details>
    <summary>HTML 5</summary>
    This document teaches you eveything you have to learn about HTML 5
</details>
14>datalist元素,表示可选数据的列表,与input元素配合使用,可以制作出输入值的下拉列表
<datalist id="cars">
  <option value="BMW">
  <option value="Ford">
  <option value="Volvo">
</datalist>
15>datagrid元素,表示可选数据的列表,它以树形列表的形式来显示
<datagrid></datagrid>
16>keygen元素,表示生成密钥
<keygen>
17>output元素,表示不同类型的输出,比如脚本的输出
<output></output>
18>source元素,为媒介元素(比如<video>和<audio>)定义媒介资源.
<source>
19>menu元素,表示菜单列表,当希望列出表单控件时使用该标签
<menu>
    <li><input type=checkbox />Red></li>
    <li><input type=checkbox />Blue</li>
</menu>

新增的input元素的类型
1>email类型,表示必须输入E-mail地址的文本输入框
2>url类型,表示必须输入URL地址的文本输入框
3>range类型,表示必须输入一定范围内数字值的文本输入框
4>Date Pickers拥有多个可供选取日期和时间的新型输入文本框
date选取日,月,年
month选取月、年
week选取周和年
time选取时间(小时和分钟)
datetime选取时间、日、月、年(UTC时间)
datetime-local选取时间、日、月、年(本地时间)

废除的元素
1>能使用css替代的元素
对于basefont,big,center,font,s,strike,tt,u这些元素,由于它们的功能都是纯粹为画面展示服务的,而HTML5中提倡把画面展示性功能放在css样式表中统一编辑,所以将这些元素废除了
2>不再使用frame框架,只支持iframe框架,或者用服务器方创建的由多个页面组成的复合页面的形式,
3>只有部分浏览器支持的元素,对开applet,bgsound,blink,marquee等元素,由于只有部分浏览器支持这些元素,特别是bgsound元素以及marquee元素,只被Internet Explorer所支持,所以在HTML5中被废除,其中applet元素可由embed元素或object元素替代,bgsound元素可由audio元素替代,marquee可以由JavaScript编程的方式所替代
4>其他被废除的元素,
1.rb元素使用ruby元素替代
2.acronym,使用abbr元素替代
3.dir元素,使用ul元素替代
4.isindex,使用form元素与input元素相结合的方式替代
5.listing元素,使用pre元素替代
6.xmp元素,使用code元素替代
7.nextid元素,使用GUIDS替代
8.plaintext元素,使用"text/plian" MIME类型替代

新增的属性和废除的属性
1新增的属性
1.表单相关的属性
1>可以对input(type=text),select,textarea与button元素指定autofocus属性,它以指定属性的方式 让元素在画面打开时自动获得焦点
2>可以对input(type=text) 与textarea元素指定的placeholder属性,它会对用户的输入进行提示,提示用户可以输入的内容
3>可以对input,output,select,textarea,button与feildset指定from属性,声明它属于哪个表单,然后将其放置在页面上任何位置,而不是表单之内
4>可以对input(type=text)与textarea元素指定required属性,该属性表示在用户提交的时候进行检查,检查该元素内一定要有输入内容
5>为input元素增加了几个新的属性:autocomplete,min,max,multiple,pattern与step
6>为input元素与button元素增加了新属性formaction,formenctype,formmethod,formnovalidate与formtarget,他们可以重载from元素的action,enctype,method,novalidate与target属性.为fieldset元素增加了disabled属性,可以把它的子元素设为disabled(无效状态)
7>为input元素、button元素、form元素增加了novalidate属性,该属性可以取消提交时进行的有关检查,表单可以被无条件地提交
2.链接相关的属性
1>为a与area元素增加了media属性,该属性规定目标URL是为什么类型的媒介/设备进行优化的,只能在href属性存在时使用
2>为area元素增加了hreflang属性与rel属性,以保持与a元素、link元素的一致性
3>为link元素增加了sizes属性。该属性可以与icon元素结合使用(通过rel属性),该属性指定关联图标(icon元素)的大小
4>为base元素增加了target属性,主要目的是保持与a元素的一致性
3.其他属性
1>为ol元素增加了reversed属性,
2>meta元素增加charset属性
3>为menu元素增加了两个新的属性,type与label.label为菜单定义一个可见的标注,type属性让菜单可以以上下文菜单,工具条与列表菜单的三种形式出现
4>为style元素增加scoped属性,用来规定样式的作用范围
5>为script元素增加了async属性,定义脚本是否异步执行
6>为html元素增加manifest,开发离线Web应用程序时它与API结合使用,定义一个URL,在这个URL上描述文档的缓存信息
7>为iframe元素增加三个属性sandbox,seamless与srcdoc,用来提高页面安全性,防止不信任的Web页面执行某些操作

2废除的属性

四.全局属性
HTML5新增了一个"全局属性"的概念,指可以对任何元素都使用的属性.
一>.contentEditable属性
该属性值是一个布尔值属性,可以被指定为true或false
二>.designMode属性用来指定整个页面是否可编辑
该属性只能在JavaScript脚本里被修改。该 属性有两个值 "on"和"off".
修改方法: document.designMode="on"
三>.hidden属性,在HTML5中,所有的元素都有一个hidden属性.该属性类似于input元素中的hidden元素.
四>.spellcheck属性是HTML5针对input元素(type=text)与textarea这两个文本输入框提供的一个新属性,它的功能为对用户输入的文本内容进行拼写和语法检查。它书写在一个特殊的地方,就是必须明确声明属性值为true或false,书写方法如下
<textarea spellcheck="true">
<input type="text" spellcheck=false >
五>.tabindex属性,是开发中的一个基本概念,当不断敲击Tab键让窗口或页面中的控件获得焦点,对窗口或页面中的所有控件进行遍历的时候,每一个控件的tabindex表示该控件是第几个被访问到的.
如果,将元素的tabindex值设置为负数(如-1),则当按下Tab键时该元素就不能获得焦点了,但仍然可通过编程的方式让该元素获得焦点.


第三章,HTML5的主体结构元素
一.新增的主体结构元素
1>article元素代表文档,页面或应用程序中独立的、完整的、可以独自被外部引用的内容。它可以 是一篇博客或报刊中的文章、一篇论坛帖子、一段用户评论或独立的插件,或其他任何独立的内容.除了内容部分,一个article元素通常有它自己的标题(一般放在一个header元素里面),有时还有自己的脚注
e.g:
<article>
    <h1>My Fruit Spinner</h1>
    <object>
        <param name="allowFullScreen" value="true">
        <embed src="#" width=600 height=395></embed>
    </object>
</article>
2>section元素用于对网站或应用程序中页面上的内容进行分块。一个section元素通常由内容及标题组成(注意:标题部分位于它的内部,而不是它的前面)。但section元素并非一个普通的容器元素,如果一个容器需要被直接定义样式或通过脚本定义行为时,推荐使用div而非section元素
<section>
    <h1>苹果</h1>
    <p><b>苹果</b>.植物类水果,多次花果...("苹果" 文章正文)</p>
</section>
section元素没有标题是不合理的,但是nav元素或aside元素没有标题是合理的
最后,关于section元素的使用禁忌,总结如下:
(1)不要将section元素用作设置样式的页面容器,那是div元素的工作
(2)如果article元素、aside元素或nav元素更符合使用条件,不要使用section元素
(3)不要为没有标题的内容区块使用section元素
3>nav元素,是一个可以用作页面导航的链接组,其中的导航元素链接到其他页面或当前页面的其他部分。并不是所有的链接组都要被放进nav元素,只需要将主要的、基本的链接组放进nav元素即可.
nav元素可用于以下场合
(1)传统导航条
(2)侧边栏导航条
(3)页内导航,页内导航的作用是在本页面的几个主要的组成部分之间进行跳转
(4)翻页操作
注意:在html5中不要用menu元素代替nav元素,menu元素是用在一系列发出命令的菜单上的,是一种交互性的元素,常使用在Web应用程序中
4>aside元素用来表示当前页面或文章的附属信息部分,它可以包含当前页面或主要内容相关的引用、侧边栏、广告、导航条,以及其他类似的有别于主要内容的部分
5>time元素与微格式,微格式是一种利用html的class属性来对网页添加附加信息的方法,time元素明确地对机器的日期和时间进行编码,并且以让人易读的方式来展现它
<time datetime="2010-11-13">2010年11月13日</time>
编码时机器读到的部分在datetime属性里,而元素开始标记和结束标记中间的部分则显示在网页上.datetime属性中日期与时间之间要用"T"文字分隔
6>pubdate属性是一个可选的、boolean值的属性,它可以用到article元素中的time元素上,意思是time元素代表了文章(article元素的内容)或整个网页的发布日期

二.新增的非主体结构元素
1>header元素是一种具有引导和导航作用的结构元素,通常用来旋转整个页面或页面内的一个内容区块的标题,但也可以包含其他内容,例如数据表格、搜索表单或相关的logo图片
header元素通常包括至少一个heading元素(h1-h6),或包括hgroup元素,或包括其他元素(table或form),还可以包括nav元素
2>hgroup元素是将标题及子标题进行分组的元素。通常会将h1-h6元素进行分组。譬如一个内容区块的标题及其子标题算一组
<article>
    <header>
        <hgroup>
            <h1>文章标题</h1>
            <h2>文章子标题</h2>
            <p><time datetime="2010-03-20">2010年10月29日</time></p>
        </hgroup>
    </header>
</article>
3>footer元素可以作为其上层父级内容区块或是一个根区块的脚注。footer通常包括其相关区块的脚注信息,如作者、相关阅读链接及版权信息等
<section>
    <h2>分段内容</h2>
    <p>内容...</p>
    <footer>
        分段内容的脚注...
    </footer>
</section>
4>address元素用来在文档中呈现联系信息,包括文档作者或文档维护者的名字、他们的网站链接、电子愚笨、真实地址、电话号码等。
<footer>
    <div>
        <address>
            <a title="文章作者:陆毅" href="http://blog.sina.com.cn/luyi"
                陆毅
            </a>
            发表于<time datetime="2010-10-04">2010年10月4日</time>
        </address>
    </div>
</footer>

三.HTML5结构
1>大纲,简单来说是文档中各内容区块的结构编排。内容区块可以使用标题元素(h1-h6)来展示各级内容区块的标题。综合运用各级内容区块的标题创建好文档的目录后,该目录就是一个大纲了
关于内容区块的编排,可分为"显示编排" 与"隐匿编排"两种方式
(1)显式编排批明确使用section等元素创建文档结构,在每个内容区块内使用标题(h1-h6,hgroup等)
(2)隐式编排内容区块,指不明确使用section等元素,而是根据页面中所书写的各级标题(h1-h6,hgroup)等把内容区块自动创建出来。因为html5分析器只要看到书写了某个级别的标题,就会判断存在相应的内容区块。
(3)标题分级,h1级别最高,h6级别最低
为了使用文档结构清晰,请尽量使用显式编排
(4)不同的内容区块可以使用相同级别的标题
2>对新的结构元素使用样式
我们需要使用css追加如下声明,
(1)
追加block声明
article,aside,dialog,figure,footer,header,legend,nav,section{display:block;}
然后就可正常使用样式
nav{float:left;width:20%}
article{float:right;width:79%}
(2)IE8及之前的浏览器不支持用css的方法使用这些尚未支持的结构元素,需要使用JavaScript脚本,如下所示:
<script>
document.createElement("header");
document.createElement("nav");
document.createElement("article");
document.createElement("footer");
</script>
3>article元素的样式
一个网页中可能有多个独立的article元素,每一个article元素都允许有自己的标题与脚注,并允许对自己的从属元素单独使用样式。
如:
header{display:block;color:red;text-align:right;}
article header{color:blue;text-align;center}


第61页 第4单表单与文件

html5笔记,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。