如何解决列表框控件宽度不够的问题

在设计界面的时候,我们经常会用到类似于列表框、组合框之类的控件,他们可以显示一系列的选项。但有一个常见的问题就是:如果列表项的文本长度超过了控件的宽度,那么就只能看到一部分内容。针对这个问题,该如何解决了?

我们分别以windows程序和web程序为例来讲解(前提是,组合框的宽度不允许放大)

下面这个图演示了如果列表项的文本宽度不大于控件宽度时的样子,这是正常的

image

下面这个图演示了如果列表项的文本宽度大于控件宽度时的样子,这时会有一部分文本是看不到的

image

那么如何解决这个问题呢?我们一般比较简单的做法是设置控件的一个特殊的属性:DropDownWidth,例如

image

这样的话,再运行窗口的时候,就看到了如下的效果

image

根据经验,我们觉得实现了如上效果,绝大多数情况下用户能感觉到更加舒适。但是同样的需求,换到web程序里面就没有那么简单了,因为web页面到了客户端浏览器的时候全部是HTML标记。而且也找不到那个所谓的DropdownWidth属性了。

比较好的思路是用Tooltip来帮助用户了解到当前这一行的全部内容。

第一步:把下面的脚本,保存为一个js文件,例如DropdownTooltip.js,你可以选择放在网站任意目录下,我们这里是把它放在根目录下

window.onload = showdropitem;
function showdropitem()
{
    var el = document.getElementsByTagName("select");
    for(i=0;i<el.length;i++)
    {
        for(j=0;j<el[i].options.length;j++)
        {
            el[i].options[j].title = el[i].options[j].text;
        }
    }
}

第二步:在需要该效果的页面的HEAD里面添加以下引用

<head runat="server">
    <title>无标题页</title>
    <script src="DropdownTooltip.js" type="text/javascript"></script>
</head>

然后,你就可以看到下面这样的效果

image

原文地址:https://www.cnblogs.com/chenxizhang/p/1255411.html