有的时候我们需要实现一些自定义的checkbox或者radio效果
基本的原理就是在原生的checkbox元素上层叠加一个自定义的checkbox 层,和label 的联动还是借助原生的checkbox,只不过把原生的样式都隐藏起来。
只要我们自定义的checkbox层正好和原生的重叠就行,再搭配一些交互效果,可以在不同浏览器中实现统一的样式。
基本的原理就是在原生的checkbox元素上层叠加一个自定义的checkbox 层,和label 的联动还是借助原生的checkbox,只不过把原生的样式都隐藏起来。
只要我们自定义的checkbox层正好和原生的重叠就行,再搭配一些交互效果,可以在不同浏览器中实现统一的样式。
只需要纯CSS即可实现,不过本文用的 sass,基本原理一样,很简单。
首先看下HtmlTemplate 这块的结构,比较清晰,wrap 里面包含了我们自定义的div和原生的input checkbox.
|
|
css 的关键在于自定义checkbox 和原生的位置重叠,以及利于伪类元素实现check 的一瞬间动效
|
|
前人的想法还是挺巧妙的,奇巧淫技让我们的交互更加有趣。。这个交互的扩散效果灵感受到了Material Design 的一点影响。
Thanks for reading!