当前位置: 首页 > backend >正文

[css]切角

使用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.xdnf.cn/news/16713.html

相关文章:

  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘plotly’问题
  • 常见的中间件漏洞如tomcat,weblogic,jboss,apache靶场攻略
  • 机器人学和自动化领域中的路径规划方法
  • 前端工程化包管理器:从npm基础到nvm多版本管理实战
  • 【大模型理论篇】跨语言AdaCOT
  • 详解Vite 配置中的代理功能
  • 企业级部署 (基于tomcat与nginx)
  • SQL理解——INNER JOIN
  • 7月31日作业
  • 大数据之Hive
  • SpringBoot3.x入门到精通系列:1.2 开发环境搭建
  • 本地部署VMware ESXi,并实现无公网IP远程访问管理服务器
  • Linux 服务器性能优化:性能监控,系统性能调优,进程优先级,内核升级全解析
  • Maven 与单元测试:JavaWeb 项目质量保障的基石
  • 银河麒麟桌面操作系统:自定义截图快捷键操作指南
  • 云计算一阶段Ⅱ——3. Linux 计划任务管理
  • TypeScript 基础介绍(二)
  • 使用python写一套完整的智能体小程序
  • Linux网络-------3.应⽤层协议HTTP
  • 智慧物流分拣误检率↓85%!陌讯轻量化部署算法在动态包裹检测的落地实践
  • Winform PathGradientBrush类使用
  • Conda环境下配置的基本命令
  • Ubuntu 下配置 NVIDIA 驱动与 CUDA 环境(适配 RTX 4060Ti)
  • webpack-babel
  • SAM附录详解
  • 【C#】基于SharpCompress实现压缩包解压功能
  • 揭秘动态测试:软件质量的实战防线
  • 【Golang】用官方rate包构造简单IP限流器
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博评论数据可视化分析-点赞区间折线图实现
  • 04百融云策略引擎项目laravel实战步完整安装composer及tcpdf依赖库和验证-优雅草卓伊凡