• 技术文章 >web前端 >html教程

    表单元素--checkbox样式美化_html/css_WEB-ITnose

    2016-06-24 11:34:41原创630

    一、背景

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

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

    二、解决方法

    1、纯css解决方法

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

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

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

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

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

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

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

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

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

    2、配合js解决方法

    用到图片:

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

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

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

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

    解决办法:

    效果:

    三、总结

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

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

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

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:AMP HTML助力移动Web提速_html/css_WEB-ITnose 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 七个你可能不了解的CSS单位_html/css_WEB-ITnose• 绝对定位和浮动的问题,求大神帮忙解决_html/css_WEB-ITnose• button与submit_html/css_WEB-ITnose• 前端要给力之:代码可以有多烂?_html/css_WEB-ITnose• 收藏 检测有内容则显示,无内容则注释的代码_html/css_WEB-ITnose
    1/1

    PHP中文网