如何为不可见的HTML元素定义accesskey

时间:2008-10-28 17:04:02

标签: javascript html css firefox

我有一个<button>,其中包含一个accesskey。只要按钮可见,访问键就可以正常工作,但是当我设置display: nonevisibility: hidden时,访问键不再有效。

也尝试没有成功:

  • 使用不同的元素类型:a,输入(各种类型,甚至无类型)。
  • 将accesskey分配给包装不可见控件的标签。

注意,我不确定这是否是标准行为,但在Firefox 3之前,无论可见性如何,accesskey似乎都有效。

4 个答案:

答案 0 :(得分:5)

您看到的行为是正确的,您无法“访问”未显示的元素。萨尔的建议几乎肯定会奏效,但我可以问你这样做的目的是什么?可能有更好的方法来实现您想要实现的目标。您是否考虑过使用按键处理程序?

如果您不想要一个按键处理程序,我想您可能想要使用其他建议。尝试位置:绝对;左:-9999px;将您的内容拉出页面。或者使用绝对位置,将不透明度更改为零,将z-index更改为-1。通过使用绝对位置,元素不会影响页面上其他内容的定位,设置不透明度将使其不可见。即使将不透明度设置为零,您仍然可以单击元素,虽然您无法看到它,但可能会阻止您单击页面的其他元素,因此请使用负z-index将其拉到其他内容后面。

答案 1 :(得分:2)

您可以应用负边距将元素推到可见页面之外。我认为许多浏览器和文本阅读器会忽略display:nonevisibility:hidden的元素。

答案 2 :(得分:1)

最简单的解决方案:CSS中的height: 0px; margin: 0px; padding: 0px;

答案 3 :(得分:0)

而不是可见性或显示属性,将按钮放在页面外

<button accesskey="a" style="position: absolute; top: -9999px">button</button>

警告:使用left而不是top会导致ie7

中出现奇怪的显示错误