100元
当前位置:   article > 正文

CSS不规则卡片-纯CSS制作优惠券样式-CSS实现锯齿样式_css 优惠券

css 优惠券

布局

布局 其实是学习前端的重要部分,最常用的方式就是从上而下、从左而右、亦或者两个相结合。

看上图,而这里,我们就只是最简单的布局方式,从上而下:

1、优惠券金额和过期时间

2、优惠券描述

3、按钮(其实按钮也可以放到“2”里面去)

这样分析,我们就有了 html 架构了

  1. <div class="coupon">
  2. <!-- 1、优惠券金额和过期时间 -->
  3. <div class="price">
  4. 100
  5. <span>优惠券</span>
  6. <p class="timeout">2020-12-31 18:18:18过期</p>
  7. </div>
  8. <!-- 2、优惠券描述 -->
  9. <div class="describe">
  10. <p>1、商城、美食可用</p>
  11. <p>2、过期作废</p>
  12. </div>
  13. <!-- 3、按钮 -->
  14. <div class="btns">
  15. <button>立即使用</button>
  16. </div>
  17. </div>

CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式

CSS修饰

接下来我们用 CSS 美化我们的 html 。同理,我们也根据布局分步进行样式书写。

1、优惠券金额和过期时间样式

这里的核心就是上方的凹槽和下方的锯齿

  1. .coupon{
  2. background-color: #E0E0E0;
  3. width: 200px;
  4. /* css变量 */
  5. --main-color: #EC407A;
  6. --f-color: #444;
  7. }
  8. .price {
  9. position: relative;
  10. height: 120px;
  11. background-image: radial-gradient(
  12. circle at 100px -8px, #fff 20px, var(--main-color) 21px
  13. );
  14. color: #fff;
  15. font-size: 20px;
  16. text-align: center;
  17. padding-top: 40px;
  18. }
  19. .price .timeout{
  20. color: var(--f-color);
  21. font-size: 14px;
  22. margin-top: 25px;
  23. }
  24. .price span{
  25. font-size: 14px;
  26. }

CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式

这里用到了 径向渐变,不清楚用法的小伙伴可以看看语法:

background-image: radial-gradient(shape size at position, start-color, ..., last-color);

注释:

(1)、shape 确定圆的类型:

ellipse (默认): 指定椭圆形的径向渐变。

circle :指定圆形的径向渐变

(2)、size 定义渐变的大小,可能值:

farthest-corner (默认) : 指定径向渐变的半径长度为从圆心到离圆心最远的角

closest-side :指定径向渐变的半径长度为从圆心到离圆心最近的边

closest-corner : 指定径向渐变的半径长度为从圆心到离圆心最近的角

farthest-side :指定径向渐变的半径长度为从圆心到离圆心最远的边

(3)、position 定义渐变的位置。可能值:

center(默认):设置中间为径向渐变圆心的纵坐标值。

top:设置顶部为径向渐变圆心的纵坐标值。

bottom:设置底部为径向渐变圆心的纵坐标值。

(4)、start-color, ..., last-color 用于指定渐变的起止颜色。

这样价格上方的凹槽就有了,接下来下方的锯齿我们也可以用 径向渐变 的方式实现:

  1. .price::after{
  2. position: absolute;
  3. content: '';
  4. display: block;
  5. bottom: 0px;
  6. height: 10px;
  7. width: 100%;
  8. /* background-size: 11px 200px; */
  9. background-image:
  10. radial-gradient(
  11. circle at 5px 10px,
  12. #E0E0E0 6px,
  13. var(--main-color) 7px);
  14. }

伪类元素 ::after 设置径向渐变背景为一个圆,后进行平铺就形成了锯齿,调整位置

CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式

其实还有更简单的方法,可以直接用一个虚线边框即可搞定,请看:

  1. .price::after{
  2. position: absolute;
  3. content: '';
  4. display: block;
  5. bottom: -5px;
  6. width: 100%;
  7. border-bottom: 10px dotted #E0E0E0;
  8. }

CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式

当然也有缺陷,间隔位置不好控制

2、优惠券描述与按钮 优惠券核心锯齿已经搞定了,下面都是小菜啦,非常简单咯

  1. .describe{
  2. color: #333;
  3. padding: 10px;
  4. font-size: 14px;
  5. }
  6. .btns {
  7. /* 使其button可以居中 */
  8. text-align: center;
  9. }
  10. .btns button{
  11. /* 重置按钮样式 */
  12. border: none;
  13. box-shadow: none;
  14. outline: none;
  15. background-color: var(--main-color);
  16. color: #fff;
  17. width: 50%;
  18. border-radius: 20px;
  19. line-height: 30px;
  20. margin: 40px 0 20px;
  21. cursor: pointer;
  22. }

CSS不规则卡片,纯CSS制作优惠券样式,CSSS实现锯齿样式

主题颜色

大家都看到了,我们上方代码主要颜色都采用的变量,而且变量是定义在 .coupon 类选择器里面的。这样的原因是:

1、CSS变量作用域(CSS变量只能作用于自身以及后代元素。兄弟元素,祖先元素都不能享用。)

2、方便主题使用

ok,我们就可以copy 多个 优惠券,并给每个添加一个不同的 class,比如下方的 theme1、theme2、theme3

  1. <div class="coupon theme1">
  2. ...
  3. </div>
  4. <div class="coupon theme2">
  5. ...
  6. </div>
  7. <div class="coupon theme3">
  8. ...
  9. </div>
  10. <div class="coupon">
  11. ...
  12. </div>

接下来我们就为不同主题定义不同的颜色变量

  1. .coupon.theme1{
  2. --main-color: #8E24AA;
  3. --f-color: #fff;
  4. }
  5. .coupon.theme2{
  6. --main-color: #039BE5;
  7. --f-color: #fff;
  8. }
  9. .coupon.theme3{
  10. --main-color: #26A69A;
  11. --f-color: #fff;
  12. }

这样,theme1主题下的优惠券,就是紫色主题,theme2主题下的优惠券,就是蓝色主题...,而默认主题颜色就是我们 .coupon 类选择器里面的定义的变量颜色(红色)。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/950851
推荐阅读
相关标签