使用css实现一个切角的功能,有以下几种方案:

<div class="box"></div>

方案一:linear-gradient

linear-gradient配合backgroud-image可以实现背景渐变的效果。linear-gradient的渐变过渡区的占比是总的空间(高度或宽度)减去上下两个着色块空间占比剩下的空间,所以如果后一个颜色的百分比比前一个颜色小的话,会自动将当前颜色值的百分比设置为前面颜色中的最大百分比值,也就是说

background:linear-gradient(red 50%,orange 40%
);

其实相当于

background:linear-gradient(red 50%,orange 50%
);

其效果就是过渡区没有空间,即没有过度效果,两个颜色之间是一条直线。
所以可以使用这种方式实现切角效果:

div{margin: 50px;width: 200px;height: 100px;
}
.box{background:linear-gradient(135deg,transparent 10px,lightskyblue 0) left top,linear-gradient(-135deg,transparent 10px,lightskyblue 0) right top,linear-gradient(-45deg,transparent 10px,lightskyblue 0) right bottom,linear-gradient(45deg,transparent 10px,lightskyblue 0) left bottom;background-size: 50% 50%;background-repeat: no-repeat;
}

在这里插入图片描述

方案二:clip-path

clip-path: polygon可以将图形进行切割。图形的左上角为(0,0)坐标,根据坐标进行切割。
所以假设需要切一个20px的角,可以设置:

.box{width: 200px;height: 100px;background-color: lightskyblue;clip-path: polygon(20px 0,calc(100% - 20px) 0,100% 20px, 100% calc(100% - 20px),calc(100% - 20px) 100%, 20px 100%,0 calc(100% - 20px), 0 20px);
}

在这里插入图片描述

边框

上述两种方案如果加上边框,边框还是矩形,无法实现切角效果。
结合clip-path和linear-gradient可以实现加上边框的效果。
首先把linear-gradient的第一个颜色设成跟border同一个颜色,获得如下效果:

.box {background: linear-gradient(-45deg, #289eef 8px, lightskyblue 0) bottom right,linear-gradient(45deg, #289eef 8px, lightskyblue 0) bottom left,linear-gradient(135deg, #289eef 8px, lightskyblue 0) top left,linear-gradient(-135deg, #289eef 8px, lightskyblue 0) top right;background-size: 50% 51%;background-repeat: no-repeat;border: solid 1px #289eef;}

在这里插入图片描述
使用clip-path把角切掉,这里注意取值的计算,如果linear-gradient的分割线是8px,88 + 88再开根号,那么clip-path的取值应该是11px。

.box {clip-path: polygon(11px 0, calc(100% - 11px) 0,100% 11px, 100% calc(100% - 11px),calc(100% - 11px) 100%, 11px 100%,0 calc(100% - 11px), 0 11px);background: linear-gradient(-45deg, #289eef 8px, lightskyblue 0) bottom right,linear-gradient(45deg, #289eef 8px, lightskyblue 0) bottom left,linear-gradient(135deg, #289eef 8px, lightskyblue 0) top left,linear-gradient(-135deg, #289eef 8px, lightskyblue 0) top right;background-size: 50% 51%;background-repeat: no-repeat;border: solid 1px #289eef;}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享一个可以测试离线服务器性能的脚本

在日常运维工作中&#xff0c;经常会遇到系统性能莫名跟不上业务需求的情况&#xff1a;服务器响应变慢、应用加载卡顿、资源占用异常飙升等问题频繁出现&#xff0c;却难以快速问题根源究竟在CPU过载、内存泄漏、磁盘I/O阻塞还是网络带宽瓶颈。这种时候&#xff0c;特别需要一…

Python Pandas.unique函数解析与实战教程

Python Pandas.unique 函数解析与实战教程 摘要 本文章旨在全面地解析 pandas 库中的 unique 函数。pandas.unique 是一个用于从一维数组型(array-like)对象中提取唯一值的高效工具。我们将从其核心功能、函数签名、参数详解、返回值类型,到关键行为特性(如顺序保留、缺失…

排序算法入门:直接插入排序详解

这里写目录标题介绍原理代码实现分析介绍 直接插入排序是一种简单直观的排序算法&#xff0c;适用于小规模数据或基本有序的数据集。其核心思想是构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。 原理 我们…

ClickHouse MergeTree引擎:从核心架构到三级索引实战

摘要 MergeTree是ClickHouse最核心的存储引擎&#xff0c;采用列式存储LSM-Tree架构设计&#xff0c;支持高效的数据写入、合并和查询。本文将全面解析MergeTree引擎的基础概念、数据流、核心架构、索引系统以及常见问题。 基础篇&#xff1a; 一、MergeTree引擎基础概念 1. 定…

电脑手机热点方式通信(上)

电脑连接手机热点时的无线链路情况&#xff1a; 电脑上网时&#xff08;从服务器下载数据&#xff0c;或者上传指令、数据&#xff09;&#xff0c;首先电脑与手机之间基于WiFi协议在2.4G频段或者5G频段通信&#xff0c;然后手机与基站之间再基于4G LTE或者5G NR协议在2412MHz…

MySQL CPU占用过高排查指南

MySQL CPU 占用过高时&#xff0c;排查具体占用资源的表需结合系统监控、数据库分析工具和 SQL 诊断命令。&#x1f50d; ​一、快速定位问题根源​​确认 MySQL 进程占用 CPU​使用 top 或 htop 命令查看系统进程&#xff0c;确认是否为 mysqld 进程导致 CPU 飙升。若 MySQL 进…

软件交付终极闸口:验收测试全解析

验收测试&#xff1a;软件交付的关键环节 目录 验收测试&#xff1a;软件交付的关键环节 一、验收测试&#xff1a;软件交付的终极闸口 核心目标与作用 在 SDLC 中的位置 二、验收测试类型详解&#xff1a;精准匹配业务场景 三、验收测试全流程解析&#xff1a;从计划到…

深度学习核心:卷积神经网络 - 原理、实现及在医学影像领域的应用

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#,Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开发…

多线程(二) ~ 线程核心属性与状态

文章目录一. 线程创建&#xff08;start&#xff09;&#xff08;一&#xff09;继承Thread类&#xff0c;重写run&#xff08;二&#xff09;继承Runnable类&#xff0c;重写run&#xff08;三&#xff09;Thread匿名内部类重写&#xff08;四&#xff09;Runnable匿名内部类重…

Linux---编辑器vim

一、vim的基本概念1.三种模式①命令模式控制屏幕光标的移动&#xff0c;字符、字或行的删除&#xff0c;移动复制某区段及进入插入模式或者进去底行模式②插入模式可进行文本输入&#xff0c;按Esc回到命令行模式③底行模式文件保存或退出&#xff0c;也可以进行文件替换&#…

如何在 Ubuntu 24.04 或 22.04 LTS Linux 上安装 Guake 终端应用程序

通过本教程的简单步骤,在 Ubuntu 24.04 或 22.04 LTS Jammy JellyFish 上安装 Guake 终端以运行命令。 Guake(基于 Quake)是一个基于 Python 的终端模拟器。Guake 的行为类似于 Quake 中的终端:通过某个按键(热键)按下时,窗口会从屏幕顶部滚下来,再次按下相同的按键时…

谷歌Gemini 2.5重磅应用:多模态研究助手Multi-Modal Researcher,实现全网自动研究与AI播客生成

在人工智能赋能科研与内容创作的浪潮中,谷歌基于其最新大模型 Gemini 2.5 推出了突破性工具 Multi-Modal Researcher。这一系统通过整合多模态数据(文本、视频、实时网络信息),实现了从自动研究到内容生成的全流程自动化。用户只需输入研究主题或YouTube视频链接,系统即可…

防御综合实验

一、实验拓补图二、实验需求及配置需求一设备接口VLAN接口类型SW2GE0/0/2VLAN 10AccessGE0/0/3VLAN 20AccessGE0/0/1VLAN List : 10 20Trunk[SW2]vlan 10 [SW2]vlan 20 [SW2]interface GigabitEthernet 0/0/2 [SW2-GigabitEthernet0/0/2]port link-type access [SW2-GigabitEt…

堆----2.前 K 个高频元素

347. 前 K 个高频元素 - 力扣&#xff08;LeetCode&#xff09; /** 桶排序: 首先遍历数组,使用HashMap统计每个元素出现的次数 创建一个大小为length 1的List数组,下标代表元素出现次数,出现次数一致的元素放在同一个数组中 倒数遍历List数组即可得得到前K个高频元素 细节注…

如何分析Linux内存性能问题

一、Linux中的buffer与cache的区别 Linux的内存管理与监控_linux服务器虚假内存和真实内存怎么区分-CSDN博客文章浏览阅读66次。本文主要是关于【Linux系统的物理内存与虚拟内存讲解】【重点对虚拟内存的作用与用法进行了讲解说明】【最后还对如何新增扩展、优化、删除内存交换…

二次型 线性代数

知识结构总览首先是我们的二次型的定义&#xff0c;就是说什么样的才算是一个二次型。然后就是如何把二次型化为标准型&#xff0c;最后就是正定二次型的定义和判断的一些条件。二次型的定义二次型其实是一种函数表达的方式&#xff0c;如上&#xff0c;含义其实就是每个项都是…

云原生三剑客:Kubernetes + Docker + Spring Cloud 实战指南与深度整合

在当今微服务架构主导的时代&#xff0c;容器化、编排与服务治理已成为构建弹性、可扩展应用的核心支柱。本文将深入探讨如何将 Docker&#xff08;容器化基石&#xff09;、Kubernetes&#xff08;编排引擎&#xff09;与 Spring Cloud&#xff08;微服务框架&#xff09; 无缝…

vue让elementUI和elementPlus标签内属性支持rem单位

vue让elementUI和elementPlus标签内属性支持rem单位 如 Element Plus 的 el-table 默认不直接支持使用 rem 作为列宽单位 解决方法: 将 rem 转换为像素值&#xff08;基于根元素字体大小&#xff09; // 计算rem对应的像素值 const calcRem (remValue) > {// 获取根元素(ht…

基于OAuth2与JWT的微服务API安全实战经验分享

引言 在微服务架构中&#xff0c;API 安全成为了保护服务免受未授权访问和攻击的关键要素。本文结合真实生产环境案例&#xff0c;以实战经验为出发点&#xff0c;分享基于 OAuth2 JWT 的微服务 API 安全方案&#xff0c;从业务场景、技术选型、实现细节、踩坑及解决方案&…

scrapy库进阶一

scrapy 库复习 scrapy的概念&#xff1a;Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架 scrapy框架的运行流程以及数据传递过程&#xff1a; 爬虫中起始的url构造成request对象–>爬虫中间件–>引擎–>调度器调度器把request–>引擎…