`
bosschen
  • 浏览: 197251 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

固定宽度下拉列表select中option内容显示不全问题解决方法

 
阅读更多

select固定,但是option里的内容可能很长,在IE9下,option里的内容会被拉长变大,这个正常。

但是在IE6,7,8下,option里的内容都与select的宽度一直,对于的内容都被截断了。

现在有个解决办法,虽不能和IE9一模一样,但是相比效果还是差不多的。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
function FixWidth(selectObj)
{
if (navigator.userAgent.toLowerCase().indexOf("firefox") > 0) {
        return;
    }

    var newSelectObj = document.createElement("select");
    newSelectObj = selectObj.cloneNode(true);
    newSelectObj.selectedIndex = selectObj.selectedIndex;
    newSelectObj.id="newSelectObj";
  
    var e = selectObj;
    var absTop = e.offsetTop;
    var absLeft = e.offsetLeft;
    while(e = e.offsetParent)
    {
        absTop += e.offsetTop;
        absLeft += e.offsetLeft;
    }
    with (newSelectObj.style)
    {
        position = "absolute";
        top = absTop + "px";
        left = absLeft + "px";
        width = "auto";
    }
   
    var rollback = function(){ RollbackWidth(selectObj, newSelectObj); };
    if(window.addEventListener)
    {
        newSelectObj.addEventListener("blur", rollback, false);
        newSelectObj.addEventListener("change", rollback, false);
    }
    else
    {
        newSelectObj.attachEvent("onblur", rollback);
        newSelectObj.attachEvent("onchange", rollback);
    }
   
    selectObj.style.visibility = "hidden";
    document.body.appendChild(newSelectObj);
   
    var newDiv = document.createElement("div");
    with (newDiv.style)
    {
        position = "absolute";
        top = (absTop-10) + "px";
        left = (absLeft-10) + "px";
        width = newSelectObj.offsetWidth+20;
        height= newSelectObj.offsetHeight+20;;
        background = "transparent";
        //background = "green";
    }
    document.body.appendChild(newDiv);
    newSelectObj.focus();
    var enterSel="false";
    var enter = function(){enterSel=enterSelect();};
    newSelectObj.onmouseover = enter;
   
    var leavDiv="false";
    var leave = function(){leavDiv=leaveNewDiv(selectObj, newSelectObj,newDiv,enterSel);};
    newDiv.onmouseleave = leave;
}
function RollbackWidth(selectObj, newSelectObj)
{
    selectObj.selectedIndex = newSelectObj.selectedIndex;
    selectObj.style.visibility = "visible";
    if(document.getElementById("newSelectObj") != null){
       document.body.removeChild(newSelectObj);
    }
}
function removeNewDiv(newDiv)
{
    document.body.removeChild(newDiv);
}
function enterSelect(){
  return "true";
}
function leaveNewDiv(selectObj, newSelectObj,newDiv,enterSel){
 if(enterSel == "true" ){
  RollbackWidth(selectObj, newSelectObj);
  removeNewDiv(newDiv);
 }
}
</script>
</head>
<body>
<form method="post">
    <div style="width:100px; height:100px; margin:100px; padding:10px; background:gray;" >
        <select name="Select1" style="width:80px;" onmouseover="FixWidth(this)">
            <option id="A" title="this is A">AAAAAAAAAAAAAAA</option>
            <option id="B" title="this is B">BBBBBBBBBBBBBBBssssssssssssssssss</option>
            <option id="C" title="this is C">CCCCCCCCCCCCCCC</option>
        </select>
    </div>
</form>
</body>
</html>

 

内容转自:http://learning.iteye.com/blog/579409

分享到:
评论

相关推荐

    select项内容过长解决办法

    然而,当`&lt;select&gt;`列表中的选项内容过长时,可能会出现一些问题,比如显示不全或者遮挡其他内容。针对这个问题,我们可以采取以下策略来优化和解决: 1. **设置固定宽度**:你可以为`&lt;select&gt;`元素设置一个固定的...

    css 设置下拉列表 select 样式

    本文将详细探讨如何使用CSS设置下拉列表`&lt;select&gt;`及其选项`&lt;option&gt;`的样式。 首先,我们需要了解`&lt;select&gt;`的基本结构。一个下拉列表通常由`&lt;select&gt;`标签包裹一系列的`&lt;option&gt;`标签组成,例如: ```html ...

    HTML5-JS 超出页面宽度部分的菜单栏转为下拉列表.rar

    这个过程通常涉及到DOM操作,例如创建一个新的&lt;select&gt;元素,然后将超出的元素转化为&lt;option&gt;元素并添加到&lt;select&gt;中。JavaScript还会监听窗口的resize事件,以便在窗口大小变化时动态调整下拉列表的内容。 在实现...

    HTML中select下拉框内容显示不全部分被覆盖的解决方法

    总的来说,在面对HTML中select下拉框内容显示不全的问题时,可以在option元素中添加title属性来作为一种简单的解决方案。这种方法虽然不能直接解决显示问题,但可以提供一种有效的信息补充机制,保证用户在任何情况...

    绿色下拉列表html

    在网页设计中,下拉列表(Select)是用户界面中常用的一种交互元素,它允许用户在预设的一组选项中进行选择。"绿色下拉列表html"可能指的是使用HTML配合CSS来创建一个具有绿色主题风格的下拉选择框。下面我们将深入...

    JS下拉列表,漂亮的下拉列表(javascript)

    总之,这款JavaScript下拉列表组件提供了一种高效、灵活的解决方案,以满足各种网页应用中的选择需求。无论是对于新手还是经验丰富的开发者,都能快速集成并自定义这个组件,以适应他们的项目需求。通过深入理解这些...

    JS+CSS和图片美化select下拉列表选择框

    在网页设计中,为了提升用户体验和界面美观度,开发者经常需要对HTML中的基本元素进行美化,其中`select`下拉列表选择框就是常见的一个部分。本文将深入探讨如何使用JavaScript (JS) 和 CSS 结合图片资源来美化`...

    vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)

    在使用Vue.js框架结合Element-UI组件库开发应用时,el-select选择器是一个常用的组件,用于实现下拉列表选择的功能。然而,在使用过程中可能会遇到一些问题,比如选择器无法显示选中的内容。这个问题可能会让开发...

    JS自定义的select控件

    2, 有时候页面上保留了很窄的地方需要写一个SELECT而SELECT下拉列表中的OPTION内容 又很长,往往显示不完整,用这个脚本new SelectView('','','','')第二个参数是上面文本框的宽度,主要是第三个参数,如果不设置就...

    select下拉滚动条

    在HTML中,`&lt;select&gt;`标签用于创建一个下拉列表,而滚动条则是在选项过多时出现,允许用户浏览并选择不在当前视窗内的选项。本文将深入探讨select下拉滚动条的实现、样式定制以及与jQuery EasyUI框架的整合。 1. **...

    div 模拟下拉列表

    在网页设计中,有时我们可能需要使用自定义的下拉列表来替代HTML原生的`&lt;select&gt;`元素,以实现更复杂或者更具设计感的交互效果。这就是"div 模拟下拉列表"的主要应用场景。这个技术主要是通过CSS和JavaScript(通常...

    IOS中safari下的select下拉菜单文字过长不换行的解决方法

    在iOS的Safari浏览器中,`&lt;select&gt;`下拉菜单中的长文字选项可能会导致显示问题,尤其是当文字过长而不换行时,这会影响到用户体验。为了解决这个问题,开发者通常需要寻找一种方法来确保长文本在下拉菜单中正确显示...

    jquery如何自定义select下拉样式

    5. **多选与分组**:如果需要支持多选或显示分组,只需在`&lt;select&gt;`元素中使用`&lt;optgroup&gt;`和`&lt;option multiple&gt;`,然后在初始化时设置`multiple`属性。 ```html &lt;select multiple&gt; &lt;option value="1"&gt;Option 1...

    JS下拉列表实例

    通过设置`&lt;select&gt;`和`&lt;option&gt;`的CSS属性,可以定制下拉列表的视觉效果。例如,改变下拉列表的宽度和字体大小: ```css #mySelect { width: 200px; font-size: 18px; } ``` `README.txt`文件可能包含了关于这个...

    bootstrap下拉列表与输入框组结合的样式调整

    在Bootstrap中,输入框组(Input Groups)和下拉列表(Dropdowns)是两个常用的功能,它们可以组合使用,以创建更复杂的用户界面。下面我们将深入探讨如何在Bootstrap中调整下拉列表与输入框组结合的样式。 首先,...

    jquery实现select带模糊搜索下拉选择框

    这段代码会实时更新下拉列表,只显示包含当前搜索词的选项。 5. **初始化**: 如果你需要替换下拉内容,可以在页面加载完成后,动态添加 `option` 元素。例如: ```javascript $(document).ready(function() { ...

    HTML下拉列表菜单

    在xHTML中,下拉列表通常通过`&lt;select&gt;`标签创建,配合`&lt;option&gt;`标签来定义各个可选项目。在这个案例中,我们结合了JavaScript和CSS,以增强下拉菜单的用户体验和视觉效果,尤其是在Internet Explorer(IE)浏览器...

    select 增加搜索框

    在网页设计和开发中,`select`元素是HTML中用于创建下拉列表的标签,它提供了用户可以从一组预定义选项中进行选择的功能。然而,原始的`select`元素通常只提供基本的交互功能,比如点击打开下拉列表,然后选择一个...

    jquery下拉列表特效

    1. 原生HTML下拉列表:HTML中的`&lt;select&gt;`元素和`&lt;option&gt;`元素组合构成了基本的下拉列表。然而,原生的下拉列表样式和交互有限,无法满足现代Web设计的需求。 2. jQuery插件DropKick:压缩包中的JamieLottering-...

Global site tag (gtag.js) - Google Analytics