问题描述
||
嗨,我需要一个链接,该链接跨越多行并且具有click事件服务器端。问题是它必须在没有JavaScript的情况下起作用。
我尝试使用按钮并将其样式设置为看起来像链接。当我使用该物业时,这工作正常
white-space:normal
使文本跨越多行。
但是,当我在IE6中检查该文本时,不会自动换行。
有谁知道如何通过服务器端onclick事件实现多文本行控件?
解决方法
好,我制定了解决方案。它依赖于一个事实,即ѭ1元素将聚焦/触发其所连接的表单元素(输入,按钮)。事实证明,这也将触发单击按钮。这意味着我们可以将标签用作按钮本身的可点击\'proxy \'元素。然后可以隐藏该按钮。
我将按钮包装在标签内,并使按钮不可见,然后可以对标签进行样式设置,使其看起来像您喜欢的一样-这是一个真正的内联元素,就像链接一样。
这是一个演示-如果您愿意,可以获取代码:http://www.spookandpuff.com/examples/buttonText.html
HTML:
<label for=\"buttonTest\" class=\"buttonProxy\">I\'m a clickable proxy <button type=\"submit\" id=\"buttonTest\" class=\"proxied\"></button></label>
CSS
button.proxied {
width:0;
height:0;
opacity:0;
position:absolute;
}
label.buttonProxy {
text-decoration:underline;
cursor:pointer;
color:blue;
}
请注意,较旧的IE \'s不允许您与正确的“隐藏”表单元素进行交互:如果您按“ 4”或“ 5”按钮,则该按钮将不起作用。将width / height设置为0会起作用,就像使用IE特定规则将不透明度设置为0一样。
, 我认为按钮是一个内联块,因此如果可以的话,它将尽量避免在内部进行包装。有几种强制包装的方式,例如在按钮内放置<br>
标签,甚至使用<table width=\"1\">
(同样在按钮内)。