你必须知道的28个HTML5特征、窍门和技术

发布时间:2019-03-26  栏目:计算机教程  评论:0 Comments

全新改进的HTML5表单创建

2011/07/24 · HTML5 · 2
评论
·
HTML5

经历了12年之久,万维网的核心语言(HTML或超文本标记语言)终于迎来了HTML5主要修订版本。虽然万众期待的版本仍处于测试阶段并且没有宣布正式推出的日期,HTML5的网页设计师和程序员已经就有关最新功能展开了热烈讨论。

根据W3C,HTML5新特性的目的是在改善嵌入诸如视频的多媒体支持,提供更好的用户体验和更简单的编程。虽然HTML4中已经取得了巨大成
功,(甚至被认为最成功的标记格式已经发布)在互联网世界的每个人都耐心等待,浏览器更新时得到最新的HTML版本。随着时间推移,人们都很纳闷,还等什
么呢?事实上HTML5已经被很多浏览器支持,比如Safari, Chrome, FireFox,
Opera, 以及其他主流浏览器。即使是IE9也准备好了支持新的HTML5。
HTML5的好处是,它是向后兼容的,因而,如果你乐于更新你的网站,现在你就可以。只是有几个浏览器不完全兼容HTML5。

美高梅娱乐场网站 1

升级到HTML5是相当容易的,因为它与HTML4兼容。事实上,我们没有理由摒弃HTML4的所有,因为HTML5只是一个简单的增加一堆新而酷的功能
添加到HTML4核心语言。升级(如果你是这样认为)到HTML5是非常简单的。你所需要做的的是修改你的DOCTYPE。这种新的更新有助于让事情变得
简单,而在HTML4中有你可以使用不同的文档类型,使得这一点更加棘手。你现在就可以更新你所有的网站,它们不会崩溃,因为所有HTML4的标签在
HTML5还是100%支持的。

HTML5的表单定义了十几个新的输入类型和特性,这些新增元素可以让程序员可以过个好日子。

输入框占位符

我觉得这是HTML5新特性中我最爱的。所有开发人员都使用JavaScript和jQuery做输入框占位符,而在HTML5中,开发人员可以非常容易
的显示一个占位符。什么是占位符?占位符就是出现在输入框的提示文本,当你点击输入栏位,它就自动消失。你可以把用户应该输入的文本样例在文本框提示出
来。一个例子,如果你有一个电话号码输入框,你可以设置占位符(XXX)XXX –
XXXX,点击它们时就会消失。我相信你已经看过很多。

美高梅娱乐场网站 2

支持情况如下(本人开发过Android,是支持的——译者注)

IE FF  Safari  Chrome  Opera  iphone Android

–  3.7+   4+    4+    11+   4+      –

自动焦点事件

目前HTML4要做到自动焦点的方式是使用JavaScript把焦点放在一个表单的第一个输入字段。HTML5只要加载一个网页,网页自动将焦点移到特
定的输入框,和JavaScript一样。区别是什么?由于现在只是一个HTML标记,用户可以很容易地在他们的浏览器禁用此属性。并非所有浏览器都支持
自动对焦功能,但浏览器不只是简单地忽略该属性。如果你想所有浏览器都行得通,只需添加新的HTML5自动对焦属性,然后检测浏览器是否支持自动对焦。如
果可以就不必使用自动对焦的脚本,如果没有的话,就要添加自动对焦的脚本。

支持情况

FF  IE  Safari  Chrome  Opera  iphone Android

–    4+   4+     3+    10+     –     –

HTML 新定义13个输入类型

电子邮件

我要说的第一个输入框是电子邮件地址。那些不支持新类型的旧版浏览器也只是把它们看作一个文本框,99%的用户不会注意到这个变化,直到他们提交表单(此
时会有表单验证)。iPhone的用户应该知道在那些邮件地址的输入框,当输入@和a的时候会出现一个简单容易的键盘。如果你用过iPhone,你懂的。

美高梅娱乐场网站 3

网址

再说说网址输入框。如果需要输入网址,期望输入的就像http://www.mazingtech.com
。现在在网址类型输入框会出现像iPhone里面一样的一个可变化的虚拟键盘用户可以很方便输入斜线和.com。同样的,在提交表单之前用户对这些毫不知情。
数字

美高梅娱乐场网站,在过去要得到匹配的数字,你不得不使用jquery这样的脚本来帮助验证输入。HTML5增加了数字类型。还增加了一些额外的属性(可选):

Min:指定输入框可接受的最小输入数字。Max:你猜对了,就是允许输入的最大数字。
Step:属性输入域合法的间隔 ,默认是1.

美高梅娱乐场网站 4

如上图,只允许输入数字(大多数情况下不会注意到这些,直到提交的时候提示错误),只有0,2,4合法(6不合法因为step是10,合法的是0,10,20…——译者注)。

Numbers as a Slider 数字滑动条

我觉得这个真酷。HTML5允许你使用一个新的类型叫range,输入框变成一个滑动条。你的网站表单可以使用滑动条了,这很酷吧。它的属性标记和数字类型一样,只是把类型设置type=’number’改成type=’range’。

美高梅娱乐场网站 5

日历表

迄今为止最好的新增元素,名为date和datetime的日期选择器类型(还有其他额外的date/time类型,如时间,星期,月份,以及本地日
历)。 很多JavaScript框架如jQuery
UI和YIU已经具备了这些控件,但增加一个日历选择器还是挺烦人的。
HTML5定义一个新的本地日期选择器,不必包括使用页面上的脚本。截至目前,Opera是一个唯一完全支持此功能的,对于其他浏览器,你可以做一个备用
脚本以备该浏览器不支持。不过,最终,所有的浏览器都会更新的。

搜索

HTML5增加了搜索输入框类型。这没什么,但对一些用户来说是很好的变化。它可以简单的把输入框自动圆边,当你开始输入时,它右边会有一个小X。目前并不是所有的浏览器支持。

美高梅娱乐场网站 6

颜色

HTML5还定义类型的颜色,它可以让你选择一种颜色,返回hexademical值。Opera11是唯一支持这种类型的浏览器。不过应该不会有很多人使用这个类型,所以不支持也不是什么大问题。

表单验证

上面我们谈到有关这些新的输入类型,如电子邮件,日期,数量等HTML5新元素中,最令人兴奋的新特性莫过于表单验证。大多数开发人员都做了表单验证,无
论是客户端或服务器端(我们两个都做!)。也许HTML5的表单验证器可能无法取代你的服务器端验证,但它肯定能最终取代你的客户端验证。
JavaScript验证的问题是,用户很容易绕过它,可以很容易绕过它只需禁用JavaScript。现在HTML5,你不用有此担心。下面是
Chrome12的一个例子。所有的浏览器和操作系统对于错误有不同的显示方式,不过这是一个例子,让你看清错误可能发生的样子。

所有的错误都是HTML5原生提示的,并没有使用JavaScript。

IE    FF   Safari   Chrome   Opera   Iphone    Andriod

–    4+    5+     10+    9+      –      -

必需字段

HTML5的表单验证并不仅仅局限于验证字段的类型,它还允许调用一个新的额外的标记,required。这个新属性允许开发人员验证输入框是否填写,无需使用JavaScript。

美高梅娱乐场网站 7

每个开发人员都知道这些更新对缩短开发周期和增强的用户体验都是至关重要。一旦所有的浏览器接受了HTML5,新一代的网站将超过任何人的期望。

那么你有了它。你可以HTML5中找到一个快速入门指南。如果你可以理解这篇文章的任何东西,请记住,HTML5不是什么可怕的麻烦。它将大大有助于开发者,而只要你有准备所有HTML4网站已经可以升级了!

原文:webdesignledger.com  编译:ArSui

赞 1 收藏 2
评论

美高梅娱乐场网站 8

二十七、Output元素

正如你可能预料到的,output元素被用来显示部分计算,例如,如果你想显示一个鼠标的位置,或者是一系列数字的总和坐标,这个数据应被插入到output元素中。

举个简单的例子,当提交按钮被按下,我们用JavaScript将两个数字相加值插入到空的output中。

<form action="" method="get">
    <p>
        10 + 5 = <output name="sum"></output>
    </p>
    <button type="submit">计算</button>
</form>

(function() {
    var f = document.forms[0];  if ( typeof f['sum'] !== 'undefined' ) {
        f.addEventListener('submit', function(e) {
            f['sum'].value = 15;
            e.preventDefault();
        }, false);
    } else {
        alert('你的浏览器尚未准备好!');
    }
})();

自己测试了下,貌似现在只有在Opera浏览器下有上佳的效果:

美高梅娱乐场网站 9

如果您现在使用的是较新版本的Opera浏览器,您可以狠狠地点击这里:HTML5结果输出框demo

此元素也可以接受一个属性,它反映了输出相关元素的名称,类似label工作原理。

五、引号还是不要引号

…这确实是个问题。记住,HTML5不是XHTML,要是你不愿意,你没有必要非得用引号标记包裹你的属性,没有必要非得闭合元素。换句话说,只要你自己觉得舒服,就没有什么对错之分。对于我自己来说就是如此。

<p class=myClass id=someId> Start the reactor. 

对此取舍你还得自己拿主意。如果你更倾向于结构化的文档,就算天塌下来,也要把引号牢牢拽在怀里。

九、本地存储(Local Storage)

多亏了本地存储(非正式的HTML5,本着方便归纳的目的),我们可以让高级浏览器记住我们的编辑后的内容,即使浏览器被关掉或是页面刷新。

//zxx:原视频默认展示的是YouTube视频,不FQ看不了,所以,这里展示来自另外一个网站的video。建议全屏观看,以看清其中的HTML与JavaScript代码

//zxx:根据视频内容,我自己做了个demo,关于本地存储的。

您可以狠狠地点击这里:HTML5本地存储Demo

IE8浏览器已经支持了本地存储,如下截图所示:

美高梅娱乐场网站 10

尽管显然不支持所有的浏览器,我们可以在Internet Explorer8时,Safari
4和Firefox
3.5下期待此工作方式。请注意,为了弥补旧的浏览器将无法识别本地存储,你应该先测试,以确定window.localStorage是否存在。

美高梅娱乐场网站 11

二十八、使用区域input创建滑块(Create Sliders with the Range Input)

HTML5引进了range类型的input。

<input type="range">

最值得注意的是,它可以接收 min, max, step,和value
属性,等等。虽然现在似乎只有Opera浏览器充分支持这种输入类型,但是当我们可以实际使用时,这将是美妙无比的!

参见下面的快速演示:

第一步:标签

首先,创建标签

<form method="post">
    <h4>音量控制</h4>
    <input type="range" name="range" min="0" max="10" step="1" value="" />
    <output name="result">  </output>
</form>

第二步:CSS

下面,我们要使用一点点的样式。我们将使用:before和:after去告知用户我们制定的最大值和最小值。

input { font-size: 14px; font-weight: bold;  } input[type=range]:before { content: attr(min); padding-right: 5px; }
input[type=range]:after { content: attr(max); padding-left: 5px;} output {
    display: block;
    font-size: 5.5em;
    font-weight: bold;
}

第三步:JavaScript

最后,我们

  • 检测我们的浏览器是否认识range input,如果不,显示提示。
  • 当用户移动滑块的时候,动态改变output的值。
  • 监听,当用户离开滑块,插入值,同时本地存储。
  • 然后,下次用户刷新页面的时候,选择的区域和值会自动地设置成他们最后一次选择。

    (function() {

    var f = document.forms[0],
        range = f['range'],
        result = f['result'],
        cachedRangeValue = localStorage.rangeValue ? localStorage.rangeValue : 5;   // 检测浏览器是否是足够酷
    // 识别range input.
    var o = document.createElement('input');
    o.type = 'range';
    if ( o.type === 'text' ) alert('不好意思,你的浏览器还不够酷,试试最新的Opera浏览器吧。');  // 设置初始值
    // 无论是否本地存储了,都设置值为5
    range.value = cachedRangeValue;
    result.value = cachedRangeValue;  // 当用户选择了个值,更新本地存储
    range.addEventListener("mouseup", function() {
        alert("你选择的值是:" + range.value + ". 我现在正在用本地存储保存此值。在现代浏览器上刷新并检测。");
        localStorage ? (localStorage.rangeValue = range.value) : alert("数据保存到了数据库或是其他什么地方。");
    }, false);  // 滑动时显示选择的值
    range.addEventListener("change", function() {
        result.value = range.value;
    }, false); })();
    

您可以狠狠地点击这里:HTML5 range
input炫酷效果demo

感谢您的阅读!我们已经讨论了很多,但可能只是触及到HTML5的皮毛,全当抛砖引玉,希望能对您的学习有所帮助!

//zxx:以上是翻译/编辑的全部内容,内容已经够多了,我就不多说什么了。

英文原文:http://net…html5-features-tips-and-techniques…/
原文作者:Jeffrey Way

二十、正则表达式

你发现自己多久匆匆编写一些正则表达式验证一个特定的文本。多亏了新的pattern属性,我们可以在标签处直接插入一个正则表达式。

<form action="" method="get">
    <label for="username">姓名:</label>
    <input id="username" name="username" type="text" placeholder="4-10个英文字母" pattern="[A-Za-z]{4,10}" required="required" autofocus />
    <button type="submit">提交</button>
</form>

如果你熟悉正则表达式,那么应该清楚[A-Za-z]{4,10}表示接受4-10位不区分大小写的英文字母。如果浏览器支持pattern属性,则提交表单时,如果文本框中的内容不符合其正则表达式,文本框会高亮显示。如下图所示。

美高梅娱乐场网站 12

您可以狠狠地点击这里:HTML5正则表达式Demo

//zxx:我自己小测了下,貌似目前只在Chrome下有效(win系统)

注意到,我们已经开始组合使用这些很棒的属性。

如果您对正则表达式概念模糊了,可以参见这里

十四、必要的属性(Required Attribute )

表单允许新的必要属性,用来指定是否需要特殊的input。这取决于你的代码偏好,你可以以下面两种方式之一申明此属性。

<input type="text" name="someInput" required>

或者,使用更结构化的方法:

<input type="text" name="someInput" required="required">

两种方法都行。有了这个代码,并且浏览器支持此属性,如果“someInput”文本框是空白,则表单不会被提交。下面是一个简单的例子,我们还将添加占位符属性,因为没有理由不这样做。

<form action="" method="get">
    <label for="name">姓名:</label>
    <input id="name" name="name" type="text" placeholder="zhangxinxu" required="required" />
    <button type="submit">提交</button>
</form>

您可以狠狠地点击这里:HTML5必要属性Demo

如果input里面内容是空白,则表单提交的时候,文本框会高亮显示。//zxx:貌似仅在Chrome浏览器下有点小效果

美高梅娱乐场网站 13

十三、文档某一部分的信息(hgroup)

想象一下,在我的网站的标题,我有我的站点的名称,随后立即由一个副标题。虽然我们可以使用一个<h1>和<h2>标签,为其分别创造标记,但是依旧没有(因为HTML4)一个简单的方法来语义上说明了两者之间的关系。此外,一个h2标记的使用提出了更多的问题,在层次结构上,当涉及到其他网页上显示的标题时。通过使用不影响文档的大纲流hgroup元素,我们可以将这些标题组合在一起。

<header>
    <hgroup>
        <h1> Recall Fan Page </h1>
        <h2> Only for people who want the memory of a lifetime. </h2>
    </hgroup>
</header>

三、<small>重新定义

还在不久前,<small>元素被用来创建靠近logo且相关的副标题。这是个很有用的表现元素,但是,现在,这种用法可能就不正确了。<small>元素已经被重新定义了,指小字,因而更具可用性。试想下你网站底部的版权状态,根据对此元素新的HTML5定义,<small>可以正确地包裹这些信息。

small元素专指“小字”。

六、内容可编辑

美高梅娱乐场网站 14
美高梅娱乐场网站 15
最新的浏览器有个很赞的新属性可以应用到元素上,叫做contenteditable。顾名思意,就是允许用户编辑元素内容包含的任意文本,包括子元素。类似的用途还有很多,像是简单的待办事项清单应用程序,可大大利用其本地存储的优势。

<ul contenteditable="true">
    <li>悼念遇难香港同胞 </li>
    <li>深圳特区30周年</li>
    <li>伊春空难</li>
</ul>

或者,根据前面所学到的一些技巧,我们可以把它写成:

<ul contenteditable=true>

二十六、data属性(The Data Attribute)

我们现在可以很正式地让所有的HTML元素支持自定义属性。然而,以前,我们可能会这样:

<h1 id=someId customAttribute=value> 小样,胆儿挺肥的呢 </h1>

…校验器会小题大做!但是现在,只要我们以”data”为前缀定义我们的自定义属性,盗版属性立马变成正牌的了。如果你发现你曾经把一个重要的数据附加在诸如class的属性上,可能为了JavaScript之用,那么,本属性将大有帮助啊。

HTML片段

<div id="myDiv" data-custom-attr="My Value"> 巴拉巴拉,lady 嘎嘎 </div>

检索自定义属性的价值

var theDiv = document.getElementById('myDiv');
var attr = theDiv.getAttribute('data-custom-attr');
alert(attr); // My Value

此属性还可以用在CSS中,例如下面这个有些傻里傻气的CSS文字改变的例子:

CSS代码:
.data_custom { display:inline-block; position: relative; }
.data_custom:hover { color: transparent; }
.data_custom:hover:after {
    content: attr(data-hover-response);
    color: black;
    position: absolute;
    left: 0;
}



HTML代码:
<a class="data_custom" data-hover-response="我说过不要碰我!" href="#">不要碰我,雅蠛蝶~~</a>

如果你的浏览器支持after伪类,以及content的attr属性,则可以看到类似下面的效果(IE8不一样):

美高梅娱乐场网站 16

要查看上图所示的效果,您可以狠狠地点击这里:CSS与HTML5自定义属性demo

还有,content属性其实是一个非常强大的属性,由于低版本的IE不支持,所以此属性尚未流行,关于content内容生成技术,可以参见我之前的“CSS
content内容生成技术以及应用
”这篇文章。

二十二、mark元素(Mark Element )

试想<mark>元素作为高亮。此标签包裹的字符串应该与用户当前的行动相关联。例如,我在一些博客上搜索“北川景子”,我就可以使用一些JavaScript将当前的每个结果字符串用mark标签包裹。

<h3> 搜索结果 </h3>
<p> 我很喜欢《零秒出手》里面那个拉小提琴的女孩,原来她叫做 <mark>北川景子</mark>。 </p>

一、新的Doctype

//zxx:”doctype”中文意思指“文档类型”

仍在使用麻烦的,不可能记得住的XHTML文档类型?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如果是,为什么还在用呢?使用新的HTML5文档类型代替吧。你会活得更久的——正如Douglas
Quaid说的

<!DOCTYPE html>

我就琢磨着,为了HTML5搞个这厮代码,您可能会对这段代码究竟靠不靠谱表示怀疑。不用担心,如今这是可行的,只有老的浏览器需要一个特定的doctype(文档类型)。浏览器如果不知道doctype,就会很简单的以标准模式对包含的标签进行渲染。所以,妹妹你大胆的向前冲,把小心谨慎都抛到九霄云外,去拥抱新的HTML5文档类型吧。

十二、IE和HTML5(Internet Explorer and HTML5)

不幸的是,讨厌的IE浏览器需要动点小手术才能理解新的HTML5元素。

所有元素,默认的,都有个inline的display

为了确保所有新的HTML5元素能以block水平的元素正确地渲染,有必要对其做如下定义:

header, footer, article, section, nav, menu, hgroup {
    display: block;
}

不幸的是,IE仍旧忽略这些样式,因为它不知道这些标签从哪里来的,好比是header元素。幸运的是,有一个简单的解决办法:

document.createElement("article");
document.createElement("footer");
document.createElement("header");
document.createElement("hgroup");
document.createElement("nav");
document.createElement("menu");

奇怪的是,这段代码似乎触发IE浏览器。为了更简单将此应用到每个新的应用过程中,雷米夏普(Remy
Sharp)创建了一个脚本,通常称为HTML5 shiv。该脚本同样修复了些显示问题。

<!--[if IE]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

四、脚本(scripts)和链接(links)无需type

您可能现在仍在给link和script标签增加type属性。

<link rel="stylesheet" href="path/to/stylesheet.css" type="text/css" />
<script type="text/javascript" src="path/to/script.js"></script>

这已经是老黄花菜,非必需品了。这意味着,这些标签都各自指向样式表和脚本。因此,我们可以把type属性一起干掉。

<link rel="stylesheet" href="path/to/stylesheet.css" />
<script src="path/to/script.js"></script>

留下评论

网站地图xml地图