当前位置:  开发笔记 > 编程语言 > 正文

选择固定宽度的下拉列表切断IE中的内容

如何解决《选择固定宽度的下拉列表切断IE中的内容》经验,为你挑选了4个好方法。

问题:

select中的某些项目需要超过145px的指定宽度才能完全显示.

Firefox行为:单击选择会显示调整为最长元素宽度的下拉元素列表.

IE6和IE7行为:单击选择会显示下拉元素列表限制为145px宽度,因此无法读取更长的元素.

当前的UI要求我们在145px中放入此下拉列表,并让它包含更长描述的项目.

有关解决IE问题的任何建议吗?

即使扩展列表,顶部元素仍应保持145px宽.

谢谢!

css:

select.center_pull {
    background:#eeeeee none repeat scroll 0 0;
    border:1px solid #7E7E7E;
    color:#333333;
    font-size:12px;
    margin-bottom:4px;
    margin-right:4px;
    margin-top:4px;
    width:145px;
}

这是选择输入代码(此时没有backend_dropbox样式的定义)


完整的html页面,以防您想在浏览器中快速测试:





dropdown test





Select width test

小智.. 29

对于IE 8,有一个简单的纯css解决方案:

select:focus {
    width: auto;
    position: relative;
}

(如果selectbox是具有固定宽度的容器的子项,则需要设置position属性.)

不幸的是IE 7及更少不支持:焦点选择器.



1> 小智..:

对于IE 8,有一个简单的纯css解决方案:

select:focus {
    width: auto;
    position: relative;
}

(如果selectbox是具有固定宽度的容器的子项,则需要设置position属性.)

不幸的是IE 7及更少不支持:焦点选择器.


我有doctype html5,这不起作用
用于指出`:focus`和`width:auto`的+1,但我认为在很多情况下(包括我的)人们会想要使用`position:absolute`,而不仅仅是焦点.如果你不使用`position:absolute`,额外的宽度可能会导致下拉列表在某个行(或内联块)的右边浮动时下拉一行.

2> 小智..:

关于这个问题我做了Google,但没有找到任何最佳解决方案,所以创建了一个适用于所有浏览器的解决方案.

只需在页面加载时调用badFixSelectBoxDataWidthIE()函数.

function badFixSelectBoxDataWidthIE(){
    if ($.browser.msie){
      $('select').each(function(){
    if($(this).attr('multiple')== false){
      $(this)
          .mousedown(function(){
               if($(this).css("width") != "auto") {
                   var width = $(this).width();
                   $(this).data("origWidth", $(this).css("width"))
                          .css("width", "auto");
                   /* if the width is now less than before then undo */
                   if($(this).width() < width) {
        $(this).unbind('mousedown');
                       $(this).css("width", $(this).data("origWidth"));
                   }
               }
           })
           /* Handle blur if the user does not change the value */
           .blur(function(){
               $(this).css("width", $(this).data("origWidth"));

           })
           /* Handle change of the user does change the value */
           .change(function(){
               $(this).css("width", $(this).data("origWidth"));

           });
        }
      });
    }
    }


这很好,但它扩展了实际的选择控制,这将推动任何事情向右

3> Zac..:

这是一个应该帮助你的小脚本:

http://www.icant.co.uk/forreview/tamingselect/


谢谢.我想知道是否有人知道一个无JavaScript的解决方案?

4> 小智..:

对于一个简单的无Javascript解决方案,根据您的要求,为您的


无论

臭小子
这个屌丝很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有