视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
jQuery实现自定义checkbox和radio样式_jquery
2020-11-27 21:40:33 责编:小采
文档
 1,起因

最近在工作中要实现自定义式的radio样式,而我们通常使用的时默认的样式,因为自己实在想不到解决的方法,于是开始搜索,最终看到了不错的解决办法,可以完美解决我们遇到的问题。

2,原理

大家都知道在写结构的时候,radio或checkbox都会跟随label一起使用,label的for属性值和input的id值相同的情况下,点击label就可以选中input,这里正是利用label 来覆盖我们的input默认样式,通过给label添加背景图片(美化的checkbox或radio),也就是在点击的过程中,我们是看不到默认的input的(给input设置z-index:-1),而点击的是label,通过不同的事件,加载不同的背景图片(这里是改变背景图片的位置)

3,设置美化checkbox或radio的默认样式

(1)页面结构


(2)jquery code(前提必须引入jquery库)



引入jquery库,再引入上面的代码后,就可以执行下面的代码



(3)生成的外层div

如果你的代码结构是label和input成对写的话,那么在它们的外层就会生成一个div,如图

(4)设置自定义默认样式

准备好一张图,如下:

你可能会问,为什么上面没有在顶端,而是有一定的距离,因为我们的input选项多是居中的,而我们是使用label的背景图片来模拟的,所以我们是为了让input选项居中显示。总之:ico小图标一定要垂直排列,一定要留有一定的距离来达到居中显示。

/* wrapper divs */
 .custom-checkbox,
 .custom-radio {
 position: relative;
 display: inline-block;
 }
 /* input, label positioning */
 .custom-checkbox input,
 .custom-radio input {
 position: absolute;
 left: 2px;
 top: 3px;
 margin: 0;
 z-index: -1;
 }
 .custom-checkbox label,
 .custom-radio label {
 display: block;
 position: relative;
 z-index: 1;
 font-size: 1.3em;
 padding-right: 1em;
 line-height: 1;
 padding: .5em 0 .5em 30px;
 margin: 0 0 .3em;
 cursor: pointer;
 }

这是最外层的一些设置,当然你可以自己修改

/* ==默认状态效果== */
 .custom-checkbox label { 
 background: url(images/checkbox.gif) no-repeat; 
 }
 .custom-radio label { 
 background: url(images/button-radio.png) no-repeat; 
 }
 .custom-checkbox label, 
 .custom-radio label {
 background-position: 0px 0px;
 }



结尾:总之,我是完美的解决了我的问题,顺便截图发一个看看

以上所述就是本文的全部内容了,希望大家能够喜欢。

下载本文
显示全文
专题