增的结构标签
section元素
表示页面中的一个内容区块,比如章节、页眉、页脚或页面的其他部分。可以和h1、 h2...等元素结合起来使用,表示文档结构。
例:HTML5中<section>...</section>;HTML4中<div>...</div>。
article元素
表示页面中一块与上下文不相关的独立内容。比如一篇文章。
aside元素
表示article元素内容之外的、与article元素内容相关的辅助信息。
header元素
表示页面中一个内容区块或真个页面的标题。
hgroup元素
表示对真个页面或页面中的一个内容区块的标题进行组合。
footer元素
表示整个页面或页面中一个内容区块的脚注。一般来说,他会包含创作者的姓名、创作日期以及创作者的联系信息。
nav元素
表示页面中导航链接的部分。
figure元素
表示一段独立的流内容,一般表示文档主体流内容中的一个独立单元。使用figcaption元素为figure元素组添加标题。
figure 定义媒介内容的分组, 以及它们的标题。
figcaption 定义 figure 元素的标题。
例如:
<figure>
<figcaption>PRC</figcaption>
<p>The People's Republic of China was born in 1949</p>
</figure>
HTML4中常写作
<dl>
<h1>prc</h1>
<p>The People's Republic of China was born in 1949</p>
</dl>
新增的其他元素
video元素
定义视频。像电影片段或其他视频流。例:
<video src="movie.ogg" controls="controls">video元素</video>
HTML4中写法:
<object type="video/ogg" data="move.ogv">
<param name ="src" value="movie.ogv">
</object>
audio元素
定义音频。如音乐或其他音频流。例:
<audio src ="someaudio.wav">audio元素</audio>
html4中写法:
<object tyle="application/ogg" data="someaudio.wav">
<param name ="src" value= "someaudio.wav">
</object>
embed元素
用来嵌入内容(包括各种媒体)。格式可以是Midi、Wav、AIFF、AU、MP3,flash等。例:<embed src="flash.swf" />
HTML4中代码示例<object data="flash.swf" type="application/x-shockwave-flash"><object>
mark元素
主要用来在视觉上向用户呈现哪些需要突出显示或高亮显示的文字。典型应用搜索结果中高亮显示搜素关键字。
HTML5<mark></mark>;HTML4 <span></span>。
progress元素
表示运行中的进程,可以使用progress元素显示JavaScript中耗时时间函数的进程。等待中……、请稍后等。<progress></progress>。
time元素
表示日期或时间,也可以两者同时。
ruby元素
定义 ruby 注释(中文注音或字符)。
与 <ruby> 以及 <rt> 标签一同使用。ruby 元素由一个或多个字符(需要一个解释/发音)和一个提供该信息的 rt 元素组成,
还包括可选的 rp 元素,定义当浏览器不支持 "ruby" 元素时显示的内容。
<ruby>
汉朝<rt><rp>(</rp>西汉和东汉<rp>)</rp></rt>
</ruby>
rt元素
定义字符(中文注音或字符)的解释或发音。
rp元素
在 ruby 注释中使用, 以定义不支持 ruby 元素的浏览器所显示的内容。
wbr元素
表示软换行。与br元素的区别:br元素表示此处必须换行;wbr表示浏览器窗口或父级元素足弓宽时(没必要换行时),
不换行,而宽度不够时主动在此处换行。
canvas元素
定义图形,比如图表和其他图像。<canvas> 元素只是图形容器(画布),必须使用脚本来绘制图形。
<canvas id="myCanvas"></canvas>
<script type="text/javascript">
var canvas=document.getElementById('myCanvas');
var ctx=canvas.getContext('2d');
ctx.fillStyle='#FF0000';
ctx.fillRect(0,0,80,100);
</script>
command元素 各版本浏览器支持有问题
表示命令按钮,比如单选按钮、复选框或按钮。
只有当 command 元素位于 menu 元素内时,该元素才是可见的。否则不会显示这个元素,但是可以用它规定键盘快捷键。。
<menu>
<command onclick="alert('Hello World')">
Click Me!</command>
</menu>
details标签
用于描述文档或文档某个部分的细节 。
可与 summary 标签配合使用,summary可以为 details 定义标题。
标题是可见的,用户点击标题时,会显示出 details。summary应该是details的第一个子元素。
<details>
<summary>迪丽热巴</summary>
<p>迪丽热巴(Dilraba),1992年6月3日出生于新疆乌鲁木齐市,中国内地影视女演员。</p>
</details>
fieldset标签
组合表单中的相关元素
fieldset 标签用于从逻辑上将表单中的元素组合起来。
legend 标签为 fieldset 元素定义标题。
<form>
<fieldset>
<legend>健康信息</legend>
身高:<input type="text" />
体重:<input type="text" />
</fieldset>
</form>
datalist标签
定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。
datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表。使用 input 元素的 list 属性来绑定 datalist。
<input id="myCar" list="cars" />
<datalist id="cars">
<option value="BMW">
<option value="Ford">
<option value="Volvo">
</datalist>
datagrid标签 如何用?
定义可选数据的列表。datagrid 作为树列表来显示。
如果把 multiple 属性设置为 true,则可以在列表中选取一个以上的项目。
keygen标签 如何用?
标签规定用于表单的密钥对生成器字段。
当提交表单时,私钥存储在本地,公钥发送到服务器。
<form action="demo_keygen.asp" method="get">
Username: <input type="text" name="usr_name" />
Encryption: <keygen name="security" />
<input type="submit" />
</form>
output标签
定义不同类型的输出,比如脚本的输出。
<form action="form_action.asp" method="get" name="sumform">
<output name="sum"></output>
</form>
source标签
标签为媒介元素(比如 <video> 和 <audio>)定义媒介资源。
menu标签
定义菜单列表。当希望列出表单控件时使用该标签。注意与nav的区别,menu专门用于表单控件。
<menu>
<li><input type="checkbox" />Red</li>
<li><input type="checkbox" />blue</li>
</menu>
abbr: 标记一个缩写
The <abbr title="People's Republic of China">PRC</abbr> was founded in 1949.
显示结果
The PRC was founded in 1949.
mark标签
定义有记号的文本。
<mark>有记号的文本</mark>
progress 定义任何类型的任务的进度。
<progress min="0" max="100" value="60"></progress>
记得在过去的Web前端开发中,如果你需要绘图或者生成相关图形的话,使用Flash可能是你唯一或者说最强大的实现方式,而在近些年的技术热点HTML5标准中,(画布)能够更加方便的帮助你实现2D绘制图形图像及其各种动画效果功能。
首先我们先来了解一下什么是HTML Canvas?
我们可以在HTML中使用属性width和height来定义Canvas。但是实现Canvas的相关功能主要还依赖于Javascript实现,即HTML5 Canvas API。我们使用javascript来访问和控制Canvas相关的区域,比如调用相关绘图的方法,用来动态的生成需要的动画或者图形。
接下来我们来看看canvas的特性:
互动性:Canvas支持互动,可以很好的响应用户的操作,我们可以通过Javascript来监键盘,鼠标,及其触摸设备相关事件。
动 画:任何被canvas绘制的图形都可以添加动画,简单的弹跳球或者复杂的HTML5游戏都可以实现
灵活性:开发人员可以使用Canvas来绘制任何的内容,比如,直线,图形,文字,图片等,可以包含动画或者不包含。同时你可以添加音频或者视频浏览器支持:几乎所有的现代浏览器都支持,并且被广泛的各种设备支持,例如,桌面,平板,智能手机等等。
流行度:canvas目前很流行,很多的开发人员都使用它来开发类似游戏或者绘图类应用
web标准:只需要有浏览器就可以运行,而非flash或者silverlight,需要安装相关的插件
开发一次,任何浏览器都可以运行(当然,不包括老式浏览器)
可以使用免费拥有大量的开发工具及其类库。
使用HTML5 Canvas我们能开发那些相关产品或者应用呢?
1 可视化数据: 各类统计图表,比如:百度的echart
2 场景秀:用Canvas实现动态的广告效果能够非常融洽的跨平台运行。如:手机中微产品.在移动端兼容性很好。
3 游戏:canvas在基于Web的图像显示方面比Flash更加立体、更加精巧,canvas成为HTML5小游戏开发首选。现阶段h5做游戏,营业方式不是很明确. 25 超棒的 HTML5 Canvas 游戏。
4 其他可嵌入网站的内容 (多用于活动页面、特效):类似图表、音频、视频,还有许多元素能够更好地与Web融合,并且不需要任何插件。
5 趋势=> 模拟器: 无论从视觉效果还是核心功能方面来说,模拟器产品可以完全由JavaScript来实现。模拟真实硬件环境,如移动端各种类型手机.
6 趋势=> 远程计算机控制: Canvas可以让开发者更好地实现基于Web的数据传输,构建一个完美的可视化控制界面。
7 趋势=> 图形编辑器: Photoshop图形编辑器将能够100%基于Web实现。
如何使用HTML5 Canvas?
使用HTML5 canvas其实非常简单, 每一个canvas都拥有一个上下文(context)。使用它你可以来调用相关的画布方法。
<canvas id="mycanvas" width="500" height ="400">
<p>您的浏览器不支持HTML5 Canvas</p>
</canvas>
以上代码我们在HTML中添加了一个canvas标签,如果浏览器不支持canvas,会显示<p>标签的内容,当然,如果你需要支持老式浏览器你也可以使用flash或者其它方法来做一个替代的解决方案。
var canvas = document.getElementById('mycanvas'),
context = canvas.getContext('2d');
以上代码我们通过canvas取到2D的context。
在HTML5 Canvas的2D结构中,坐标(0,0)在左上方,这和传统的坐标不太一样。大家需要注意一下,如下图所示:
save():保存当前环境的状态
restore():返回之前保存过的路径状态和属性
createEvent()
getContext():返回一个对象,指出访问绘图功能必要的API
toDateURL():返回canvas图像的URL
fillStyle:设置或返回用于填充绘画的颜色、渐变或模式
strokeStyle:设置或返回用于笔触的颜色、渐变或模式
shadowColor:设置或返回用于阴影的颜色
shadowBlur:设置或返回用于阴影的模糊级别
shadowOffsetX:设置或返回阴影距形状的水平距离
shadowOffsetY:设置或返回阴影距形状的垂直距离
createLinearGradient():创建线性渐变(用在画布内容上)
createPattern():在指定的方向上重复指定的元素
createRadialGradient():创建放射状/环形的渐变(用在画布内容上)
addColorStop():规定渐变对象中的颜色和停止位置
lineCap:设置或返回线条的结束端点样式
lineJoin:设置或返回两条线相交时,所创建的拐角类型
lineWidth:设置或返回当前的线段宽度
miterLimit:设置或返回最大斜接长度
fill():填充当前绘图(路径)
stroke():绘制已定义的路径
beginPath():起始一条路径,或重置当前路径
moveTo():把路径移动到画布中的指定点,不创建线条
closePath():创建从当前点回到起始点的路径
lineTo():添加一个新点,创建从该点到最后指定点的线条
clip():从原始画布剪切任意形状和尺寸的区域
quadraticCurveTo():创建二次贝塞尔曲线
bezierCurveTo():创建三次贝塞尔曲线
arc():创建弧/曲线(用于创建圆形或部分圆)
arcTo():创建两切线之间的弧/曲线
isPointInPath():如果指定的点位于当前路径中,返回布尔值
scale():缩放当前绘图至更大或更小
rotate():旋转当前绘图
translate():重新映射画布上的(0,0)位置
transform():替换绘图的当前转换矩阵
setTransform():将当前转换重置为单位矩阵,然后运行transform()
font:设置或返回文本内容的当前字体属性
textAlign:设置或返回文本内容的当前对齐方式
textBaseline:设置或返回在绘制文本时使用的的当前文本基线
fillText():在画布上绘制"被填充的"文本
strokeText():在画布上绘制文本(无填充)
measureText():返回包含指定文本宽度的对象
drawImage():向画布上绘制图像、画布或视频
Canvas的API-像素操作方法和属性
width:返回ImageData对象的宽度
height:返回ImageData对象的高度
data:返回一个对象,其包含指定的ImageData对象的图像数据
createImageData():创建新的、空白的I马哥Data对象
getImageData():返回ImageData对象,该对象为画布上指定的矩形复制像素数据
putImageData():把图像数据(从指定的ImageData对象)放回画布上
globalAlpha:设置或返回绘图的当前alpha或透明值
globalCompositeOperation:设置或返回新图像如何绘制到已有的图像上
直接使用Canvas来绘制图形相对来说比较乏味并且麻烦,所以在现代的HTML5 Canvas中我们使用一些现成的第三方类库帮助我们多快好省的实现图形绘制的功能:Echart.js
,只要会往`<canvas>`里面画一个长方形,就可以做出来这样子的效果,画比较多的正方形实现像素风头像生成器:
赶时间的客官可以直接去`正文开始`那里。
今天有个想法,整成手把手系列,就是假设客官是一个从来没有接触过网页编辑、代码、编程的新手。所以会说的比较详细,比较累赘,大神们笑笑点个赞就好了,哈哈。
我的想法(初心)是,将一个有兴趣写网页,但是不知道从何开始的人,通过几篇很小的实例,让他产生兴趣,跟出效果,形成自己动手去学习的动力,便是最好了。
所以,努力写得通俗易懂,简单直接,抛开别的因素,先实现出来再说,那时候学写代码的时候也是听师傅说“先有后优”,所以,粗糙点不管,能说明问题便好。
有客官对于我前面几天码的字,有反馈,有问题提出来,非常感谢有人搭理我。提出来的1,web字体设置的方法,2,响应式布局,3,网页上面音频播放的多浏览器兼容问题,4,不知从何入手学习一个东西...我都在拿着小本记下来,闲暇时间赶紧去搜集一些比较好的方法,尽力去更新分享这些方面的一小点经验,还请各位客官多多搭理我呀。
这里先把昨天最后那个小坑给添一下,那个响应式布局,是通过在CSS里面定义不同屏幕宽度时候使用不同的样式,直接帖代码出来吧:
@media screen and ( max-width: 1920px ) { div.content { height: 600px; width: 300px; float: left; padding-top: 97px; } div.sider { float: right; } body { width: 600.111111px; margin: 0 auto; } } @media screen and ( max-width: 720px ) { div { display: block; clear:both; height: auto; } div.content { display: block; height: auto; width: 100%; } div.sider { display: block; width: 100%; padding-bottom: 100px; } body { margin: 0; padding: 0; width: 100%; } }
在1920到720这么宽的时候,两个div左右浮动,在小于720的时候,两个div显示模式改为块级元素,宽度定义为100%,也就变成竖着排列了。就这样子。
接下来,正文开始:
1, 只用一个文件:`t.html`就好了,忘掉那些什么最佳实践,干就完了,新建文本文件,然后重命名成`t.html`,注意,重命名成网页之后,文件的图标会发生变化,不是以前文本文档时候的样子,如果图标没变,你极可能重命名成了`t.html.txt`这样子的,我的小视频里面有如何设置windows7显示扩展名,看看也是极好的。
2, 很简单的网页基本代码:
<!doctype html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>像素风头像生成器</title> </head> <body> <div id="wrapper"> <!--第一个注释,这里等下放画板(canvas标签)--> </div> <!--第二个注释,这里等下放javascript代码--> </body> </html>
复制上面的代码到`t.html`里面,然后保存,存成utf-8编码格式(实例001里面有个图片演示了怎么保存)。
3, 继续编辑`t.html`文件,在两个注释的地方,第一个放入`<canvas>`标签,同时给它样式,定义大小(宽500,高400),还有一个边框(1像素实心线奶奶灰色),`<canvas>标签中间的一句话,在不支持canvas标签的浏览器里面会被显示出来`:
<canvas id="myCanvas" width="500" height="400" style="border:1px solid #d3d3d3;"> 快看,这里有一个还在用IE6/8的老实人,大家快来~~ </canvas>
4, 第2步里面的第二个注释的位置,加入javascript代码,看代码注释理解语句的含义:
<script type="text/javascript"> //在html中用ID找到叫做`mycanvas`的画布,给它取名叫c var c = document.getElementById("myCanvas"); //通过这个c(刚才找到的画布),拿到一套可以画2D图片的基本工具, 取名叫ctx,可以理解成拿起一根画笔 var ctx=c.getContext("2d"); //给ctx这根画笔,蘸上橙色 ctx.fillStyle="orange"; //用ctx这根画笔,在x=100,y=90这个坐标位置,画一个长80,宽40的长方形 ctx.fillRect(100,90,80,40); </script>
效果:
在画布的左上角,坐标为0,0
大小位置标注:
嗯,就是这样
是不是很简单呀,在网上可以搜索`html5 canvas 基本开关`了解更多,不知客官可否通过这个别样的“画布”画出来一个五角星呢?欢迎挑战。
晚安
*请认真填写需求信息,我们会在24小时内与您取得联系。