2016-05-17 29 views
2

这里有一个我的页面的小例子。我需要禁用所有输入字段,但滚动条。这适用于Chrome和Firefox,但不适用于IE。IE11 - 如何在禁用的字段集中启用滚动条

tbody{ 
 
    display:block; 
 
    height: 50px; 
 
    overflow-y: scroll; 
 
}
<fieldset disabled> 
 
    <table> 
 
     <thead> 
 
      <tr><th>test</th></tr> 
 
     </thead> 
 
     <tbody> 
 
      <tr> <td> <input type="text"/> </td> </tr> 
 
      <tr> <td> <input type="text"/> </td> </tr> 
 
      <tr> <td> <input type="text"/> </td> </tr> 
 
      <tr> <td> <input type="text"/> </td> </tr> 
 
      <tr> <td> <input type="text"/> </td> </tr> 
 
    </tbody> 
 
    </table> 
 
</fieldset>

什么建议吗?

回答

5

也许这样?

tbody{ 
 
    display:block; 
 
    height: 50px; 
 
    overflow-y: scroll; 
 
}
<fieldset> 
 
    <table> 
 
    <tbody> 
 
     <tr> <td> <input type="text" disabled /> </td> </tr> 
 
     <tr> <td> <input type="text" disabled /> </td> </tr> 
 
     <tr> <td> <input type="text" disabled /> </td> </tr> 
 
     <tr> <td> <input type="text" disabled /> </td> </tr> 
 
     <tr> <td> <input type="text" disabled /> </td> </tr> 
 
    </tbody> 
 
    </table> 
 
</fieldset>

或者使用pointer-events(当然,用户可以通过输入标签,但可以用tabindex="-1"阻止,但话又说回来,为什么不加disabled

fieldset tbody { 
 
    display: inline-block; 
 
    height: 50px; 
 
    overflow-y: scroll; 
 
} 
 
fieldset tbody input { 
 
    pointer-events: none; 
 
}
<fieldset> 
 
    <table> 
 
     <tbody> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     </tbody> 
 
    </table> 
 
</fieldset>

或者使用一个额外的div

fieldset div { 
 
    display: inline-block; 
 
    height: 50px; 
 
    overflow-y: scroll; 
 
}
<fieldset> 
 
    <div> 
 
    <table disabled> 
 
     <tbody> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     <tr> <td> <input type="text" /> </td> </tr> 
 
     </tbody> 
 
    </table> 
 
    </div> 
 
</fieldset>

+0

谢谢您的回答,但我张贴的片段是一个很简单的例子。在我的项目中,列是动态生成的并且不止一个。如果可能的话,我宁愿使用fieldset解决方案和IE的任何修补程序。 – Luca

+0

@Luca我添加了一个2:nd的样本,这是否适合你? – LGSon

+0

第二个示例更改了原始行为并且不符合我的需要。 – Luca

0

我建议包装在一个额外的DIV字段集,并有适用您的样式。 IE似乎禁用了禁用元素上的滚动条功能。

.box { 
 
    display: inline-block; 
 
    height: 80px; overflow-y: scroll; 
 
}
<div class="box"> 
 
<fieldset disabled> 
 
<table> 
 
<tbody> 
 
    <tr> <td> <input type="text"/> </td> </tr> 
 
    <tr> <td> <input type="text"/> </td> </tr> 
 
    <tr> <td> <input type="text"/> </td> </tr> 
 
    <tr> <td> <input type="text"/> </td> </tr> 
 
    <tr> <td> <input type="text"/> </td> </tr> 
 
    </tbody> 
 
    </table> 
 
</fieldset> 
 
</div>

+0

我很抱歉,但我不想滚动整个表格。如果我添加一个头文件,我会得到与你的和我的代码不同的行为。 – Luca

+0

好的。感谢您的反馈,有什么不同,以及您使用的是哪个标题? –