重生之我在人间学CSS👩🏻‍💻小美教我终极解决方案?

clip-path 还能这么用?

1. 文章产生背景

在一个风和日丽的下午,我兴致冲冲点开了设计稿。整体撇了一眼,简简单单,这根本难不到我。已经开始幻想提前完成任务后和小美聊聊晚上吃什么了。然而事情很快就不太对了,当我做到一个图片轮播的板块的时候,轮播很快就做出来了。但是这个容器的样子有点...奇葩呀,他难道不是个矩形加边框吗。掘友们,请看下图:

2.初次尝试:border-radius

我首先尝试了border-radius常规写法

css 复制代码
    width: 100%;
    height: 380rpx;
    overflow:hidden;
    border-radius: 25rpx;

没错,四个圆角有了,但是上下边儿的突出无法呈现,由于需要将图片给限制为这个形状。就不能使用多个元素来拼接完成。

效果:

3. 再次尝试:border-radius

啊啊啊 我不死心啊。去搜一搜border-radius到底能不能实现。于是乎,我打破了自己的知识认知,掘友们,你们见过这种使用方法吗? 请看: 使用斜杠(/) :如果使用斜杠分隔两组值,如 border-radius: 50px/30px;,则第一组值表示水平半径,第二组值表示垂直半径。每组值也可以同时设置1到4个值,应用规则是依次对应左上角、右上角、右下角、左下角(顺时针顺序)。

css 复制代码
width: 100%;
height: 380rpx;
overflow:hidden;
border-radius:50%/190rpx;

它变成了个椭圆,NO! 这不是我要的效果 于是我疯狂的尝试各种参数,终于!掘友请看: 代码就改成了

css 复制代码
    border-radius:50%/30rpx;

但是!倔友们 有没有发现和设计稿对比 这个容器是很接近了。但是仔细看的话他的四个角为什么不是弧度的。 于是就有了 终极解决方案

4. 终极解决方案:clip-path + svgPath

在我苦恼之余,小美发来了消息。问我怎么了,我说一个css问题把我给困住了。具有8年前端经验的小美告诉我 !可以使用 clip-path 加上 svg的路径来绘制出不规则图形。妙啊,当即我就决定晚饭不让她请客了,改为我们AA制,总花她的钱可不行。

步骤一 搞到svg路径

哈哈,这难不倒我,幸亏我学过ps。但是刚换的电脑没有ps,于是我找到了一个在线绘制svg的软件。(链接放在文章最后)

1. 首先导入我们的原型图

2.选择钢笔 描出点

3.双击点拖拽出弧形

4.找到源码中svg的路径

点击在线编辑器的视图->源码,滑到最底部 d属性中的就是我们的svg路径

步骤二 写css代码

css 复制代码
    width: 100%;
    height: 380rpx;
    clip-path: path('m5.877152,20.650136c-0.306551,-2.78583 3.155744,-8.434791 6.994089,-8.537509c107.936005,-7.401544 212.696489,-12.84862 322.537809,2.226205c4.300329,0.761784 5.491985,3.118006 5.906472,7.068661l-0.492206,143.897751c0.293596,6.652337 -2.003362,9.052849 -6.890884,9.593183c-114.649453,7.4407 -186.813734,14.8814 -321.410499,0c-5.146575,-0.327744 -6.925426,-3.844357 -6.890884,-6.563757l0.246103,-147.684534z');

步骤三 看效果

在线绘制 SVG 软件链接

在线绘制 SVG

总结

通过这次尝试,我学到了 clip-path 和 SVG 路径在绘制不规则图形上的强大功能。传统的 border-radius 只能实现简单的圆角效果,而 clip-path 结合 SVG 路径可以精确地控制形状。虽然过程有点曲折,但最终效果还是非常满意的。这也提醒我们,在前端开发中,遇到问题时要保持耐心,多尝试不同的方法,往往会有意想不到的收获。

希望这篇文章对你们有所帮助。如果有更好的解决方案,欢迎在评论区分享!

相关推荐
前端小巷子3 分钟前
web域名解析
前端·javascript·面试
LaoZhangAI4 分钟前
沉浸式翻译API深度解析:500万用户的翻译神器如何配置[2025完整指南]
前端·后端
然我11 分钟前
链表指针玩不转?从基础到双指针,JS 实战带你破局
前端·数据结构·算法
江城开朗的豌豆11 分钟前
组件封装实战:如何设计灵活又好用的前端组件?
前端·javascript·vue.js
EndingCoder19 分钟前
算法与前端的可访问性
前端·算法·递归·树形结构
brzhang27 分钟前
别再梭哈 Curosr 了!这 AI 神器直接把需求、架构、任务一条龙全干了!
前端·后端·架构
Kagol35 分钟前
TinyEditor v4.0 alpha 版本发布,更强大的表格、更丰富的表情、体验更好的图片/视频/文件上传功能
前端·开源
然我1 小时前
路由还能这么玩?从懒加载到路由守卫,手把手带你解锁 React Router 进阶技巧
前端·react.js·面试
良木林2 小时前
JavaScript书写基础和基本数据类型
开发语言·前端·javascript
brzhang8 小时前
我操,终于有人把 AI 大佬们 PUA 程序员的套路给讲明白了!
前端·后端·架构