【问题标题】:select:focus{width:auto;}选择:焦点{宽度:自动;}
【发布时间】:2012-02-28 02:30:13
【问题描述】:

我有一个 CSS 问题,我不知道如何解决。 为了展开下拉列表,您必须使用下面的 css。只有在一个条件下才能正常工作,当您选择一个选项时,选择不会返回到初始宽度。为什么??? :( 这是我希望在包括 IE8 在内的所有浏览器上发生的行为,因为 IE 我必须在焦点上设置宽度。

select:focus{
    min-width:158px;
    width:auto;
}

小提琴: http://jsfiddle.net/DCjYA/304/

【问题讨论】:

  • “当你选择一个选项时,选择不会返回到初始宽度” - 你是怎么做的?
  • 展开选择以便从列表中选择一个选项,在您从列表中选择一个选项后,选择保持在自动宽度上展开而不是原始大小...
  • 也许您想使用:hover 而不是:focus。正如@Wombat 所提到的,选择框一直保持焦点,直到您单击其他内容
  • hmmmm 很有趣,但在 IE8 中不起作用
  • 好点 - IE 中的选择框似乎是难以处理的小动物。

标签: css select focus width


【解决方案1】:

看看这个!我认为这将解决您在 IE 上有关组合框的问题。

http://www.andreabianchin.it/jquery-skinner/

【讨论】:

    【解决方案2】:

    你需要强制元素在改变后失去焦点。

    添加:

    onchange="this.blur()"
    

    像这样:

    <select id="id72" class="styleDDC" onchange="this.blur()">
    

    【讨论】:

    • 我不能使用这个例子,因为在我的应用程序中我有很多弹出模式,如果我在每个 html 页面中进行修改,我会在完成我的工作之前变老 :((。我需要从 css 做一些事情,即使是 jQuery 插件也可以:)。无论如何谢谢。
    【解决方案3】:

    伪 css 类:焦点是在它被选中时(当它突出显示为蓝色时),一旦你点击其他东西,它就会缩小到你的最小宽度

    【讨论】:

    • 是的,我知道,但是我在左侧有一个文本区域,并且焦点仍然被选择宽度自动覆盖。
    • 好的,为什么要扩展?我的意思是从技术上讲,一旦有人点击它,他们将能够看到他们可用的所有选项,因此在似乎没有必要时扩展它似乎很奇怪
    • 我想要那个,因为我使用这个控件(选择)来保留一些带有长描述的移动优惠,如果没有扩展,优惠描述就无法阅读。我想在点击时返回原始宽度,因为覆盖了其他控件。
    • hmmm...好吧,您的意思是,当您的用户单击选择框时,您希望它展开,以便他们能够阅读优惠的描述(如果有),但是一旦选择它应该缩小最小宽度吧?
    • 也 :hover 在 ie8 中是错误的,但它看起来像你唯一的非 js 解决方案
    猜你喜欢
    • 2013-03-15
    • 2018-02-03
    • 2011-02-08
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 2018-09-18
    相关资源
    最近更新 更多