日期:2013-12-12  浏览次数:20619 次

网页制造aiyiweb文章简介:html标签的用用户属性通过w3c验证.

昨天一个朋友的项目,客户需求通过w3c验证(可能你认为这是很操蛋的一件事情,其实我也这样认为, 浏览器兼容才是硬道理, 但顾客就是死了很多年但人们还以为他还活着一个扯蛋的东东,西方人叫做上帝-god, 狗的,就差一个ri,他们的需求,不满足就没办法呀)。但是他在标签里写了一些用户属性,所以通不过。问我处理的方案,想了一些方法给他。
首先解释一下什么叫用户属性,如果你是高手,可以不用看。 <tag yourAttr="yourAttrValue" ></tag>。红色的部分就是用户属性,有时候我们需求用javascript code某些东西的时候,这个必不可少。 但他确实不能通过W3C的验证。

下面是我能想到的一些处理方案:
一、用子标签隐藏来代替用户属性。
<tag class="normal">
<tag class="myAttr">myAttrValue</tag>
<tag>内容</tag>
</tag>
然后设置css
.myAttr{display:none;}
怎样获取那个数据,可以本人去查一下。

二、使用HTML5 DTD + data- 来处理
html5支持用户自定义属性,但要求必须以“data-”开始,可以通过验证。
<tag data-myAttr="myAttrValue"></tag>

三、使用通用属性来处理
title属性是大多数标签都可以有的,完全可以通过验证。
<tag title="myAttrValue"></tag>
可是,问题来了,当鼠标挪动到标签上,title直接显示出来,很不好的用户体验。
所以,想到了用javascript或者jquery来处理这个问题:
(function($){
$.fn.setUserAttr=function(options){
var defaults={dataName:"userData"};
var opts = $.extend({},defaults,options||{});
return this.each(function(){
$this=$(this);
var userAttrVal=$this.attr("title");
$this.attr("title","").data(opts.dataName,userAttrVal);
})
};
})(jQuery)


html:
<tag class="useAttr" title="myAttrValue"></tag>

使用:
$(".useAttr").setUserAttr();
通过$(".useAttr").data("userData")来获取数据.
或者
$(".useAttr").setUserAttr({dataName:"yourAttrName"});
通过 $(".useAttr").data("yourAttrName ")来获取数据

当然,只是团体的一些想法。