【问题标题】:Can I control positioning of IE 10 select boxes?我可以控制 IE 10 选择框的定位吗?
【发布时间】:2013-10-04 02:17:12
【问题描述】:

在 Internet Explorer 10 中,下拉框(<select> 元素)的行为发生了变化:展开框时,列表不会将选项列表放在字段下方,而是会覆盖字段,列表的位置如下当前选定的元素位于输入字段的中心。

这有点难以描述,so here's a jsFiddle that shows it

我们的用户发现这种行为非常令人困惑。我可以在 CSS 中做些什么来让盒子的行为像在 IE9 中一样,并且像其他所有主要浏览器一样? (可能类似于-ms-clear pseudo-element,它在 IE10 文本输入字段中隐藏了清除按钮。)

这是一种延时截图:

【问题讨论】:

  • 我的 IE10 没有遇到这种行为。
  • 除非 MS 实现了类似于 -webkit-appearance 的东西,我敢打赌,你总是可以使用隐藏的 <select> 并在 JS 中实现一个,比如 Select2 (然后支持搜索等)。附带说明一下,尝试使用select::-ms-expand {/*stuff*/} 设置箭头样式,使用select::-ms-value {/*stuff*/} 设置值部分,也许你可以尝试强制它,这些伪元素可用于在 IE 上设置样式选择
  • @Diodeus 这不是那个问题的重复。另一个问题是关于一般控制选项框的位置。我在问是否有任何特定于 IE 的修改,类似于文本输入的 -ms-clear。

标签: html css internet-explorer internet-explorer-10


【解决方案1】:

一个选项是动态地将 select 的 size 属性更改为选项的数量(或固定数量 - 如果您有太多选项)。您可以在鼠标按下时执行此操作,然后在更改时将其更改回来。

必须调整样式、选择位置以及其他事件 - 但这里是概念证明:http://jsfiddle.net/KnAXL/1/

【讨论】:

  • 不适合我——当我选择“the”时,下次单击它时,它会返回到列表中的第一项而不展开列表。
  • 是的。 IE10 看起来 IE10 完全重写了该行为,并且此解决方法不再有效。原因是 - IE10 始终显示相对于所选选项的完整列表。这是一个解释和可能的解决方法:stackoverflow.com/a/18329113/961695
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多