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的calc()做响应模式布局的实现方法
Sep 06 HTML / CSS
CSS3 transforms应用于背景图像的解决方法
Apr 16 HTML / CSS
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
Jan 27 HTML / CSS
浅谈HTML5新增及移除的元素
Jun 27 HTML / CSS
H5 canvas中width、height和style的宽高区别详解
Nov 02 HTML / CSS
HTML5使用DOM进行自定义控制示例代码
Jun 08 HTML / CSS
用HTML5中的Canvas结合公式绘制粒子运动的教程
May 08 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
Jul 13 HTML / CSS
Html5 Geolocation获取地理位置信息实例
Dec 09 HTML / CSS
使用phonegap进行提示操作的具体方法
Mar 30 HTML / CSS
CSS预处理框架——Stylus
Apr 21 HTML / CSS
css之clearfix的用法深入理解(必看篇)
May 21 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
php防注入及开发安全详细解析
2013/08/09 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python实现批量转换文件编码的方法
2015/07/28 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
基于matplotlib xticks用法详解
2020/04/16 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
怎么写好自荐信
2013/10/30 职场文书
就业协议书范本
2014/04/11 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
小学班主任评语
2014/12/29 职场文书
考试后的感想
2015/08/07 职场文书
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang
Python常遇到的错误和异常
2021/11/02 Python
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android