CSS 丝带形状效果

news2025/1/21 8:54:59

CSS 丝带形状效果如图:

在这里插入图片描述

通过CSS创建折叠丝带形状

这里代码应该比较清晰易懂,clip-path 的值应该也容易理解。要注意的是,我们使用了 color-mix()
函数,这个属性允许创建主颜色的深色版本。现在如果我们将元素旋转相反的方向,就会得到旋转的 CSS 丝带形状。

完整代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS 丝带形状</title>
  <style>
    @property --a {
      syntax: "<angle>";
      initial-value: 0deg;
      inherits: true;
    }

    h1 {
      --r: 30px;
      --a: 15deg;
      --c: #384cff;
      line-height: 1.6;
      padding-inline: .5lh;
      color: #fff;
      background:
        linear-gradient(calc(90deg + var(--a)),
          #0000 calc(1lh*sin(var(--a)) - 1px),
          var(--c) calc(1lh*sin(var(--a))) calc(100% - 1lh*sin(var(--a))),
          #0000 calc(100% - 1lh*sin(var(--a)) + 1px));
      position: relative;
      rotate: calc(-1*var(--a));
      transform-style: preserve-3d;
      transition: --a .5s;
      cursor: pointer;
      white-space: nowrap;
    }

    h1.alt {
      --c: #beb100;
      rotate: var(--a);
      background:
        linear-gradient(calc(90deg - var(--a)),
          #0000 calc(1lh*sin(var(--a)) - 1px),
          var(--c) calc(1lh*sin(var(--a))) calc(100% - 1lh*sin(var(--a))),
          #0000 calc(100% - 1lh*sin(var(--a)) + 1px));
    }

    h1:before,
    h1:after {
      content: "";
      position: absolute;
      transform: translate3d(0, 0, -1px);
      rotate: var(--a);
      height: calc(1lh/cos(var(--a)));
      width: calc(100%*cos(var(--a)) - 1lh*sin(var(--a)));
      background: color-mix(in srgb, var(--c), #000 40%);
      pointer-events: none;
    }

    h1.alt:before,
    h1.alt:after {
      rotate: calc(-1*var(--a));
    }

    h1:before {
      right: 0;
      top: 0;
      transform-origin: top right;
      clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, var(--r) 50%);
    }

    h1.alt:before {
      bottom: 0;
      top: auto;
      transform-origin: bottom right;
    }

    h1:after {
      left: 0;
      bottom: 0;
      transform-origin: bottom left;
      clip-path: polygon(0 0, 100% 0, calc(100% - var(--r)) 50%, 100% 100%, 0 100%);
    }

    h1.alt:after {
      top: 0;
      bottom: auto;
      transform-origin: top left;
    }

    h1:hover {
      --a: 0deg;
    }

    @supports not (height:1lh) {
      h1 {
        padding-inline: .8em;
        background:
          linear-gradient(calc(90deg + var(--a)),
            #0000 calc(1.6em*sin(var(--a)) - 1px),
            var(--c) calc(1.6em*sin(var(--a))) calc(100% - 1.6em*sin(var(--a))),
            #0000 calc(100% - 1.6em*sin(var(--a)) + 1px));
      }

      h1.alt {
        background:
          linear-gradient(calc(90deg - var(--a)),
            #0000 calc(1.6em*sin(var(--a)) - 1px),
            var(--c) calc(1.6em*sin(var(--a))) calc(100% - 1.6em*sin(var(--a))),
            #0000 calc(100% - 1.6em*sin(var(--a)) + 1px));
      }

      h1:before,
      h1:after {
        height: calc(1.6em/cos(var(--a)));
        width: calc(100%*cos(var(--a)) - 1.6em*sin(var(--a)));
      }
    }


    body {
      margin: 0;
      min-height: 100vh;
      display: grid;
      place-content: center;
      grid-auto-flow: column;
      gap: 50px;
    }

    h1 {
      font-family: sans-serif;
      text-transform: uppercase;
      font-size: 2.5rem;
    }
  </style>
</head>

<body>
  <h1>I am a DHlsp</h1>
  <h1 class="alt">I am a gridAuth</h1>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1344513.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Element|InfiniteScroll 无限滚动组件的具体使用方法

目录 InfiniteScroll 无限滚动 基本用法 详细说明 v-infinite-scroll 指令 infinite-scroll-disabled 属性 infinite-scroll-distance 属性 总结 需求背景 &#xff1a; 项目统计管理列表页面&#xff0c;数据量过多时在 IE 浏览器上面会加载异常缓慢&#xff0c;导致刚…

Java多线程<二>多线程经典场景

leetcode 多线程刷题 上锁上一次&#xff0c;还是上多次&#xff1f; 同步的顺序。 1. 交替打印字符 使用sychronize同步锁使用lock锁使用concurrent的默认机制使用volitale关键字 Thread.sleep() / Thread.yield机制使用automic原子类 方式1 &#xff1a;使用互斥访问st…

【开源】基于JAVA语言的创意工坊双创管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员端2.2 Web 端2.3 移动端 三、系统展示四、核心代码4.1 查询项目4.2 移动端新增团队4.3 查询讲座4.4 讲座收藏4.5 小程序登录 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的创意工坊双创管理…

nodejs微信小程序+python+PHP的林业信息管理系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

交互式笔记Jupyter Notebook本地部署并实现公网远程访问内网服务器

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下…

HarmonyOS自学-Day4(TodoList案例)

目录 文章声明⭐⭐⭐让我们开始今天的学习吧&#xff01;TodoList小案例 文章声明⭐⭐⭐ 该文章为我&#xff08;有编程语言基础&#xff0c;非编程小白&#xff09;的 HarmonyOS自学笔记&#xff0c;此类文章笔记我会默认大家都学过前端相关的知识知识来源为 HarmonyOS官方文…

PHP开发日志 ━━ 基于PHP和JS的AES相互加密解密方法详解(CryptoJS) 适合CryptoJS4.0和PHP8.0

最近客户在做安全等保&#xff0c;需要后台登录密码采用加密方式&#xff0c;原来用个base64变形一下就算了&#xff0c;现在不行&#xff0c;一定要加密加key加盐~~ 前端使用Cypto-JS加密&#xff0c;传输给后端使用PHP解密&#xff0c;当然&#xff0c;前端虽然有key有盐&…

TP-LINK 路由器忘记密码 - 恢复出厂设置

TP-LINK 路由器忘记密码 - 恢复出厂设置 1. 恢复出厂设置2. 创建管理员密码3. 上网设置4. 无线设置5. TP-LINK ID6. 网络状态References 1. 恢复出厂设置 在设备通电的情况下&#xff0c;按住路由器背面的 Reset 按钮直到所有指示灯同时亮起后松开。 2. 创建管理员密码 3. 上网…

C++ stack使用、模拟实现、OJ题

目录 一、介绍 二、常用函数 三、模拟实现 四、OJ练习题 1、最小栈 2、栈的压入、弹出序列 3、逆波兰表达式(后缀转中缀) 4、中缀转后缀思路 5、用栈实现队列 一、介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除…

vr体验馆用什么软件计时计费,如遇到停电软件程序如何恢复时间

vr体验馆用什么软件计时计费&#xff0c;如遇到停电软件程序如何恢复时间 一、软件程序问答 如下图&#xff0c;软件以 佳易王vr体验馆计时计费软件V17.9为例说明 1、软件如何计时间&#xff1f; 点击相应编号的开始计时按钮即可 2、遇到停电再打开软件时间可以恢复吗&…

谷歌开发者账号:企业号和个人号的区别与优劣势对比

根据近期谷歌开发者账号的热点和测试情况&#xff0c;与大家探讨一下企业号和个人号的区别和优劣势对比&#xff0c;以及后续可能的发展方向。 个人号问题分析 由于过去个人号的滥用行为&#xff0c;谷歌采取了多项风险控制措施&#xff0c;这些措施包括了对注册地区进行限制&a…

vue3项目使用pako库解压后端返回zip数据

文章目录 前言一、pako 介绍一些特点和功能&#xff1a;简单示例 二、vue3 实战示例1.安装后引入库安装:引用用自定义hooks 抽取共用逻辑部署小插曲 前言 外部接口返回一个图片数据是经过zip压缩的&#xff0c;前端需要把这个数据处理成可以显示的图片。大概思路&#xff1a;z…

thinkphp学习01-thinkphp6安装

thinkphp官网 thinkphp文档 准备 安装php 安装composer 创建项目 切换到目录下&#xff0c;新建项目&#xff0c;通过composer创建 composer create-project topthink/think tp6启动 命令行启动 进入到tp6文件夹&#xff0c;执行启动命令 php think run访问localhost:8…

状态模式-举例

在软件系统中&#xff0c;有些对象也像水一样具有多种状态&#xff0c; 这些状态在某些情况下能够相互转换&#xff0c; 而且对象在不同的状态下也将具有不同的行为。 参考日志来设置状态。 如何判断一个设计模式是行为模式还是什么其他模式&#xff1f; 什么叫行为模式&#…

山西电力市场日前价格预测【2023-12-28】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-28&#xff09;山西电力市场全天平均日前电价为814.30元/MWh。其中&#xff0c;最高日前电价为1500.00元/MWh&#xff0c;预计出现在08:00~08:45,17:00~20:15。最低日前电价为394.61元/…

FFmpeg学习笔记--Centos8安装FFmpeg

1--安装指令 sudo yum install epel-releasesudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpmsudo yum install ffmpeg ffmpeg-develffmpeg -version 2--版本信息

设计模式-注册模式

设计模式专栏 模式介绍模式特点应用场景注册模式和单例模式的区别代码示例Java实现注册模式Python实现注册模式 注册模式在spring中的应用 模式介绍 注册模式是一种设计模式&#xff0c;也称为注册树或注册器模式。这种模式将类的实例化和创建分离开来&#xff0c;避免在应用程…

Linux文件的扩展属性 attr cap

文件属性 Linux文件属性分为常规属性与扩展属性&#xff0c;其中扩展属性有两种&#xff1a;attr与xattr. 一般常规的文件属性由stat API 读取&#xff0c;一般是三种权限&#xff0c;ower, group&#xff0c;时间等。 扩展属性attr 用户态API ioctl(fd, FS_IOC32_SETFLAGS…

shiro1.10版本后-IniSecurityManagerFactory过期失效

1、问题概述&#xff1f; 今天在研究了shiro的新版本shiro1.13.0版本&#xff0c;发现用了很长时间的IniSecurityManagerFactory工厂失效了。 从下图中可以看出&#xff0c;在新版本中IniSecurityManagerFactory被打上了过期线了。 那么问题来了&#xff0c;新版本如何使用呢…

数据压缩专题——静止图像的小波变换编码

随着数字图像技术的发展和应用的广泛&#xff0c;对图像的压缩和编码变得越来越重要。小波变换编码作为一种有效的图像压缩和编码方法&#xff0c;在静止图像处理中得到了广泛应用。本文将介绍静止图像的小波变换编码的基本原理和关键步骤&#xff0c;以及其在图像压缩中的应用…