问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js怎么设置select的样式,边框和三角的颜色

发布网友 发布时间:2022-05-02 23:15

我来回答

2个回答

热心网友 时间:2022-04-20 11:38

select属于浏览器内置组件,标准CSS无法调整其样式。

你可以使用div来模拟select。

首先创建一个<div />来模拟下拉框。

<div class="mySelect"></div>

然后在里面加上显示选中值的<div />和模拟三角的<div />以及下拉列表<ul />

<div class="mySelect">
    <div class="mySelectValue"></div>
    <div class="mySelectDropdown"></div>
    <ul class="mySelectOptions"></ul>
</div>

你可以用CSS来设置自己喜欢的样式。

接下来就是用Javascript来控制模拟的下拉框了。(这里为了方便,使用了jQuery)

// 创建临时DOM,内容为模拟的下拉框(其中省略的部分为上面写的html代码)
var $mySelect = $('<div class="mySelect">...</div>');
// 把原来select有的样式复制到模拟的下拉框上
$mySelect.attr('class', $('#select').attr('class'));
$mySelect.attr('style', $('#select').attr('style'));
// 把原来select的选项复制到模拟的下拉框中
$('#select option').each(function () {
    var value = $(this).attr('value'),
        name  = $(this).html();
    $mySelect.find('.mySelectOptions').append('<li class="mySelectOption" data-id="' + value + '">' + name + '</li>');
});
// 在模拟下拉框中设置选中的值
$mySelect.find('.mySelectValue').html($('#select option:selected').html());
// 隐藏原有的select
$('#select').hide();
// 给模拟的下拉框绑定事件
$mySelect
    .on('click', function (e) {
        // 阻止点击事件向上冒泡
        e.stopImmediatePropagation();
        // 反转下拉列表的显示
        $('.mySelectOptions', this).toggle();
        // 给原有的select模拟点击事件
        $('#select').trigger('click');
    })
    .on('click', '.mySelectOption', function (e) {
        // 阻止点击事件向上冒泡
        e.stopImmediatePropagation();
        // 把选中的值显示到模拟的下拉框中
        $mySelect.find('.mySelectValue').html($(this).html());
        // 隐藏下拉列表
        $mySelect.find('.mySelectOptions').hide();
        // 把选中的值给到原来的select中
        $('#select').val($(this).data('id'));
        // 给原来的select模拟change事件
        $('#select').trigger('change');
    });
// 基本功能就到此了。其中可以缓存jQuery对象来优化,还能添加焦点事件,键盘事件等,按自己的需求慢慢修改吧。

热心网友 时间:2022-04-20 12:56

给点分,我可以发个现成的给你,兼容各个浏览器哦追问css不要引图片

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
蚂蚁泡酒适合哪些人喝 蚂蚁酒的功效与禁忌蚂蚁酒的功效与作用 热血无赖卡怎么办 了解这两方面内容 益生菌孕妇 孕妇能喝益生菌吗 羽毛球双打底线是内线还是外线 为什么泰国两位尊者有不死之身 秦始皇活了多少岁?当了几年皇帝? DELL电脑D630.PP18L2手机。才用了4个多月。多少钱我可以买呢,麻烦谁说... dellpp18l现在买多少钱 如何在css中设置菜单的边框颜色 顺丰快递没有单号只有姓名能查到吗 有一种俗名叫做“东南西北&quot;的虫子,谁知道它的学名叫什么 在网页中怎么改变下拉菜单(就是&lt;select&gt;&lt;/select&gt;)的颜色? 开机时候出现一个please select boot device 的蓝色选项框,怎么做才能正常开 网页列表选中时显示蓝色边框怎么解决 mybatis动态sql如果有多个参数 小说薄暮晨光 关于小学生学习认真的名言警句 帮忙解释词语!求求!晨光绚丽、淡雅、!!!!!!求求~~我要用这些写文章 晨光j2301中性笔能写多少米 晨光ultra simple替芯 晨光ultra-simple粉色油笔深色是正品还是浅色是正品? 换季感冒 秋天吃什么水果最合适 首选 秋季上火吃些什么好呢? 简述出现什么情况的错账适用于红字冲销法? 哪吒新能原汽车的股票 海信360股票最近行情怎么样? 电脑清理所有内存,就是txt格式的文本里面的东西非常重要怎么找回? 想知道关于会计专业的,如果算错帐会怎么样??有什么风险吗 css的select的option ,鼠标移动到上面的蓝色怎么修改 请教高手:一台电脑双网卡二个不同网段怎样设置 如何使用css使select框的边框以及右边的小三角形去掉? 怎样修改下拉列表旁边的三角颜色和线框 一台电脑一个网卡两个网段通用,如何做到? 安徽高考生考上中国科技大学、安徽大学、合肥工业大学的难度有多大? 原神雪山剑在哪里 双路由设置问题,双网段,求详解 双网卡 用不同网段怎么设置 具体介绍下怎么设置两个计算机在同一网段的ip 安徽大学好吗,是重点吗,我是河南的考生,明年高考,大概要多少分可以上安徽大学呢 安徽大学怎么样?吉林的 安徽大学怎么样???请大家客观的告诉我,拜托啦 安徽大学多少分能考上 求一款电脑桌面备忘录提示软件! 脸被热水烫伤后,最好的处理方法该怎么样? 脸上被热水烫伤了有什么办法可以快一点复原 射手座女的性格是什么呢 脸被热水烫伤,火辣辣的痛,通红一片 脸被开水烫到怎么办