javascript - 使用 CSS 自定义选择下拉列表

标签 javascript css

我必须显示 <select>尺寸为 100px,但 <option>其中更长,我想显示全部内容,所以我包装了 <select><div>并将大小设置为 100px。我为下拉箭头使用了背景图像。我的问题是,正如您在下面的链接中看到的,文本与图像重叠。如何让文字不重叠在图片上?

我不想使用任何插件。

http://jsfiddle.net/JavaKB/hf5CV/8/

最佳答案

您可以使用 :after 伪元素,而不是将背景图像应用于 div,将背景图像应用于该元素,并将其放置在选择的顶部。

它看起来像这样:

.styled-select {
    width: 100px;
    padding: 2px;
    overflow: hidden;
    position: relative;
}
.styled-select:after {
    content: '';
     background: url("http://i.stack.imgur.com/DNROu.jpg") no-repeat right;
    width: 20px;
    height: 18px;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    pointer-events: none;
}

请注意,我添加了 pointer-events: none; 以确保当您单击箭头图像时单击仍会触发选择。它可能不完全跨浏览器兼容,您可能需要对此做一些研究......

我更新了你的 fiddle :http://jsfiddle.net/hf5CV/24/

关于javascript - 使用 CSS 自定义选择下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535852/

相关文章:

css - 嵌套 <article> 和 <h1> 标签?

javascript - 外部 css 是否应用于 jsPDF 生成的 pdf

javascript - 滚动时移动图像

javascript - Sails 引用错误 : Article "Model" is not defined

css - 在 div 中调整图像大小

javascript - 如何使用 jQuery 创建带有文本的 div?

javascript - Facebook SDK - 分享到托管页面

html - 淡入淡出的文本变成超链接?

javascript - 图表.js v2.6 : Add arrows to pie chart output values

javascript - Angularjs 尝试从我定义的服务调用方法时出现错误