CSS奇思妙想之-利用CSS裁剪(clip-path)完成各种图形

简介: CSS奇思妙想之-利用CSS裁剪(clip-path)完成各种图形

在日常开发当中,如果想要开发多边形,一般都需要多个盒子或者伪元素的帮助,有没有一直办法能只使用一个盒子实现呢?
有的:css裁剪

clip-path介绍

css裁剪(clip-path)这个属性平时率非常低。但是其实clip并不是CSS3的新属性,很早就开始出现了。CSS裁剪的这一概念最早是在CSS 2.1时代由clip属性引入,但该属性的限制非常多。裁剪初期只能应用于绝对定位的元素,并且只能裁剪成矩形。而在CSS3中,提供了强大的clip-path属性,突破了clip属性的众多限制。
clip-path能够让你指定一个网页元素的显示区域,而不是显示全部。在过去有个等效的属性clip,但在新的CSS规范中,它已经被标志为deprecated,用新的clip-path代替。

clip-path到底是什么?

clip-path 属性可以创建一个只有元素的部分区域可以显示的剪切区域。区域内的部分显示,区域外的隐藏。clip-path是一个css3新属性 , 一般用在svg元素上 , 但是也可以作为普通元素裁剪使用。

clip-path属性

  clip-path属性可以使用四种裁剪函数:circle()、ellipse()、inset()和polygon()。
  下面用一个例子来演示这四个函数的效果,将它们分别应用到四个div元素中,样式如下,得到的形状如下图所示。

circle():修建矩形的可视范围

image.png

clip-path: inset(10px 20px 30px 40px);

ellipse():修建圆形的可视范围

image.png

clip-path: circle(50%);

inset():修建椭圆形的可视范围

image.png

clip-path: ellipse(50% 30%);

polygon():修建任意多变形的可视范围

image.png

clip-path: polygon(0 0, 100px 0, 160px 200px, 0 200px);

 

案例

CSS实现一个鼓样式

image.png

如果使用其他方法实现,需要使用到多个盒子,例如:

image.png

像图中这样使用3个盒子。如果使用clip-path,只需要一个盒子+circle()。

div {
            background-color: blue;
            height: 200px;
            width: 400px;
            clip-path: circle(50%);

        }
CSS实现一个杠铃样式

image.png

如果使用其他方法实现,需要使用到多个盒子,例如:

image.png

像图中这样使用3个盒子。如果使用clip-path,只需要一个盒子+polygon()。

div {
            width: 200px;
            height: 300px;
            background-color: red;
            clip-path: polygon(0 0,
                    0% 42%,
                    5% 42%,
                    5% 58%,
                    0 58%,
                    0 100%,
                    100% 100%,
                    100% 58%,
                    95% 58%,
                    95% 42%,
                    100% 42%,
                    100% 0);

        }

总结

使用该属性能够完成的图形可能性非常高,许多样式不需要复杂的dom才能实现。只可惜现在还有部分浏览器不支持该功能。

目录
相关文章
|
前端开发 JavaScript
前端必看的8个HTML+CSS技巧 (六) 裁剪图像的动画
前端必看的8个HTML+CSS技巧 (六) 裁剪图像的动画
270 0
|
前端开发
用CSS绘制最常见的40种形状和图形(一)
用CSS绘制最常见的40种形状和图形(一)
186 0
|
前端开发
CSS - 使用 clip-path 轻松实现正六边形块状元素
如何使用CSS的`clip-path`属性来创建正六边形的块状元素。文章提供了详细的HTML和CSS代码示例,展示了如何实现六边形的布局和样式,并通过CSS动画增强了视觉效果。最终效果是一个包含文本的可交互的正六边形元素,当鼠标悬停时会改变颜色。
477 0
CSS - 使用 clip-path 轻松实现正六边形块状元素
|
前端开发
如何使用 CSS object-fit 进行图片的缩放和裁剪
如何使用 CSS object-fit 进行图片的缩放和裁剪
1045 0
如何使用 CSS object-fit 进行图片的缩放和裁剪
|
前端开发
学习css的clip-path属性
【7月更文挑战第1天】了解CSS `clip-path`属性,用于定义元素显示区域的裁剪形状,如圆形、椭圆、多边形、矩形及SVG路径。通过配合过渡和动画,可创建动态交互效果。例如,`clip-path: circle(radius at center);`用于创建圆形裁剪,`polygon`用于自定义多边形。还可以使用`path()`引用SVG路径数据。[资源推荐:bennettfeely.com/clippy/](https://bennettfeely.com/clippy/),提供交互式工具测试不同形状。
629 0
学习css的clip-path属性
|
前端开发
前端 CSS 经典:clip-path 裁剪
前端 CSS 经典:clip-path 裁剪
148 0
|
前端开发 UED
CSS clip-path 属性
CSS clip-path 属性
844 0
|
安全
CSS3病毒病原体图形特效
CSS3病毒病原体图形特效
125 0
CSS3病毒病原体图形特效
|
前端开发
前端 CSS 经典:clip、clip-path
前端 CSS 经典:clip、clip-path
262 0
|
Web App开发 前端开发 iOS开发
CSS3 转换,深入理解Flutter动画原理,前端基础图形
CSS3 转换,深入理解Flutter动画原理,前端基础图形

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    356
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    275
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    242
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    169
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    351
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    501
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    307
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    165
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    305
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    313