【问题标题】:Using <input type="slider">使用 <input type="slider">
【发布时间】:2011-10-04 00:57:23
【问题描述】:

显然,规范中不存在&lt;input type="slider"&gt;然而,我想将它用作我正在编写的插件的占位符/标识符。

这个插件实际上会用大量的 div 替换 &lt;input&gt; 以制作类似于 jQuery UI 控件的滑块。

我的问题是;使用 &lt;input type="slider"&gt; 只是作为放置 jQuery 生成代码的位置的标识符,通常“正常” - 它会导致任何形式的问题,还是我不必担心?

【问题讨论】:

  • 规范中确实存在,it is called range
  • @Quentin:是的,我看到了,但我专门指的是type="slider",而不是功能。

标签: jquery html plugins semantics


【解决方案1】:

HTML5 有这个新选项,它只适用于较新的浏览器。

http://html5doctor.com/html5-custom-data-attributes/

随便用

data-whateveryouwanthere

JQuery 也有处理这些数据的方法。

http://api.jquery.com/jQuery.data/

【讨论】:

  • 感谢您的意见,但这并不是我要问的。很抱歉有任何混淆。
  • @JamWaffles:这是你应该做的(设置type="text" 和例如data-type-override="slider",或者为了与旧浏览器的兼容性可能是class="slider" 属性)。你不能简单地劫持标准的 HTML 属性,这会给你无效的标记。
【解决方案2】:

因为浏览器将未知的输入类型呈现为&lt;input type="text"&gt;,所以没问题。参考this page

编辑: 正如 cmets 中所讨论的,解决此问题的更好方法可能是使用 class="slider",因为除了您使用它的用途之外,它保证永远不会有任何意义,不像 @ 987654324@ 某些浏览器可能会决定以不同方式呈现。

【讨论】:

  • 正是我需要听到的——谢谢。另外,我查看了 HTML 5 规范,你得到的关闭是 &lt;input type="range"&gt;
  • 我不同意。有适当的机制可以在 HTML 中包含非规范内容,劫持type 属性不是其中之一。
  • @You 我同意这不是一个好方法,但它不会导致渲染或表单问题,这是 OP 所要求的。
  • 有效的 HTML 是加分项,但如果在输入中使用自定义类型无论如何都会被完全替换,IMO 可以使用自定义类型。
  • @JamWaffles 关键是使用&lt;input class="slider"&gt; 可能会更好,因为这保证对浏览器永远不会有任何语义意义,而且通常最好不要使用有意义的属性除了你正在使用它的那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 2011-10-01
  • 2013-04-19
  • 2013-06-28
  • 2011-05-14
  • 2013-07-07
  • 2012-03-30
相关资源
最近更新 更多