下拉菜单css根据内容扩展宽度

时间:2013-03-08 20:08:26

标签: javascript html css drop-down-menu

我试图创建一个具有动态值的下拉列表,基本上有5个文本框和页面上的下拉列表,下拉列表从这些文本框中获取值。如果用户输入的某些文本大于下拉列表的宽度,那么它在IE上会出现偏差。 我通过选择:hover {width:auto; position:absolute}来修复它。现在问题是如果用户输入的值都小于它收缩的下拉列表的原始大小,我想要一种方式,使它不收缩并仍然扩展。有什么想法??

我正在使用dojo和javascript,无法使用jquery。

4 个答案:

答案 0 :(得分:1)

在JavaScript中找到文本的最大宽度,如果它大于下拉列表的当前宽度,则将宽度更改为文本的最大宽度。

当你再次更改文本时,这会像你想要的那样工作(宽度不收缩),因为JavaScript会发现文本的最大宽度小于dropodown的宽度,所以宽度不会改变。

答案 1 :(得分:1)

简单的修复方法是为您的Dropdownlist选择一个宽度,并将最大和最小长度设置为您的文本框值,以便您可以控制提交的大小。否则我可以输入任何东西。

答案 2 :(得分:1)

我会在你的问题上回到0并提供解决方案。

使用CSS。在选择框上设置宽度,即使其中的内容较小,也不会变小。

<select style="min-width:200px;" id="someUniqueIdentifier">
    /* Your dynamicaly generated options*/
</select>

答案 3 :(得分:0)

如果我正确地阅读了这个问题,最简单的解决方案是使用min-width属性(developer.mozilla.org/en-US/docs/CSS/min-width),就像这样 - 选择{min-width :50px;宽度:自动; - 这将允许控件的宽度根据需要扩展,但不能低于您定义的最小宽度。这可以在:hover状态选择器上定义,但在元素本身上也能正常工作(我建议)。 IE8 +支持,无需JavaScript。