【问题标题】:HTML5 & placeholder: how to do it progressively?HTML5 和占位符:如何逐步进行?
【发布时间】:2011-12-16 22:54:33
【问题描述】:

我正在考虑使用 HTML5 的 placeholder 属性。如果浏览器不支持 HTML5,我可以使用 jQuery 作为后备。但是,如果 JS 关闭了怎么办?如何使用渐进增强理念处理此问题?

【问题讨论】:

  • 既然您在下面的评论中说过您不喜欢使用 placeholder 来标记 input 的语义(目前很流行,就像 Stack Overflow 搜索栏),即使是动态的,我想假设您正在寻找将占位符用于其他东西是安全的。您对它们的具体用途是什么?

标签: javascript jquery html progressive-enhancement


【解决方案1】:

为什么不显示一个实际的<label> 元素并用 js 隐藏它?

// js file
$('label').hide();

这样,没有js,他们会看到一个常规的标签;使用 js,标签将被删除,您将获得 jquery 占位符或 html5 占位符。

【讨论】:

  • 这是我能想到的唯一方法,它真的是在做“渐进式增强”。我会稍微修改一下,以便您的 JavaScript 代码,而不是仅仅隐藏标签,从 label 文本动态创建 placeholder,因此不必在 HTML 源代码中复制它。
  • 语义不正确。来自规范:“占位符属性不应用作标签的替代品。” (见:w3.org/TR/html5/…
  • 好吧,你不是在移除标签,而是在隐藏它。所以,从语义上讲,你没问题。并且屏幕阅读器也会获得标签。
  • @mozillanerd - 我不敢苟同。这个答案的重点在于,无论 JS 是否可用,它都会产生一些有用的东西。
  • @mozillanerd - 你能解释一下为什么你认为这不是一个好的推荐吗?
猜你喜欢
  • 2011-06-26
  • 2018-12-26
  • 2011-10-26
  • 2011-06-18
  • 2014-01-28
  • 2016-08-23
  • 2018-10-08
  • 2011-06-22
  • 1970-01-01
相关资源
最近更新 更多