代码之家  ›  专栏  ›  技术社区  ›  Franz

select元素中的图像[重复]

  •  20
  • Franz  · 技术社区  · 15 年前

    这个问题已经有了答案:

    我知道如何使用css background image属性在HTML下拉表单元素的选项旁边显示图片。

    但是,图像不会显示在所选元素上。有什么方法可以做到这一点(最好只使用CSS)?

    编辑:

    下面是列表元素的工作代码示例。但是,当下拉列表关闭时,您只看到所选元素的文本,而不看到图像:

    <select name="form[location]">
        <option value="ad" style="background: url(img/flags/ad.gif) no-repeat; padding-left: 20px;">Andorra</option>
        <option value="ae" style="background: url(img/flags/ae.gif) no-repeat; padding-left: 20px;">United Arab Emirates</option>
        <option value="af" style="background: url(img/flags/af.gif) no-repeat; padding-left: 20px;">Afghanistan</option>
        <option value="ag" style="background: url(img/flags/ag.gif) no-repeat; padding-left: 20px;">Antigua and Barbuda</option>
        <option value="ai" style="background: url(img/flags/ai.gif) no-repeat; padding-left: 20px;">Anguilla</option>
        <option value="al" style="background: url(img/flags/al.gif) no-repeat; padding-left: 20px;">Albania</option>
        <option value="am" style="background: url(img/flags/am.gif) no-repeat; padding-left: 20px;">Armenia</option>
        <option value="an" style="background: url(img/flags/an.gif) no-repeat; padding-left: 20px;">Netherlands Antilles</option>
        <option value="ao" style="background: url(img/flags/ao.gif) no-repeat; padding-left: 20px;">Angola</option>
        <option value="ar" style="background: url(img/flags/ar.gif) no-repeat; padding-left: 20px;" selected="selected">Argentina</option>
    
        [...] - I think you get the idea.
    
    </select>
    
    2 回复  |  直到 11 年前
        1
  •  12
  •   Ian Kemp    11 年前

    以跨浏览器的方式进行这项工作将是非常具有挑战性的,我怀疑这是不可能的。

    相反,您可能希望尝试使用一个看起来和行为类似于选择框的小部件,但它是用HTML&javascript制作的。

    使用jquery有一种方法:

    jquery.combobox

        2
  •  6
  •   Gabriel Hurley    15 年前

    我同意尼古拉斯的观点。严格地使用HTML和CSS做这件事是行不通的。

    您需要使用渐进增强技术在页面上为不使用javascript或使用屏幕阅读器等的用户放置一个常规的选择框,然后使用javascript将选择框替换为更漂亮、更漂亮的小部件。