Javascript 如何获得<;选择>;要从容器中溢出的框<;部门>;?

Javascript 如何获得<;选择>;要从容器中溢出的框<;部门>;?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,背景: 客户让我给他们一些下拉列表。所以我给了他们一些,有很多不同的选择 他们喜欢Firefox和Chrome中下拉列表的外观,因为下拉列表会自动扩展到文本的宽度,如图所示: 但IE的情况并非如此 Internet Explorer是web开发世界中的哥特青少年,喜欢表现得与众不同,因此它似乎不被同行视为墨守成规的人。它看不到展开下拉列表以使用户能够读取它包含的所有文本的价值。看起来是这样的: 这对客户来说不够好,所以他们让我来修。我发现了一个jQuery插件,当你给它焦点时,它可以调整文本

背景:

客户让我给他们一些下拉列表。所以我给了他们一些,有很多不同的选择

他们喜欢Firefox和Chrome中下拉列表的外观,因为下拉列表会自动扩展到文本的宽度,如图所示:

但IE的情况并非如此

Internet Explorer是web开发世界中的哥特青少年,喜欢表现得与众不同,因此它似乎不被同行视为墨守成规的人。它看不到展开下拉列表以使用户能够读取它包含的所有文本的价值。看起来是这样的:

这对客户来说不够好,所以他们让我来修。我发现了一个jQuery插件,当你给它焦点时,它可以调整文本框的大小,这样当它打开时,你就可以看到里面的所有文本。这里提供了一个示例:(请确保在IE8或更低版本中加载)

问题:

请注意,当您单击
所有公司
下拉列表时,它是如何强制下拉到下一行的?有没有办法让它保持在同一行,并从包含的div中溢出


*在本文中,不确定这是否是正确的术语。

这是因为插件正在调整
的大小,以匹配其中最长的
。不幸的是,解决这个问题的唯一方法是在其父对象的内部进行选择(设置为
position:relative


事实上,这将发生在任何一个内容超过其容量的下拉列表中。不幸的是,除非您使用
模拟select,否则您无法控制
的行为,这是许多JS UI框架(如Dojo)所做的。

您可以将三个select中的每一行放在一个div中,并向这两个div添加一个类,如下所示:

.line{
 height: 40px; 
 width: 800px;  
  }


  <div class='line'>
  <select>...</select> <select>...</select>  <select>...</select>   
  </div>  
  <div class='line'>
  <select>...</select> <select>...</select>  <select>...</select>   
  </div>  
.line{
高度:40px;
宽度:800px;
}
... ...  ...   
... ...  ...   

建议的自定义选择控件将包裹长选项行,以适合以下尺寸:

+1如果你不是一个墨守成规的人,请立即。。。解决方案仍在我脑海中翻腾。对于一个措辞巧妙的问题,加上截图和测试用例+1!标题中没有问候语、感谢或标签。我有点爱你,我也爱你,伙计!大家一起拥抱!!