王培顺的博客&WangPeishun’s Blog

分类 爱分享 下的文章

Dream It Possible

一首很励志的歌,很动人的调子。很美的词。

I will run, I will climb, I will soar.
我奔跑,我攀爬,我会飞翔。
I'm undefeated
永不言败
Jumping out of my skin, pull the chord
跳出我的皮肤,拨弄琴弦
Yeah I believe it
哦,我相信。
The past, is everything we were don't make us who we are
往昔,逝去的光阴不会决定现在
So I'll dream, until I make it real, and all I see is stars
所以我们梦想,直到变成真,看到满天星光
It's not until you fall that you fly
不怕跌倒,所以飞翔
When you dreams come alive you're unstoppable
当你的梦想成真,你是不可阻挡
Take a shot, chase the sun, find the beautiful
挥着翅膀,追逐太阳,寻找美丽
We will glow in the dark turning dust to gold
在黑暗中闪耀点石成金
And we'll dream it possible
我们会梦想成真
I will chase, I will reach, I will fly
我追逐,我奔驰,我要飞翔
Until I'm breaking, until I'm breaking
直到坠落,直到崩溃
Out of my cage, like a bird in the night
走出我的囚笼,像在黑夜里的莺
I know I'm changing, I know I'm changing
我知道我在变化,在蜕变
In,into something big, better than before
变成无比强大,从未有过
And if it takes, takes a thousand lives
如果需要牺牲,需要无数的生命
Then it's worth fighting for
那值得去奋斗
It's not until you fall that you fly
不怕跌倒,所以飞翔
When you dreams come alive you're unstoppable
当你的梦想成真,你是不可阻挡
Take a shot, chase the sun, find the beautiful
挥着翅膀,追逐太阳,寻找美丽
We will glow in the dark turning dust to gold
在黑暗中闪耀点石成金
And we'll dream it possible
我们会梦想成真
From the bottom to the top
从山谷到巅峰
We're sparking wild fire's
我们正在迸发野火
Never quit and never stop
永不放弃,永不停止
The rest of our lives
点燃未来
From the bottom to the top
从山谷到巅峰
We're sparking wild fire's
我们正在迸发野火
Never quit and never stop
永不放弃,永不停止
It's not until you fall that you fly
不怕跌倒,所以飞翔
When you dreams come alive you're unstoppable
当你的梦想成真,你是不可阻挡
Take a shot, chase the sun, find the beautiful
挥着翅膀,追逐太阳,寻找美丽
We will glow in the dark turning dust to gold
在黑暗中闪耀点石成金
And we'll dream it possible
我们会梦想成真

1.document.write(""); 输出语句

2.JS中的注释为//

3.传统的HTML文档顺序是:document->html->(head,body)

4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)

5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value)

6.一个小写转大写的JS: document.getElementById("output").value = document.getElementById("input").value.toUpperCase();

7.JS中的值类型:String,Number,Boolean,Null,Object,Function

8.JS中的字符型转换成数值型:parseInt(),parseFloat()  //与104、105重复

9.JS中的数字转换成字符型:(""+变量)

10.JS中的取字符串长度是:(length)

11.JS中的字符与字符相连接使用+号.

12.JS中的比较操作符有:==等于,!=不等于,>,>=,<.<=

13.JS中声明变量使用:var来进行声明

14.JS中的判断语句结构:if(condition){ }else{ }

15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop}

16.循环中止的命令是:break

17.JS中的函数定义:function functionName([parameter],...){statement[s]}

18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.

19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self

20.状态栏的设置:window.status="字符";

21.弹出提示信息:window.alert("字符");

22.弹出确认框:window.confirm();

23.弹出输入提示框:window.prompt();

24.指定当前显示链接的位置:window.location.href="URL"

25.取出窗体中的所有表单的数量:document.forms.length

26.关闭文档的输出流:document.close();

27.字符串追加连接符:+=

28.创建一个文档元素:document.createElement(),document.createTextNode()

29.得到元素的方法:document.getElementById()

30.设置表单中所有文本型的成员的值为空:

var form = window.document.forms[0]

for (var i = 0; i<form.elements.length;i++){

if (form.elements[i].type == "text"){

form.elements[i].value = "";

}
}
31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE)

32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length

33.单选按钮组判断是否被选中也是用checked.

34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值)

35.字符串的定义:var myString = new String("This is lightsword");(对象级别)

36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();

37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到.

38.取字符串中指定位置的一个字符:StringA.charAt(9);

39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);

40.数学函数:

Math.PI(返回圆周率),

Math.SQRT2(返回开方),

Math.max(value1,value2)返回两个数中的最在值,

Math.pow(value1,10)返回value1的十次方,

Math.round(value1)四舍五入函数,

Math.floor(Math.random()*(n+1))返回随机数

41.定义日期型变量:var today = new Date();

42.日期函数列表:

dateObj.getTime()得到时间,

dateObj.getYear()得到年份,

dateObj.getFullYear()得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,

dateObj.getDay()得到日期几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,

dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,

dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,dateObj.setSeconds(val)设置秒  [注意:此日期时间从0开始计]

43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName

44.parent代表父亲对象,top代表最顶端对象

45.打开子窗口的父窗口为:opener

46.表示当前所属的位置:this

47.当在超链接中调用JS函数时用:(Javascript:)来开头后面加函数名

48.在老的浏览器中不执行此JS:<!--      //-->

49.引用一个文件式的JS:<script type="text/Javascript" src="aaa.js"></script>

50.指定在不支持脚本的浏览器显示的HTML:<noscript></noscript>

51.当超链和ONCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:<a href="a.html" onclick="location.href='b.html';return false">dfsadf</a>

52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError

53.JS中的换行:/n

54.窗口全屏大小:<script>function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen;</script>

55.JS中的all代表其下层的全部元素

56.JS中的焦点顺序:document.getElementByid("表单元素").tabIndex = 1

57.innerHTML的值是表单元素的值:如<p id="para">"how are <em>you</em>"</p>,则innerHTML的值就是:how are <em>you</em>

58.innerTEXT的值和上面的一样,只不过不会把<em>这种标记显示出来.

59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.

60.isDisabled判断是否为禁止状态.disabled设置禁止状态

61.length取得长度,返回整型数值

62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc

63.window.focus()使当前的窗口在所有窗口之前.

64.blur()指失去焦点.与focus()相反.

65.select()指元素为选中状态.

66.防止用户对文本框中输入文本:onfocus="this.blur()"

67.取出该元素在页面中出现的数量:document.all.tags("div(或其它HTML标记符)").length

68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()

69.状态栏文字的设置:window.status='文字',默认的状态栏文字设置:window.defaultStatus = '文字.';

70.添加到收藏夹:external.AddFavorite("http://www.xrss.cn","jaskdlf");

71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError;

72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续.

73.JS中的self指的是当前的窗口

74.JS中状态栏显示内容:window.status="内容"

75.JS中的top指的是框架集中最顶层的框架

76.JS中关闭当前的窗口:window.close();

77.JS中提出是否确认的框:if(confirm("Are you sure?")){alert("ok");}else{alert("Not Ok");}

78.JS中的窗口重定向:window.navigate("http://www.sina.com.cn");

79.JS中的打印:window.print()

80.JS中的提示输入框:window.prompt("message","defaultReply");

81.JS中的窗口滚动条:window.scroll(x,y)

82.JS中的窗口滚动到位置:window.scrollby

83.JS中设置时间间隔:setInterval("expr",msecDelay)或setInterval(funcRef,msecDelay)或setTimeout

84.JS中的模态显示在IE4+行,在NN中不行:showModalDialog("URL"[,arguments][,features]);

85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue="we really like you and hope you will stay longer.";}}  window.onbeforeunload=verifyClose;

86.当窗体第一次调用时使用的文件句柄:onload()

87.当窗体关闭时调用的文件句柄:onunload()

88.window.location的属性: protocol(http:),hostname(www.example.com),port(80),host(www.example.com:80),pathname("/a/a.html"),hash("#giantGizmo",指跳转到相应的锚记),href(全部的信息)

89.

window.location.reload()刷新当前页面.

parent.location.reload()刷新父亲对象(用于框架)

opener.location.reload()刷新父窗口对象(用于单开窗口)

top.location.reload()刷新最顶端对象(用于多开窗口)

90.

window.history.back()返回上一页,

window.history.forward()返回下一页,

window.history.go(返回第几页,也可以使用访问过的URL)

91.document.write()不换行的输出,document.writeln()换行输出

92.document.body.noWrap=true;防止链接文字折行.

93.变量名.charAt(第几位),取该变量的第几位的字符.

94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值.

95.字符串连接:string.concat(string2),或用+=进行连接

96.变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算)

97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置.

98.string.match(regExpression),判断字符是否匹配.

99.string.replace(regExpression,replaceString)替换现有字符串.

100.string.split(分隔符)返回一个数组存储值.

101.string.substr(start[,length])取从第几位到指定长度的字符串.

102.string.toLowerCase()使字符串全部变为小写.

103.string.toUpperCase()使全部字符变为大写.

104.parseInt(string[,radix(代表进制)])强制转换成整型.

105.parseFloat(string[,radix])强制转换成浮点型.

106.isNaN(变量):测试是否为数值型.

107.定义常量的关键字:const,定义变量的关键字:var

108.=>是ES6中新添加的arrow function,(x)=>x+1相当于function (x){return x+1} //原文基础上新增

109.isInterger(变量):ES6中新增判断变量是否为整数。 //原文基础上新增

110. >>>是无符号移位运算符,100>>>2 相当于  先将100转换成二进制01100100,向右移两位后得00011001,再转换回十进制,得25。 //原文基础上新增 by leftstick

文章来源:http://blog.csdn.net/benbenrh/article/details/3318961

感觉好久都没有做自己想做的事情啦。

这学期事情真是多,终于熬到快放假了,可以稍微做点“喜欢”的事。

一直以来,我都在关注视音频直播和点播技术,也尝试着搭建一些直播点播平台,但都不太理想,这里又尝试了一种兼容平台的直播方式,这里收藏并Mark一下。


安装FMS4.5,全部安装,包括web服务器,保留1935跟80端口。

在浏览器打开127.0.0.1会看到示范页面:有HDS,RTMP,HLS三种协议,HLS在apple iso设备上可以看到效果。

 

使用flash media live encoder3.2编码和发送直播流:

FMS URL填写rtmp://localhost/livepkgr

Stream填写livestream?adbe-live-event=liveevent

当然不一定要用flash media live encoder,发送方式是rtmp,流名对应格式写即可。

 

可使用RTMP方式观看:

打开安装目录下\samples\videoPlayer\videoplayer.html

在STREAM URL输入:

http://localhost/hds-live/livepkgr/_definst_/liveevent/livestream.f4m

选择LIVE 单击PLAY观看

 

Apple IOS设备

在浏览器输入

http://localhost/hls-live/livepkgr/_definst_/liveevent/livestream.m3u8   即可。

 

HTML5中写法

<video src="http://localhost/hls-live/livepkgr/_definst_/liveevent/livestream.m3u8" controls="controls">

您的浏览器不支持 video 标签。

</video>

 

第二次发布同样流,观看会有问题

删除\applications\livepkgr\events\_definst_\liveevent下*.stream

删除\applications\livepkgr\livestream   文件夹即可。

 

文章来源:http://blog.163.com/zhujiatc@126/blog/static/183463820131119013486/

“大数据”作为时下最火热的IT行业的词汇,随之数据仓库、数据安全、数据分析、数据挖掘等等围绕大数量的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。大数据有多大,一直没有清晰的概念,故此简单的科普研究,分享至此:

下面先按顺序给出所有单位:Byte、KB、MB、GB、TB、PB、EB、ZB、YB、DB、NB

按照进率1024(2的十次方)计算:

1Byte = 8 Bit

1 KB = 2的10次方Byte=1,024 Bytes

1 MB = 2的20次方Byte=1,024 KB = 1,048,576 Bytes

1 GB = 2的30次方Byte=1,024 MB = 1,048,576 KB = 1,073,741,824 Bytes

1 TB = 2的40次方Byte=1,024 GB = 1,048,576 MB = 1,073,741,824 KB = 1,099,511,627,776 Bytes

1 PB = 2的50次方Byte=1,024 TB = 1,048,576 GB =1,125,899,906,842,624 Bytes

1 EB = 2的60次方Byte=1,024 PB = 1,048,576 TB = 1,152,921,504,606,846,976 Bytes

1 ZB = 2的70次方Byte=1,024 EB = 1,180,591,620,717,411,303,424 Bytes

1 YB = 2的80次方Byte=1,024 ZB = 1,208,925,819,614,629,174,706,176 Bytes

1 DB = 2的90次方Byte=1024 YB = 1237940039285380274899124224 Byte

1 NB = 2的100次方Byte=1024DB = 1267650600228229401496703205376 Byte

下面拿NB为例

在现阶段的TB时代,1TB的硬盘的标准重量是670g

1NB=2的60次方TB=1152921504606846976TB=1152921504606846976个1TB硬盘

总重量约为77245740809万吨。

荷兰银行的20个数据中心有大约7PB磁盘和超过20PB的磁带存储,而且每年50%~70%存储量的增长,计算一下27PB大约为 40万个80G的硬盘大小。

半导体行业的摩尔定律似乎还不足以形容数据增长的快速性,大数据量的环境下促生技术的变革和进步,Hadoop技术、敏捷商业智能等等随之出现的解决方案似乎有望为大数据问题带来些许曙光。

文章来源:http://www.caf.ac.cn/html/xxh/20130503/20446.html

系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息

# netstat -rn # 查看网关(最后一行)

#nslookip  ip#查看dns

#dig #查看dns

#cat/etc/resolv.conf #查看dns配置文件
进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态
用户
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务
# chkconfig -list # 列出所有系统服务
# chkconfig -list | grep on # 列出所有启动的系统服务
程序
# rpm -qa # 查看所有安装的软件包

 

文章来源:http://www.cnblogs.com/springdong/p/3619651.html

真是菜,不常用linux系统,命令忘的就是TMD快,这里收藏一个,省得急用时乱翻!!!!!


xampp安装好之后就只有一个默认站点及一个默认nobody的ftp账户,这显然不符合我们平时的需求了,那么下面就来讲一下如何设置并管理多个虚拟主机及ftp账户了,至于xampp的安装不在此讨论范围,读者可自行参阅官网的相关说明。

1、首先讲一下ftp账户的配置:

xampp采用的是proftpd服务端,这个不像我们Win环境下常用的Serv-U,用户帐户不是在服务端工具里面进行配置,而是在linux系统帐户里面配置的。因此我们可以使用命令:

groupadd ftpusers

先在系统中创建一个名称为ftpusers的用户组,这里的名称可以随便设置,主要是为了区分ftp帐户与系统其他类型的帐户所以我这里就命名为ftpusers,然后在这个组里面添加一个用户:

useradd -d /opt/lampp/www/site1 -g ftpusers -s /sbin/nologin site1ftp

第一个参数-d表示用户home目录,其中/opt/lampp/www/这个路径必须是存在的,而site1则是在该命令执行时自动创建的。第二 个参数-g表示此用户隶属于哪个用户组,第三个参数-s表示此用户的shell环境,为安全起见我们应该设置为一个无权限的路径。最后一个参数才是此帐户 的登录名称,我这里是site1ftp。

创建好之后我们就要为该帐户设置一个密码了:

passwd site1ftp

执行该命令后按提示输入两次密码即可完成帐户site1ftp的密码设置了。

接下来我们设置一下帐户home目录的权限:

chmod -R 777 /opt/lampp/www/site1

至此,ftp帐户的添加算是完成了,顺便提示一下,删除帐户的命令是userdel,修改帐户的命令是usermod,存储帐户的文件路径为/etc/passwd。

另外,为安全起见,我们应该在proftpd的服务配置文件(一般路径是/opt/lampp/etc/proftpd.conf)中修改一下 DefaultRoot为ftpusers,将ftpusers组里面的用户访问范围限制在其home目录。也可以把DefaultRoot设为~(键盘 左上角的那个符号),这样表示所有的组里面的用户都有这个限制了。如果要单独设置两个组或更多的组你必须另起一行或多行,说明如下:

DefaultRoot ftpusers #限制ftpusers组里面的用户
DefaultRoot ~ #限制所有组里面的用户
DefaultRoot ftpusers
DefaultRoot nobody #限制ftpusers组及nobody组里面的用户
DefaultRoot ftpusers,nobody #限制既隶属于ftpusers组同时也隶属于nobody组里面的用户
对了,还差一个步骤,应该在proftpd配置文件中对ftp目录添加可重写的权限,如下:
AllowOverwrite on

否则会出现ftp上传文件时无法覆盖同名文件的问题。

2、然后我们再讲一下虚拟主机的配置, 先执行:

cat /opt/lampp/etc/httpd.conf
查看一下xampp的apache配置文件,我们发现其中有一行:

#Include etc/extra/httpd-vhosts.conf
看来,xampp为我们准备了一个专用于配置虚拟主机的文件了,去掉#号以删除其注释,然后编辑/opt/lampp/etc/extra /httpd-vhosts.conf文件,此文件中xampp为我们创建了两个虚拟主机的示例,我们把这两个示例注释掉,然后添加我们自己需要的虚拟主 机,例如:
DocumentRoot /opt/lampp/www/site1
ServerName blog.ewebe.net

DocumentRoot表示虚拟主机对应的路径,即网站目录,ServerName表示虚拟主机的访问地址,类似IIS中的主机头值。

至此,虚拟主机的设置也算是完成了。

最后我们需要在apache配置文件/opt/lampp/etc/httpd.conf中添加一下网站目录的访问权限。

<Directory "/opt/lampp/www/site1">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

这里可以将目录路径/opt/lampp/www/site1改为/opt/lampp/www,为以后建立更多的虚拟主机如site2、site3……等等做准备。

 

文章来源:http://www.cnblogs.com/luoine/archive/2011/03/09/1978096.html

HTML5这个字眼最近出现的比较频繁,手机app都能天天推送,说明最近它的关注度还是挺高的。


HTML5 有“自己的” HTML 语法,它与已经发布在网络上的 HTML 4 以及 XHTML1 文档兼容,但是不兼 HTML 4 中更复杂的 SGML 特性。

HTML5 并没有 XHTML 中需要小写标签名,属性要带引号,属性必须有一个值以及必须闭合所有空元素的语法规则。

但是 HTML5 更具灵活性,支持下列形式:

标签名大写。

属性的双引号可选。

属性值可选。

闭合空元素可选。

 

DOCTYPE

在老版本的 HTML 中,DOCTYPE 很长,因为 HTML 语言是基于 SGML 的,需要引用一个 DTD。

HTML5 作者可以使用简单的语法来指定如下形式的 DOCTYPE:

上述语法不区分大小写。

 

字符编码

HTML5 作者可以使用简单的语法指定字符编码,如下所示:

上述语法不区分大小写。

 

<script> 标签

常见的做法是给 script 元素添加一个值为 "text/javascript" 的 type 属性,如下所示:

HTML5 移除了所需的额外信息,我们可以使用如下所示的简单语法:

 

<link> 标签

目前为止我们这样编写 <link>:

 

HTML5 移除了所需的额外信息,我们可以使用如下所示的简单语法:

 

HTML5 元素

HTML5 元素使用起始标签和结束标签标记。标签使用尖括号之间的标签名限定。

起始标签和结束标签的区别在于后者标签名前面包含一个斜杠。

下面是一个 HTML5 元素示例:

HTML5 标签名不区分大小写,可以全部大写或者混合使用,虽然最常见的约定是始终使用小写。

大多数元素都包含一些内容,比如 <p>...</p> 包含一个段落。但是,有些元素不能包含任意内容,它们被称作空白元素。比如,br,hr,link 和 meta 等等。

这里有一个完整的 HTML5 元素列表。

 

过时标签

下列元素在 HTML5 中不再可用,其功能可以通过 CSS 更好的处理:

 

过时属性

HTML5 中不再有 HTML4 中的外观属性,因为它们的功能可以通过 CSS 更好的处理。有些来自 HTML4 的属性不在允许出现在 HTML5 中,甚至它们已经被完全删除了。

下面的表格中是已经被移除的属性以及它们所影响的标签(元素)。其中一些属性已经被永久删除。

 

HTML5新的标签(元素)

下面是标签(元素)已被 HTML5 引入:

 

<input> 标签新增的类型

input 元素的 type 属性现在拥有下列新值:

 

HTML5 属性

元素可以包含属性(attributes),用来给一个元素设置各种属性(properties)。

有些属性被定义为全局的,可以用在任何元素上,而其他的被定义为元素特有的。所有的属性都有一个名称和一个值,看起来如下面的示例所示。

下面是一个使用 HTML5 属性的例子,演示了如何用名为 class 的属性和值 “example” 标记一个 div 元素:

属性只能在起始标签中指定,绝对不能用在结束标签中。

HTML5 属性不区分大小写,可以全部大写或者混合使用,尽管最常见的约定是始终使用小写。

为了得到更好的结构,引入了下面的标签:

section: 这个标签表示一个通用的文档或者应用程序节。它可以和 h1-h6 一起使用来表示文档结构。

article: 这个标签表示文档内容的一个独立块,比如博客条目或者报纸上的文章。

aside: 这个标签表示与页面其他部分略微相关的内容块。

header: 这个标签表示一个节的头部。

footer: 这个标签表示一个节的脚注,可以包含作者,版权等信息。

nav: 这个标签表示用于导航文档的节。

dialog: 这个标签可以用于标记会话。

figure: 这个标签可以用于关联标题和某些嵌入内容,比如图表和视频。

一个 HTML5 文档的标记看起来就像下面这样:

最后文章还给了一个可以用于在线练习的工具站点:http://www.tutorialspoint.com/cgi-bin/practice.cgi?file=html5_document_syntax

 

文章来源:前端观察。(收集于手机app“今日头条”,没找到具体链接)

  学过PS的人大多都知道李涛老师的大名,我更是李涛老师的拥趸,从PS、PR到AE,从高手之路到良知塾,一路跟来。

最近我一直在关注慕课(MOOCs),也一直在关注良知塾在网易云课堂所开设的课程,感受着线下传统课堂教学转向线上网络教学的努力。李涛老师的良知塾与站酷合作,推出了“高高手”在线教育品牌,定位为精品教育,这是要与其他在线教育平台划清界限的节奏。

       教育最怕误人子弟,我一直强调取法乎上,就是要向行业精英学习才会有收获。而购买教育产品是双向投入,一是钱二是时间,这两个都太宝贵了。尤其是时间,辛辛苦苦看了几个小时视频,然后瞌睡的要命,没什么有价值的干货,基本上就算是谋财害命了。

李涛老师的这段话我很喜欢,无论是正规院校还是其他培训机构,甚至在线教育平台,只有提供优质课程、优质服务,才能吸引到更多的人来学习。我在闲暇的时候也看了不少网上的课程,在不同的慕课平台进行学习体验,相对于平台的优越性和人性化来说,我更在意课程的优劣,知识点清晰,讲授得体,废话少的老师更受学生的欢迎。记得在某平台上看了一节网页设计的直播课,去除课程开始之前的几分钟的自我广告,平均10分钟,能有2分钟的有效学习信息(不夸张的说),在加上一些课程互动,让我感觉授课老师不是教师,而是主播。虽说这些免费的课程不像是李老师所说的“谋财害命”,但也有误人子弟之嫌。

李涛老师的“高高手”刚刚启程,在线教育一直在继续,新的在线教学模式、甚至是在线教育模式也会不断被发现。

高高手:《简单摄影后期课》

[caption id="" align="alignnone" width="711"] 李涛ps高手之路[/caption]