前端基础学习之css-手写优惠券样式(radial-gradient)

这篇博客详细介绍了如何使用CSS的linear-gradient和radial-gradient属性创建优惠券的内凹样式。首先,通过实例演示了线性渐变的基本用法,包括不同方向和颜色停止点的设置。接着,讲解了径向渐变,通过指定形状、大小和位置创建出从中心向外扩散的渐变效果。最后,利用这些技巧组合出上下或左右内凹的优惠券背景样式,并提供了一种实现特定优惠券样式的代码示例。
摘要由CSDN通过智能技术生成

最近组内设计师总喜欢设计类似优惠券内凹的样式UI。因此,从头开始捋一遍这种优惠券的样式。如下:
在这里插入图片描述

1.linear-gradient 线性渐变

转前端没多久,写过的css属性还不是特别多,当刚接触画这个优惠券样式的时候,搜到radial-gradient这个写法两眼一抹黑,难以理解。但是linear-gradient 经常使用就比较熟悉呀。因线性渐变使用的频率要比径向渐变高的多,因此在学习径向渐变之前,可以先再熟悉一遍线性渐变,依次类推再看径向渐变就简单的多。

linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片
创建一个线性渐变,需要指定两种颜色,还可以实现不同方向(指定为一个角度)的渐变效果,如果不指定方向,默认从下到上渐变

使用方法:background-image: linear-gradient(direction, color-stop1, color-stop2, …);

demo:

  • 最常用的简单的从左到右线性渐变(默认是从上到下的渐变方向,旋转90度,刚好从左到右。也可以使用 to right)
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		.line {
		    height: 100px;
		    width: 200px;
		    /* 90deg渐变轴,默认从上到下 */		
		    background-image: linear-gradient(90deg, red, blue);
		}
	</style>
</head>
<body>
	<div class="line">从左到右的红到蓝渐变</div>
</body>
</html>
  • 45度斜着线性渐变
    在这里插入图片描述
 /*红色20%开始渐变*/ 
background-image: linear-gradient(45deg, red 20%, blue 80%);
  • 浓缩渐变范围,直至重合,形成一个红蓝分隔的两个色块
    在这里插入图片描述
 background-image: linear-gradient(90deg, red 50%, blue 50%);
  • 颜色可以设置透明色的,transparent, 将红色改成透明色,可以看到只有蓝色的色块了
    在这里插入图片描述
 background-image: linear-gradient(90deg, transparent 50%, blue 50%);

2.radial-gradient 径向渐变

由线性渐变来推理径向渐变易于理解。

radial-gradient() 函数用径向渐变创建 “图像”。
径向渐变由中心点定义。
为了创建径向渐变你必须设置两个终止色。

使用方法:background-image: radial-gradient(shape size at position, start-color, …, last-color);

对比线性渐变,径向渐变多了圆的类型 shape、渐变大小类似圆的半径 size、渐变位置position.

demo:

  • 左上径向渐变
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		
		/* 左上 */
		.raidal1 {
			margin-top: 20px;
		    height: 100px;
		    width: 100px;
		    background:radial-gradient(200px at left top,transparent 50%,blue 50%);
		}
	</style>
</head>
<body>
	<div class='raidal1'></div>
</body>
</html>
  • 右上径向渐变
    在这里插入图片描述
background:radial-gradient(200px at right top,transparent 50%,skyblue 50%);
  • 右下径向渐变
    在这里插入图片描述
background:radial-gradient(200px at right bottom,transparent 50%,skyblue 50%);
  • 左下径向渐变
    在这里插入图片描述
background:radial-gradient(200px at left bottom,transparent 50%,skyblue 50%);
  • 稍稍缩短透明的半径长,其实就可以看见优惠券的一部分样子了
    在这里插入图片描述
background:radial-gradient(circle at left bottom, transparent 10px, #28A4F2 0)
  • 不均等半径渐变(类椭圆,两个半径长)
    在这里插入图片描述
 background:radial-gradient(200px 300px at left top,transparent 50%,skyblue 50%);
  • 通过左上、右上、左下、右下拼出上下内凹的优惠券样式背景图

在这里插入图片描述

.raidal1 {
			width: 250px;
		    height: 100px;
		    background: radial-gradient(circle at right top, transparent 10px,  skyblue 0) top left / 60px 51% no-repeat,
		      radial-gradient(circle at right bottom, transparent 10px,  skyblue 0) bottom left /60px 51% no-repeat,
		      radial-gradient(circle at left top, transparent 10px, orange 0) top right /190px 51% no-repeat,
		      radial-gradient(circle at left bottom, transparent 10px, orange 0) bottom right /190px 51% no-repeat;
		    filter: drop-shadow(3px 3px 3px rgba(0,0,0,.3));
		}
  • 通过左上、右上、左下、右下拼出左右内凹的优惠券样式背景图
    在这里插入图片描述
background: radial-gradient(circle at left bottom, transparent 10px, skyblue 0) top left /60px 30px no-repeat,
		                radial-gradient(circle at right bottom, transparent 10px, skyblue 0) top right /60px 30px no-repeat,
		                 radial-gradient(circle at left top, transparent 10px, orange 0) bottom left /60px 90px no-repeat,
		                 radial-gradient(circle at right top, transparent 10px, orange 0) bottom right /60px 90px no-repeat;
  • 常用的白色优惠券背景(只要改变不透明部分的颜色即可)
    在这里插入图片描述
background: radial-gradient(circle at left bottom, transparent 10px, #fff 0) top left /60px 30px no-repeat,
		                radial-gradient(circle at right bottom, transparent 10px, #fff 0) top right /60px 30px no-repeat,
		                 radial-gradient(circle at left top, transparent 10px, #fff 0) bottom left /60px 90px no-repeat,
		                 radial-gradient(circle at right top, transparent 10px, #fff 0) bottom right /60px 90px no-repeat;

最终实现需求
在这里插入图片描述

结束~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值