4

我设置了以下小提琴,其中包含有关如何使用 CSS3 设置选择框样式的示例。我在 IE9 中遇到问题。和伪元素阻止了它们所在label:beforelabel:after下拉箭头的“单击”动作。这在除 IE9 之外的每个浏览器中都可以正常工作。有谁知道如何调整它来工作?我全是耳朵!

http://jsfiddle.net/CXJTv/

PS我只对css想法感兴趣。我不希望 JavaScript 成为使其正常工作的必要条件。

4

2 回答 2

2

使用不透明度为零的第二个选择:

    <!DOCTYPE html>
    <html>
      <head>
        <style>
          #real { position: absolute; clip:rect(2px 51px 19px 2px); z-index:2; }
          #fake { position: absolute; opacity: 0; }
          
          body > span { display:block; position: relative; width: 64px; height: 21px; background: url(http://www.stackoverflow.com/favicon.ico) right 1px no-repeat; }
        </style>
      </head>
      <span>
        <select id="real">
          <option value="">Alpha</option>
          <option value="">Beta</option>
          <option value="">Charlie</option>
        </select>
        <select id="fake">
          <option value="">Alpha</option>
          <option value="">Beta</option>
          <option value="">Charlie</option>
        </select>
      </span>
    </html>

于 2012-10-07T18:39:49.027 回答
0

如果 IE 对您当前的实现有问题,您始终可以使用 Modernizer 或conditional statements使 IE 恢复为下拉箭头的内置标准。

这是一个小提琴,我使用条件语句只解析一个不是 IE 的浏览器的类。

在这里,我回答了一个问题,它可能会帮助您使用纯 CSS 为您的选择下拉菜单使用自定义样式。

于 2012-12-20T10:56:44.330 回答