Javascript 非交互文本

Javascript 非交互文本,javascript,html,css,Javascript,Html,Css,如果自定义占位符元素放置在输入上,例如使用位置:绝对值,则无法单击输入。几乎跨浏览器的解决方案是将占位符设置为“非交互”: 然而,指针事件:none在IE中不受支持。已经提出了许多备选方案,但它们似乎有点黑客味,对于我想做的事情来说可能有些过火 将文本置于其他元素之上,但不允许用户与之交互的最简单的跨浏览器方式是什么?如果单击占位符,也可以调用输入焦点 $(".placeholder").click( function(e){ $('.input').focus(); }); 我认为这是最好的

如果自定义占位符元素放置在输入上,例如使用
位置:绝对值
,则无法单击输入。几乎跨浏览器的解决方案是将占位符设置为“非交互”:

然而,
指针事件:none
在IE中不受支持。已经提出了许多备选方案,但它们似乎有点黑客味,对于我想做的事情来说可能有些过火


将文本置于其他元素之上,但不允许用户与之交互的最简单的跨浏览器方式是什么?

如果单击占位符,也可以调用输入焦点

$(".placeholder").click( function(e){ $('.input').focus(); });

我认为这是最好的选择。它包括许多不同的组件,但我相信它涵盖了所有可能的场景

向html元素添加一个类“no js”

  <html class="no-js">
然后使用带有多边形填充的html5占位符。此列表包括许多选项。

为什么不设置文本的
z-index
,使其位于
输入的后面,并为字段提供一个透明的背景。@JosephSilber我想到了,但它属于“hacky”类别。@1“-我会说这是最简单的方式,但我想这是一个意见问题…@JosephSilber,这很公平。我在IE7中遇到过不透明的问题,所以我想这会影响我的观点。如果删除占位符,还必须删除输入元素的透明度,但这是一个小问题。@1“-谁说过要使用
不透明度
属性?只需将
输入
背景色
设置为
透明
!哇,为什么我没想到呢?:)非常正确。我要说的是,现在创建的大多数网站都无法使用javascript。不过,我会尝试想出另一个非js的答案。@JoshC-我不同意大多数网站没有JavaScript是不能工作的。碰巧是。您确实可以在不使用JavaScript的情况下登录此站点。我们应该建立一个优雅的退化(或逐步增强)网站。我在上面的评论中发布了一个仅CSS的解决方案。@JeffPowers这实际上并没有以一种微妙的方式起作用:你无法控制光标在输入中的焦点。啊哈,这是一个很好的选择。我将尝试提出另一个不需要js的解决方案。
  <html class="no-js">
  <label class="no-js-label">Email Address</label>
 .no-js-label { display:none; }
 .no-js .no-js-label { display:none; }