我试图创建一个具有动态值的下拉列表,基本上有 5 个文本框和一个页面上的下拉列表,下拉列表从这些文本框中获取值。如果用户输入的文本大于下拉菜单的宽度,那么它会在 IE 上倾斜。我通过 select:hover{width:auto;position:absolute} 解决了这个问题。现在的问题是,如果用户输入的值都小于它收缩的下拉列表的原始大小,我想要一种方法使其不会收缩并仍然扩展。有什么想法吗??
我正在使用 dojo 和 javascript,不能使用 jquery。
我试图创建一个具有动态值的下拉列表,基本上有 5 个文本框和一个页面上的下拉列表,下拉列表从这些文本框中获取值。如果用户输入的文本大于下拉菜单的宽度,那么它会在 IE 上倾斜。我通过 select:hover{width:auto;position:absolute} 解决了这个问题。现在的问题是,如果用户输入的值都小于它收缩的下拉列表的原始大小,我想要一种方法使其不会收缩并仍然扩展。有什么想法吗??
我正在使用 dojo 和 javascript,不能使用 jquery。
在 JavaScript 中找到文本的最大宽度,如果它大于下拉列表的当前宽度,则将宽度更改为文本的最大宽度。
当您再次更改文本时,这将像您希望的那样工作(宽度不收缩),因为 JavaScript 会发现文本的最大宽度小于下拉菜单的宽度,因此宽度不会改变。
简单的解决方法是为您的下拉列表选择一个宽度,并为您的文本框值设置最大和最小长度,以便您可以控制提交的大小。否则我可以输入任何东西。
我会让你在你的问题上回到 0 并提供一个解决方案。
使用 CSS。在选择框上设置一个宽度,即使其中的内容更小,它也不会变小。
<select style="min-width:200px;" id="someUniqueIdentifier">
/* Your dynamicaly generated options*/
</select>
如果我正确阅读了问题,最简单的解决方案是像这样使用 min-width 属性(developer.mozilla.org/en-US/docs/CSS/min-width) - 选择 { min-width: 50px; 宽度:自动;} - 这将允许控件的宽度根据需要扩展,但不会低于您定义的最小宽度。这可以在 :hover 状态选择器上定义,但在元素本身上也可以正常工作(我建议)。IE8+ 支持,无需 JavaScript。