php radio 样式,修改radio、checkbox、select默认样式的方法_html/css_WEB-ITnose

本文介绍如何使用纯CSS和JS+图片两种方法来自定义HTML表单中的radio、checkbox及select元素样式,以满足前端页面丰富的视觉需求。

现在前端页面效果日益丰富,默认的input组件样式显然已经不能满足需求。趁着这次开发的页面中有这方面的需求,在这里整理一下修改 radio 、 checkbox 、 select 的方法。

首先上效果图:

radio and checkbox

修改radio的默认样式有两种常用的方法

纯CSS

此方法需借助CSS3,关键CSS代码如下 .demo1 input[type='radio'],.demo1 input[type="checkbox"]{ display:none;}.demo1 label:before{ content: ""; display: inline-block; width: 17px; height: 16px; margin-right: 10px; position: absolute; left: 0; bottom: 0; background-color: #3797fc;}.demo1 input[type='radio'] + label:before{ border-radius: 8px;}.demo1 input[type='checkbox'] + label:before{ border-radius: 3px;}.demo1 input[type='radio']:checked+label:before{ content: "\2022"; color: #fff; font-size: 30px; text-align: center; line-height: 19px;}.demo1 input[type='checkbox']:checked+label:before{ content: "\2713"; font-size: 15px; color: #f3f3f3; text-align: center; line-height: 17px;} 优点:充分借助了CSS3的优势,无需使用js和图片,仅用纯CSS3就可搞定

缺点:兼容性较差,仅支持IE9+

js+图片 js代码: $(function(){ $(".demospan").bind("click",function(){ $(this).addClass("on").siblings().removeClass("on"); }) $(".piaochecked").bind("click",function(){ $(this).hasClass("on_check")?$(this).removeClass("on_check"):$(this).addClass("on_check"); // $(this).toggleClass("on_check"); })}) css代码 .demospan{ display: inline-block; width: 24px; height: 18px; /*float: left;*/ padding-top: 3px; cursor: pointer; text-align: center; margin-right: 10px; background-image: url(http://sandbox.runjs.cn/uploads/rs/161/i5pmsg7s/inputradio.gif); background-repeat: no-repeat; background-position: -24px 0;}.demo21{ opacity: 0; cursor: pointer; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0);}.on{ background-position: 0 0;}.piaochecked{ display: inline-block; width: 20px; height: 20px; cursor: pointer; margin-left: 10px; text-align: center; background-image: url(http://sandbox.runjs.cn/uploads/rs/161/i5pmsg7s/checkbox_01.gif); background-repeat: no-repeat; background-position: 0 0;}.on_check{ background-position: 0 -21px;}.cbdemo2{ opacity: 0; cursor: pointer; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=0)"; filter:alpha(opacity=0);} 优点:兼容性高,支持IE6+

缺点:使用js+图片较为麻烦

select /*select*/ .select select{ /*复写Chrome和Firefox里面的边框*/ border:1px solid green; /*清除默认样式*/ appearance:none; -moz-appearance:none; -webkit-appearance:none;/*在选择框的最右侧中间显示小箭头图片*/ background: url("http://ourjs.github.io/static/2015/arrow.png") no-repeat scroll right center transparent; /*为下拉小箭头留出一点位置,避免被文字覆盖*/ padding-right: 14px; } /*清除ie的默认选择框样式清除,隐藏下拉箭头*/select::-ms-expand { display: none; }

该方法关键在于清除默认样式,使用css3的appearance属性,但是兼容性较差,仅支持IE9+。若要兼容低版本浏览器,可以使用Div进行模拟。

Todo 兼容更低版本浏览器的select样式修改

最后附上演示链接: 修改radio、checkbox和select默认样式

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

const include = [ 'qs', 'url', 'vue', 'sass', 'mitt', 'axios', 'pinia', 'dayjs', 'qrcode', 'unocss', 'vue-router', 'vue-types', 'vue-i18n', 'crypto-js', 'cropperjs', 'lodash-es', 'nprogress', 'web-storage-cache', '@iconify/iconify', '@vueuse/core', '@zxcvbn-ts/core', 'echarts/core', 'echarts/charts', 'echarts/components', 'echarts/renderers', 'echarts-wordcloud', '@wangeditor/editor', '@wangeditor/editor-for-vue', '@microsoft/fetch-event-source', 'markdown-it', 'markmap-view', 'markmap-lib', 'markmap-toolbar', 'highlight.js', 'element-plus', 'element-plus/es', 'element-plus/es/locale/lang/zh-cn', 'element-plus/es/locale/lang/en', 'element-plus/es/components/avatar/style/css', 'element-plus/es/components/space/style/css', 'element-plus/es/components/backtop/style/css', 'element-plus/es/components/form/style/css', 'element-plus/es/components/radio-group/style/css', 'element-plus/es/components/radio/style/css', 'element-plus/es/components/checkbox/style/css', 'element-plus/es/components/checkbox-group/style/css', 'element-plus/es/components/switch/style/css', 'element-plus/es/components/time-picker/style/css', 'element-plus/es/components/date-picker/style/css', 'element-plus/es/components/descriptions/style/css', 'element-plus/es/components/descriptions-item/style/css', 'element-plus/es/components/link/style/css', 'element-plus/es/components/tooltip/style/css', 'element-plus/es/components/drawer/style/css', 'element-plus/es/components/dialog/style/css', 'element-plus/es/components/checkbox-button/style/css', 'element-plus/es/components/option-group/style/css', 'element-plus/es/components/radio-button/style/css', 'element-plus/es/components/cascader/style/css', 'element-plus/es/components/color-picker/style/css', 'element-plus/es/components/input-number/style/css', 'element-plus/es/components/rate/style/css', 'element-plus/es/components/select-v2/style/css', 'element-plus/es/components/tree-select/style/css', 'element-plus/es/components/slider/style/css', 'element-plus/es/components/time-select/style/css', 'element-plus/es/components/autocomplete/style/css', 'element-plus/es/components/image-viewer/style/css', 'element-plus/es/components/upload/style/css', 'element-plus/es/components/col/style/css', 'element-plus/es/components/form-item/style/css', 'element-plus/es/components/alert/style/css', 'element-plus/es/components/breadcrumb/style/css', 'element-plus/es/components/select/style/css', 'element-plus/es/components/input/style/css', 'element-plus/es/components/breadcrumb-item/style/css', 'element-plus/es/components/tag/style/css', 'element-plus/es/components/pagination/style/css', 'element-plus/es/components/table/style/css', 'element-plus/es/components/table-v2/style/css', 'element-plus/es/components/table-column/style/css', 'element-plus/es/components/card/style/css', 'element-plus/es/components/row/style/css', 'element-plus/es/components/button/style/css', 'element-plus/es/components/menu/style/css', 'element-plus/es/components/sub-menu/style/css', 'element-plus/es/components/menu-item/style/css', 'element-plus/es/components/option/style/css', 'element-plus/es/components/dropdown/style/css', 'element-plus/es/components/dropdown-menu/style/css', 'element-plus/es/components/dropdown-item/style/css', 'element-plus/es/components/skeleton/style/css', 'element-plus/es/components/skeleton/style/css', 'element-plus/es/components/backtop/style/css', 'element-plus/es/components/menu/style/css', 'element-plus/es/components/sub-menu/style/css', 'element-plus/es/components/menu-item/style/css', 'element-plus/es/components/dropdown/style/css', 'element-plus/es/components/tree/style/css', 'element-plus/es/components/dropdown-menu/style/css', 'element-plus/es/components/dropdown-item/style/css', 'element-plus/es/components/badge/style/css', 'element-plus/es/components/breadcrumb/style/css', 'element-plus/es/components/breadcrumb-item/style/css', 'element-plus/es/components/image/style/css', 'element-plus/es/components/collapse-transition/style/css', 'element-plus/es/components/timeline/style/css', 'element-plus/es/components/timeline-item/style/css', 'element-plus/es/components/collapse/style/css', 'element-plus/es/components/collapse-item/style/css', 'element-plus/es/components/button-group/style/css', 'element-plus/es/components/text/style/css', 'element-plus/es/components/segmented/style/css', '@element-plus/icons-vue', 'element-plus/es/components/footer/style/css', 'element-plus/es/components/empty/style/css', 'element-plus/es/components/mention/style/css' ] const exclude = ['@iconify/json'] export { include, exclude }
最新发布
07-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值