【问题标题】:how to strech select?如何拉伸选择?
【发布时间】:2009-12-17 11:34:37
【问题描述】:

我的选择有问题.. 默认值是“请选择”.. 但是有一些选项,例如“Acommodation & Hotels”.. 所以它比默认值大.. 所以它在 IE 上看不清楚,它在FF中工作正常,我该怎么做?用 css 还是 javascript?什么是最好的解决方案?谢谢

注意:我想拉伸 <option> 元素而不是选择

【问题讨论】:

标签: javascript html css


【解决方案1】:

好的,这是我经过一段时间后想出的解决方案。它会根据子选项的最大宽度自动增加选择框的大小。

<script type="text/javascript">
  window.onload = function()
  {
    var elem = document.getElementById('test');
    var values = elem.length;
    var biggest_value = 0;
    var biggest_option = '';

    for(var i = 0; i <= values; i++)
    {
      if (elem.options[i])
      {
        var len = elem.options[i].value.length;
      }

      if (biggest_value < len)
      {
        biggest_value = len;
        biggest_option = elem.options[i];
      }
    }

    document.getElementById('test').style.width = biggest_option.offsetWidth + 'px';

};
</script>

选择框:

<select id="test">
 <option value="Hello">Hello</option>
 <option value="Hello Again">Hello Again</option>
 <option value="Hello Yet Again">Hello Yet Again</option>
</select>

【讨论】:

    【解决方案2】:

    你有没有尝试使用类似的东西:

    select {width:100%}
    

    它将占用父节点的完整大小。

    【讨论】:

    • 我想拉伸
    【解决方案3】:

    CSS:

     <style type="text/css">
      .myselect
      {
         width:150px;
      }
     </style>
    

    将 myselect 类应用于您的选择框。如果需要,也可以从 150 调整宽度。

    【讨论】:

    • 但是我怎么知道它会适合..一些具有更多特征的项目值......以及它的动态列表..我没有手动把它放在那里..它不断变化..我需要适用于所有情况的东西。谢谢
    • 您可以指定一个上限。能拉伸多少?
    • 你必须使用 js。
    • 查看我的新答案,我已经为您提出了解决方案。欢呼
    猜你喜欢
    • 2020-12-01
    • 2010-10-31
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2012-07-25
    • 2017-05-11
    • 2014-05-04
    • 2020-04-09
    相关资源
    最近更新 更多