HTML5中的自定义属性

在WEB页面中,为了配合Javascript的交互功能,很多时候都需要给HTML标签添加自定义属性(虽然标准不支持这么做),而关于自定义属性的名字则大都也是各自为战的自定义的,或根据功能、或根据项目等等,例如:

<!--来自贴吧—>
<div cid="count_ayjpb" st_type="toupiao"></div>
<!--来自有啊—>
<a href="#" favo_type="x" favo_obj_id="x" favo_title="x"></a>

这样的会造成自定义属性名混乱的问题,而且更为重要的是假如新的HTML标准中需要使用这个自定义属性,而且其含义与你的自定义属性中含义并不相同,这是一个大家都不希望看到的情况。于是在HTML5中给出了解决方案:只要是自定义属性都需要带上"data-"前缀。

The

data-*

collection of author-defined attributes. Authors can define any attribute they want as long as they prefix it with

data-

to avoid clashes with future versions of HTML.

因此,按照这个规范可以改写上面两个例子以获得更好的兼容性:

<!--来自贴吧—>
<div data-cid="count_ayjpb" data-st_type="toupiao"></div>
<!--来自有啊—>
<a href="#" data-favo_type="x" data-favo_obj_id="x" data-favo_title="x"></a>

实际上在淘宝的机票已经有看到这样的使用

<span data-display="inline" data-tnick="x" data-nick="x"></span>

-本文到此结束-

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

2 Comments »

 
  • aoao 说:

    嗷嗷滴广告:类型为search的input及相关属性

  • admin 说:

    多谢aoao提醒。
    注:原文中关于有啊的例子<input name=”keyword” results=”8″ autocomplete=”off”>中的results是配合search type的input的,算不上一个完全自定义属性。不过有啊的这个input的type不是search,此外,HTML5中已经将search当做标准了,不过却没有加入results以及autosave。

 

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">