1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 表单元素–checkbox样式美化【HTML】

表单元素–checkbox样式美化【HTML】

时间:2019-08-24 19:31:41

相关推荐

表单元素–checkbox样式美化【HTML】

web前端|html教程

表单元素–checkbox样式美化

web前端-html教程

A、背景

商务网站开发源码,vscode可以做前端,ubuntu cup 信息,tomcat9.0.37,sqlite 亿级数据,jquer 本地存储 插件,新德汇前端基础框架码云,我的世界爬虫迷宫教程,php 转成数组,谷歌seo报价方案,香烟网站源码,网页自动计数赞代码,phpcms 模板 函数lzw

设计狮童鞋总是会设计各种高大上的效果图,比如下面这个土豪金的效果。

网页购物 源码,ubuntu读什么中文,爬虫 开发费用,看相php,牛能seolzw

该图中“已阅读并同意相关服务条款”前面的复选框有一个金色的边框,打钩时是一个金色的对勾。接下来说说怎样实现该效果。

图片源码大全下载 迅雷下载,ubuntu怎样启动qt,64位tomcat如何配置,爬虫释放游标,应用商店网站php源码,苏州seo费用lzw

B、解决方法 1、纯css解决方法

在css3 选择器(三)一文中介绍过一个选择器【:checked】选择器。

单选按钮和复选按钮都有选中和未选中状态。要设置这两个按钮默认样式稍微复杂点。该文通过:checked选择器配合其他表情实现自定义样式。

举例:使用:checked选择器模拟实现复选框样式。

form { border: 1px solid #ccc; padding: 20px; width: 300px; margin: 30px auto;}.wrapper { margin-bottom: 10px;}.box { display: inline-block; width: 20px; height: 20px; margin-right: 10px; position: relative; border: 2px solid orange; vertical-align: middle;}.box input { opacity: 0;}.box span { position: absolute; top: -10px; right: 3px; font-size: 30px; font-weight: bold; font-family: Arial; -webkit-transform: rotate(30deg); transform: rotate(30deg); color: orange;}input[type="checkbox"] + span { opacity: 0;}input[type="checkbox"]:checked + span { opacity: 1;}

模拟实现一个选中和未选中的样式。

没有样式时的效果图如下,

最终添加样式后效果如下。

实际开发中,我尝试使用这种方法。

这种方法有个问题:点选框时无法选中,必须点文字才能选中 。

这在实际应用中肯定是无法忍受的,实际应用中推荐第二种方法。

2、配合js解决方法

用到图片:

原理:label和input外面套一层.custom-checkbox作为父元素相对定位。

input绝对定位于左上角,label也绝对定位于左上角,覆盖input的方块。通过给label设置padding-left和背景图来模拟未选中状态。选中时加一个.right类更改背景图片为选中状态的背景图。

通过js点击事件,label被点击时在选中与未选中状态切换。

.custom-checkbox{border:1px solid red;position:relative;height:30px;}.custom-checkbox input{position:absolute;}.custom-checkbox label{padding-left:20px;position:absolute;top:-1px;left:0;background:url(images/bg-unchecked.jpg) no-repeat top 4px left 3px;}.custom-checkbox label.right{background:url(images/bg-checked.jpg) no-repeat top 2px left 3px;}

$(.custom-checkbox label).click(function(){ if($(this).hasClass( ight)){ $(.custom-checkbox label).removeClass("right"); }else{ $(.custom-checkbox label).addClass("right"); } });

问题:点击频率过快,会双击选中文字,影响用户体验。

解决办法:

效果:

C、总结

单选框样式和复选框原理是类似的。上面办法都是一种模拟实现。

正如我在::before和::after伪元素的用法 一文中说过,早在我们会使用::before和::after来实现多背景图片,现在css3多背景已成为标准;我们对复选框样式的模拟实现也许会推动它成为标准,这也就是我们为后人做的贡献了,让他们工作更轻松。

还有一点我想说的是推动前端技术发展的,不仅有前端同行们,还有我们可爱的设计师们。如果只有前端,我们会停留在已有技术的可行性上做一些保守的效果,但是有了设计师的“完美主义”,让我们脑洞大开,挑战自我,促进技术更上一层楼。

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:有问题欢迎与我讨论,共同进步。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。