CSS3 linear-gradient线性渐变生成加号和减号的方法


Posted in HTML / CSS onNovember 21, 2017

在商城项目中,购物车是一个很重要的功能。其中最常见的是购物车中对库存的“+-”操作,包括抢购后面有很多算法。但是作为前端来说,购物车的结算中的+-就是一个计算而已。传统的实现方式是通过图片来实现+-按钮,而本文却将使用CSS3的linear-gradient线性渐变来实现购物车的加减操作。

要实现一个减号效果非常简单,例如要实现一个10px*2px的减号图形,则CSS:

.minus {
    background-image: linear-gradient(to top, #666, #666);
    background-size: 10px 2px;
}

原理如下,先使用渐变生成一个铺满整个元素背景的纯色(#666)渐变图片,然后使用background-size属性控制成我们想要的大小,效果就实现了。

加号效果也是类似,只是要多一层linear-gradient的累加。

最终可以实现类似下图效果:

CSS3 linear-gradient线性渐变生成加号和减号的方法

和传统::before, ::afetr伪元素配合background-color或border相比,使用渐变背景生成有个非常重要的好处,那就是居中定位非常方便,直接在background属性后面加个center即可,而传统实现通常需要绝对定位,然后再巴拉巴拉一通代码来居中,很??碌摹?/p>

下面给出本实例的全部代码,css代码如下:

.btn {
    display: inline-block;
    background: #f0f0f0 no-repeat center;
    border: 1px solid #d0d0d0;
    width: 24px; height: 24px;   
    border-radius: 2px;
    box-shadow: 0 1px rgba(100,100,100,.1);
    color: #666;
    transition: color .2s, background-color .2s;
}
.btn:active {
    box-shadow: inset 0 1px rgba(100,100,100,.1);
}
.btn:hover {
    background-color: #e9e9e9;
    color: #333;
}
.btn-plus {
    background-image: linear-gradient(to top, currentColor, currentColor), linear-gradient(to top, currentColor, currentColor);
    background-size: 10px 2px, 2px 10px;
}
.btn-minus {
    background-image: linear-gradient(to top, currentColor, currentColor);
    background-size: 10px 2px;
}

关键的html代码如下:

<a href="javascript:" class="btn btn-plus" role="button" title="增加"></a>
<input value="1" size="1">
<a href="javascript:" class="btn btn-minus" role="button" title="减少"></a>

最终的运行效果就是和上面的贴图一样。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
纯CSS3大转盘抽奖示例代码(响应式、可配置)
Jan 13 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
Dec 22 HTML / CSS
html5自带表单验证体验优化及提示气泡修改功能
Sep 12 HTML / CSS
html5触摸事件判断滑动方向的实现
Jun 05 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
Apr 15 HTML / CSS
localStorage、sessionStorage使用总结
Nov 17 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
Mar 07 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
Mar 20 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
Nov 22 HTML / CSS
canvas 基础之图像处理的使用
Apr 10 HTML / CSS
css3实现背景图片半透明内容不透明的方法示例
Apr 13 HTML / CSS
css让页脚保持在底部位置的四种方案
Jul 23 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
Nov 21 #HTML / CSS
纯css实现照片墙3D效果的示例代码
Nov 13 #HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 #HTML / CSS
CSS3制作酷炫的条纹背景
Nov 09 #HTML / CSS
css3实现文字扫光渐变动画效果的示例
Nov 07 #HTML / CSS
css3实现画半圆弧线的示例代码
Nov 06 #HTML / CSS
浅谈CSS3鼠标移入图片动态提示效果(transform)
Nov 06 #HTML / CSS
You might like
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
php以post形式发送xml的方法
2014/11/04 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
JS实现简单短信验证码界面
2017/08/07 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
python利用socketserver实现并发套接字功能
2018/01/26 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
Python实现手绘图效果实例分享
2020/07/22 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
医学生实习自我鉴定
2013/09/27 职场文书
绿色城市实施方案
2014/03/19 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
关于青春的演讲稿
2014/05/05 职场文书
自我管理的活动方案
2014/08/25 职场文书
四查四看整改措施
2014/09/19 职场文书
组织委员竞选稿
2015/11/21 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers