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 01 HTML / CSS
CSS3 border-image详解、应用及jQuery插件
Aug 29 HTML / CSS
纯CSS3实现运行时钟的示例代码
Jan 25 HTML / CSS
详解HTML5中的Communication API基本使用方法
Jan 29 HTML / CSS
HTML5通用接口详解
Jun 12 HTML / CSS
HTML5拖放效果的实现代码
Nov 17 HTML / CSS
HTML5 移动页面自适应手机屏幕四类方法总结
Aug 17 HTML / CSS
HTML5操作WebSQL数据库的实例代码
Aug 26 HTML / CSS
Html5与App的通讯方式详解
Oct 24 HTML / CSS
吃透移动端 Html5 响应式布局
Dec 16 HTML / CSS
使用CSS连接数据库的方式
Feb 28 HTML / CSS
CSS中理解层叠性及权重如何分配
Dec 24 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP 程序授权验证开发思路
2009/07/09 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
PHP中文编码小技巧
2014/12/25 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
python实现杨氏矩阵查找
2019/03/02 Python
django和vue实现数据交互的方法
2019/08/21 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
Bath & Body Works阿联酋:在线购买沐浴和身体用品
2021/02/27 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
个人能力自我鉴赏
2014/01/25 职场文书
地理科学专业自荐信
2014/09/01 职场文书
淘宝好评语句大全
2014/12/31 职场文书
财务统计员岗位职责
2015/04/14 职场文书
责任书格式
2019/04/18 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python
基于Golang 高并发问题的解决方案
2021/05/08 Golang
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python