HTML5笔记1——HTML5的发展史及标签的改变

    记得第一次接触HTML5还是在《联信永益》实习那会儿(2011),当时一个项目技术选型的时候面临两种选择,分别是Silverlight和HTML5,那是用的最新的IE浏览器版本还是IE9,而IE9才刚刚开始支持HTML5。后来考虑到当时各个版本的浏览器对HTML5的支持都不怎么好,最终公司还是选择了Silverlight,想不到多年以后Silverlight没落了,HTML5却随着移动互联网的兴起而焕发出强大的活力。

    在庆幸自己当年没有选择进Silverlight小组的同时,也不由得担忧,微软的脚步太快了,跟着它走一不小心就容易扯着蛋。每次微软新弄出来一项什么技术,总是大肆宣传和推广,可往往几年不到,就采用一种新的技术,可以完全替代过去的技术,然后还要安慰广大开发者说新的YY不会替代旧的XX,而实际情况可能就是微软其实已经在默默准备甚至已经开始停止更新XX技术了。

    微软就像一盒巧克力,你永远不知道他下一步要新弄出来什么技术,也永远不知道,他的哪一项技术什么时候被遗弃。

HTML5的发展路程

一路走来,我们回顾一下HTML的发展之路

  • HTML1.0 – 在1993年6月发为互联网工程工作小组(IETF)工作草案发布(并非标准)
  • HTML 2.0 –1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时
  • HTML 3.2 –1996年1月14日,W3C推荐标准
  • HTML 4.0 –1997年12月18日,W3C推荐标准
  • HTML 4.01(微小改进) – 1999年12月24日,W3C推荐标准
  • ISO/IEC 15445:2000("ISO HTML")—2000年5月15日发布,基于严格的HTML 4.01语法,是国际标准化组织和国际电工委员会的标准
  • XHTML 1.0 – 发布于2000年1月26日,是W3C推荐标准,后来经过修订于2002年8月1日重新发布
  • XHTML 1.1 – 于2001年5月31日发布
  • XHTML 2.0

HTML的BOSS们

W3C: World Wide Web Consortium     万维网联盟

         从HTML1.0到HTML4.01

         从XHTML1.0-XHTML2.1

WHATWG: Web Hypertext Application Technology Working Group      (Web 超文本应用技术工作组 - WHATWG)

HTML 5是什么

HTML 5 ≈ HTML+CSS 3+Javascript+API

标准的改变

标准的改变--不是SGML和XML

1、HTML5 并不是定义为SGML或者XML的应用程序。

2、在HTML5中并不存在有效性检查,取而代之的是用规范来检测规范的一致性

3、HTML5的DTD声明中不需要使用DTD文件

4、拥有十分松散的编写手法,但不是没有底线

标准的改变—松散的语法

p  不允许写的结束符的标签:

area、base、br、col、command、Embed、hr、img、input、keygen、link、meta、param、source、Track、wbr

p  可以Q省略结束符的标签:

li、dt、dd、p、rt、optgroup、option、Colgroup、thread、tbody、tr、td、th

p  可以完全省略的标签:

html、head、body、colgroup、tbody

标准的改变—HTML5的未来

对于HTML5来说,既是一种进步,也是一种妥协。

HTML5诞生之初的目的就是为了向下兼容。所以我们大可不必为了HTML5来临而恐慌,因为:

HTML5支持松散的语法。

         这种语法极大地兼容了编程人员的不规范代码,同时保证渲染的效果不会改变。

         HTML4.01版本及语法依然有效。

HTML5也没有认为XHTML是错误的。(XHTML5)

         这种语法既支持XML的简洁标记,也认为XML的编写方式是正确的

         XHTML版本及严格的XML编写都是有效的。        

支持HTML5的浏览器

目前支持HTML5的浏览器有:

HTML5的推广网站

http://www.html5cn.org/

http://www.html5china.com/

http://www.runoob.com/html/html5-intro.html/

HTML标签的改变

HTML标签的改变

  1. 新的文档类型声明(DTD)
  2. 新增的HTML5标签
  3. 删除的HTML标签
  4. 重新定义的HTML标签
  5. 崭新新的页面布局

1、 新的文档类型声明(DTD)

文档类型声明

HTML 5的DTD声明为:

    <!doctype html>

    <!DOCTYPE html >等也是正确的,因为HTML语法是不区分大小写的。

在编写HTML5文档时,要求指定文档类型,以确保浏览器能在HTML5的标准模式下进行渲染。在我们用VS新建html页面时,VS都会再HTML界面中自动添加<!DOCTYPE html>标签。

2、新增的HTML5标签

新增的HTML5标签-结构标签

结构标签:(块状元素) 有意义的div

         <article>  标记定义一篇文章

         <header> 标记定义一个页面或一个区域的头部

         <nav>               标记定义导航链接

         <section>          标记定义一个区域

         <aside>   标记定义页面内容部分的侧边栏

         <hgroup> 标记定义文件中一个区块的相关信息

         <figure> 标记定义一组媒体内容以及它们的标题    

         <figcaption>     标签定义 figure 元素的标题。

         <footer>          标记定义一个页面或一个区域的底部

         <dialog>   标记定义一个对话框(会话框)类似微信

新的结构标签带来的是网页布局的改变及提升对搜索引擎的友好

新增的HTML5标签-多媒体标签

多媒体交互标签

         <video> 标记定义一个视频

         <audio> 标记定义音频内容

         <source> 标记定义媒体资源

         <canvas> 标记定义图片

         <embed> 标记定义外部的可交互的内容或插件 比如flash

HTML5的多媒体标签的出现意味着富媒体的发展以及支持不使用插件的情况下即可操作媒体文件,极大地提升了用户体验

新增的HTML5标签-Web应用标签

<menu>命令列表

<menuitem>menu命令列表标签 FF(嵌入系统)

<command> menu标记定义一个命令按钮

<meter>状态标签(实时状态显示:气压、气温)C、O

<progress>状态标签 (任务过程:安装、加载) C、F、O

<datalist> 为input标记定义一个下拉列表,配合option F、O

<details> 标记定义一个元素的详细内容 ,配合dt、dd   C

新增的HTML5标签-其他标签

注释标签

<ruby> 标记定义 注释或音标

<rp> 告诉那些不支持 Ruby元素的浏览器如何去显示

<rt> 标记定义对ruby的注释内容文本

其他标签

<keygen> 标记定义表单里一个生成的键值(加密信息传送)O、F

<mark> 标记定义有标记的文本 (黄色选中状态)

<output> 标记定义一些输出类型,计算表单结果配合oninput事件

<time> 标记定义一个日期/时间 目前所有主流浏览器都不支持

3、删除的HTML标签

纯表现的元素:

basefont,big,center,font, s,strike,tt,u;

对可用性产生负面影响的元素:

frame,frameset,noframes;

产生混淆的元素:

acronym ,applet,isindex,dir。

4、重新定义的HTML标签

HTML元素

HTML5中的意义

<b>

代表内联文本,通常是粗体,没有传递表示重要的意思

<i>

代表内联文本,通常是斜体,没有传递表示重要的意思

<dd>

可以同details与figure一同使用,定义包含文本,dialog也可用

<dt>

可以同details与figure一同使用,汇总细节,dialog也可用

<hr>

表示主题结束,而不是水平线,虽然显示相同

<menu>

重新定义用户界面的菜单,配合commond或者menuitem使用

<small>

表示小字体,例如打印注释或者法律条款

<strong>

表示重要性而不是强调符号

5、崭新新的页面布局

传统div+CSS页面布局方式

 

HTML5布局方式

 

Demo代码如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><style type="text/css">header {height: 50px;background-color: lightblue;}border {width: 1px;color: blue;}nav {width: 100%;height: 30px;background-color: lightblue;line-height: 30px;}nav ul li {width: 120px;float: left;}section {float: left;width: 70%;height: 500px;}aside {float: left;width: 28%;height: 500px;}footer {width: 100%;height: 30px;line-height: 30px;clear: both;background-color: black;color: white;text-align: center;}</style>
</head>
<body><header>这里是头部</header><nav><ul><li>首页</li><li>文章</li><li>日记</li><li>相册</li></ul></nav><div><section><article><h2>李白:春思</h2><small>作者:李白</small>燕草如碧丝,秦桑低绿枝。当君怀归日,是妾断肠时。春风不相识,何事入罗帏?</article><details><summary>杜甫:望岳</summary><mark>作者:杜甫</mark><dd>岱宗夫如何,齐鲁青未了。</dd><dd>造化钟神秀,阴阳割昏晓。</dd><dd>荡胸生层云,决眦入归鸟。</dd><dd>会当凌绝顶,一览众山小。</dd></details><span contextmenu="candan">右键单击进入百度</span><menu type="context" id="candan"><menuitem label="百度" οnclick="alert('这是百度官网')" icon="http://www.baidu.com/img/baidu_sylogo1.gif"></menuitem></menu><meter min="0" max="10" value="5" low="3" high="7"></meter><progress max="100" value="0" id="pro"></progress><hr /><ruby>邹<rp>(</rp><rt>zou</rt><rp>)</rp></ruby></section><aside><article><h2>陈子昂:登幽州台歌</h2>《登幽州台歌》 作者:陈子昂前不见古人,后不见来者。念天地之悠悠,独怆然而泪下。【注解】: 、幽州:古十二州之一,现今北京市。 、悠悠:渺远的样子。 、怆然:悲伤凄凉。 、泪:眼泪。【韵译】:先代的圣君,我见也没见到, 后代的明主,要等到什么时候?想到宇宙无限渺远,我深感人生短暂, 独自凭吊,我涕泪纵横凄恻悲愁!</article><hr /><dialog><dt>唐僧:悟空,你又调皮了,观音姐姐的月光宝盒怎么能乱扔呢?</dt><dd>悟空:...(看着)</dd></dialog><p>热门</p><hgroup><h3>2016年最流行粤语歌曲</h3><h3>2016年最热门的事件</h3></hgroup></aside></div><footer>版权所有 @2016</footer><script>var pro = document.getElementById('pro');setInterval(function () {pro.value += 1;}, 100);</script>
</body>
</html>

Demo运行结果如下:

注意:代码没有完全按照图上面来,因为一般而言,在整个界面header和footer标签最好只放一个,还有h1标签也是,这样做的目的是方便搜索引擎进行识别。

Div和新结构标签的区别和意义

所有的HTML5结构标签本质上来说就是一个div标签,只不过给它们赋予了特殊的意义,让人一眼就能看明白,这个标签表示什么意思,仅此而已。

个人学习经验:学HTML5和学HTML以及CSS、JS一样,在于多写多练,熟能生巧。很少有其它行业像IT行业一样技术更新那么快,我们应该有选择有目的的学习,区分哪些是要牢记的,哪些只需了解的,哪些可以直接不学的。学习任何一门技术,都几乎不可能把其所有的东西都学会,且不说它本身就是在不断变化和完善的,当然,除非你天赋异禀。其实许多东西,都不需要记住,因为我们可以查文档就可以了,但是一些出现频率很高的,还是要记住,总不能每次要用的时候都去查文档吧,那样太影响工作效率。我认为学习也是一种投资,既然如此,那肯定得学有价值的东西。在我看来,如果说学的东西一生都用不上,我觉得那就是就是学无所用,浪费光阴。

转载于:https://www.cnblogs.com/jiekzou/p/6227213.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华兴数控g71外圆循环编程_数控车床加工编程典型实例分析(西门子802S数控系统)...

这是一篇带有教学色彩的习作&#xff0c;文章对数控编程的方式和步骤进行了简明的阐述&#xff0c;并针对一个典型零件的数控车削加工给出了一套程序。程序是以西门子802S数控系统为例编写的。数控机床是一种技术密集度及自动化程度很高的机电一体化加工设备&#xff0c;是综合…

参数变化_风机盘管参数变化对性能造成的影响

参数变化对性能造成的影响:1、风机盘管风量一定&#xff0c;供水温度一定&#xff0c;供水量变化时&#xff0c;制冷量随供水量的变化而变化&#xff0c;根据部分风机盘管产品性能统计&#xff0c;当供水温度为7℃&#xff0c;供水量减少到80%时&#xff0c;制冷量为原来的92%左…

疲劳驾驶监测方案_【Nano Energy】TENG用于驾驶员驾驶状态监测

01研究背景研究表明&#xff0c;驾驶员的疲劳和分心会降低其感知能力和对汽车控制的决策能力。大约20%车祸和30%致命车祸的原因是由于驾驶员疲劳和注意力不集中造成的&#xff0c;同时也会导致单车撞击事故和大型车撞击事故发生率上升到50%。因此通过建立智能交通系统(ITS)来提…

后缀用什么打开_茅台酒瓶口的珠子有什么用,取出来能多倒一杯酒?打开方法教给你...

茅台酒瓶口的珠子有什么用&#xff0c;取出来能多倒一杯酒&#xff1f;打开方法教给你。喝过茅台酒的人都知道&#xff0c;在茅台酒的瓶口处有一个特别的设计&#xff0c;就是里面放里2个珠子&#xff0c;摇晃的时候能听到声音。那么茅台酒的瓶口为什么要放2颗珠子&#xff1f;…

计算传递函数乘法_软件开发教程:计算机科学最重要的32个算法

软件开发的根本在于解决各种业务功能需要&#xff0c;实现数字化和自动化&#xff0c;而算法(Algorithm)是对解决方案的准确而完整的描述&#xff0c;是一系列解决问题的清晰指令。算法代表着用系统的方法描述解决问题的策略机制。在计算机科学领域有32个重要的算法需要研究。简…

目标检测排行榜_3D领域重大突破!大华股份人工智能取得KITTI Object 3D车辆检测排行榜第一名...

[导读]近日&#xff0c;大华股份基于深度学习技术研发的3D目标检测技术&#xff0c;刷新了The KITTI Vision Benchmark Suite中3D车辆类目检测任务(3D Object Detection Evaluation)排行榜&#xff0c;取得了3D车辆类目检测第一名&#xff0c;这标志着大华股份的人工智能技术在…

mysql aes encrypt_mysql加密函数aes_encrypt()和aes_decrypt()使用教程

aes_encrypt()和aes_decrypt()在mysql中是进行加密了&#xff0c;我们今天一起来和各位看看关于mysql中aes_encrypt()和aes_decrypt()函数的使用例子&#xff0e;如果你需要对mysql某些字段进行加解密的话,使用mysql的加解密函数可能比程序中处理更方便.mysql-encrypt-funcs.pn…

python执行到input后执行下一程序_Python基础知识储备,如何开关一个while循环

一、什么是循环循环语句就是在某种条件下&#xff0c;一遍一遍重复的执行某个动作。如&#xff1a;从1加到100&#xff0c;重复执行加法的动作&#xff0c;就需要用到循环。二、循环的三要素虽然循环是反复的执行某个动作&#xff0c;但是循环也会停止的&#xff0c;没有停止的…

Intellij idea添加单元测试工具

1.idea 版本是14.0.0 &#xff0c;默认带有Junit&#xff0c;但是不能自动生成单元测试&#xff0c;需要下载JunitGererator2.0插件 2.Settings -Plugins&#xff0c;下载 JunitGenerator V2.0插件 &#xff0c;我的是已经下载好的。下载后提示需要重启 3.下载后 点击需要测试的…

JPA 系列教程21-JPA2.0-@MapKeyColumn

MapKeyColumn 用JoinColumn注解和MapKeyColumn处理一对多关系 ddl语句 CREATE TABLE t_employee (id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8;CREATE TABLE t_employee_map…

错误:在keystone中无法找到默认角色user_Kubernetes RBAC角色权限控制

摘选:https://i4t.com/4448.html在Kubernetes中所有的API对象都保存在ETCD里&#xff0c;可是&#xff0c;对这些API对象的操作&#xff0c;却一定是通过访问kube-apiserver实现的。我们需要APIServer来帮助我们授权工作&#xff0c;而在Kubernetes项目中&#xff0c;负责完成授…

JAVAWEB项目如何实现验证码

验证码基础 一.什么是验证码及它的作用 &#xff1a;验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答.可以防止恶意破解密码、刷票、论坛灌水、有效防止某个黑客对某一个特定…

在线判题系统(oj)效果分析图_在线代码编写平台开发分享

计算机专业的大学生应该都了解acm比赛&#xff0c;这种通过使用oj(online judge)系统在线编程刷题&#xff0c;实时反馈学习排名的方式能很大程度激发学生的学习热情。oj学习排名界面oj个人学习记录界面只是oj平台一般都只适用后端语言&#xff0c;如java&#xff0c;c#, c,C&a…

BZOJ1298:[SCOI2009]骰子的学问

Description Input 第一行为两个整数n, m。第二行有n个整数&#xff0c;为a1&#xff0c;a2, …, an。 Output 包含n行&#xff0c;每行m个1~nm的正整数&#xff0c;各不相同&#xff0c;以空格分开。如果有多解&#xff0c;输出任意一组解&#xff1b;如果无解&#xff0c;输出…

mysql索引有字符集_07. 类型、字符集、引擎和索引

字符集是什么&#xff1f;为了更好的识别中文、日文、英文、希腊语。对于常用的符号进行了编码&#xff0c;这个编码就是字符集。字符集确定了文字的存储方式。字符集相当于是计算机中人类的语言。举个例子&#xff1a;我说的是英文&#xff0c;所以我存储的时候要用英文文字来…

new float查询长度 c++_C/C++经典面试题

面试题 1&#xff1a;变量的声明和定义有什么区别 为变量分配地址和存储空间的称为定义&#xff0c;不分配地址的称为声明。一个变量可以在多个地方声明&#xff0c; 但是只在一个地方定义。加入 extern 修饰的是变量的声明&#xff0c;说明此变量将在文件以外或在文件后面部分…

java8--IO(java疯狂讲义3复习笔记)

产生文件 File file new File("abc.txt");if(!file.exists()){System.out.println(file.exists());file.createNewFile();}System.out.println(file.getAbsolutePath()); 关于临时文件 1).放在指定目录,此时已项目为默认目录 File file File.createTempFile("…

python网络平台_python学习(九) 网络编程学习--简易网站服务器

python 网络编程和其他语言都是一样的&#xff0c;服务器这块步骤为&#xff1a;1. 创建套接字2. 绑定地址3. 监听该描述符的所有请求4. 有新的请求到了调用accept处理请求Python Web服务器网关接口(Python Web Server Gateway Interface&#xff0c;简称“WSGI”)&#xff0c;…

rabbit和mysql事务_分布式事务原理及SpringBoot整合RabbitMQ实现可靠事件,TCC事务模型及接口幂等性...

分布式事务我们知道在单数据库系统中&#xff0c;实现数据的一致性&#xff0c;通过数据库的事务来处理比较简单。在微服务或分布式系统中&#xff0c;各个独立的服务都会有自己的数据库&#xff0c;而不是在同一个数据库中&#xff0c;所以当一组事务(如商品交易中&#xff0c…

python pandas 数据库_Python中pandas函数操作数据库

一&#xff1a;创建链接数据库引擎Pythonfrom sqlalchemy import create_engineengine create_engine(postgresql://user58.251.157.179:port/database,echo True)echo True &#xff0c;会显示在加载数据库所执行的SQL语句。12345fromsqlalchemyimportcreate_engineenginecr…