CSS shape()函数

18 阅读1分钟

最近的chrome blog又更新了,里面提到了一个shape()函数,体验了一下,好用,但是有一定的上手成本~

blog原文👉developer.chrome.com/blog/css-sh…

该方法主要是应用于针对clip-path上,可以实现兼具响应式的同时可以支持非多边形状。

clip-path

clip-path 是一个 CSS 属性,用于定义一个可视区域,元素的内容将被限制在这个区域内。常见的剪裁形状包括:圆形、椭圆、多边形、SVG 路径

👇下面的动图为多边形生成网址,bennettfeely.com/clippy clip-path

下面分别举例用polygonpath,来一起回顾一下clip-path。预览链接🔗

/* 对话框 polygon */
clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);
/* 流线 path */
clip-path: path("M 0 20 C 25 0 75 40 100 20 V 80 C 75 100 25 60 0 80 z");

polygon和path实现效果图

path和polygon优缺点对比

方法优势缺陷
polygon()✅百分比坐标响应式❌仅支持直线多边形
svg path()✅支持复杂曲线路径❌绝对单位无法自适应

shape()

现在shap()可以支持复杂曲线路径和响应式。除此之外,还允许混合单位(百分比、vw、calc等),支持CSS变量和数学函数动态调整路径。

方法polygon()path()shape()
响应式支持
曲线路径
动态参数(CSS变量)有限

兼容性

应用案例

动态参数

形状动态.gif codepen.io/web-dot-dev…

各类形状

效果图核心代码
image.pngimage.png
image.pngimage.png
image.pngimage.png

基础语法

官方语法说明

image.png

,起始点;by,相对值; to:绝对值

数据说明(速记):

关键词说明关键词说明
from起始点line线段
hline水平线vline垂直线
curve贝塞尔曲线close闭合标志

image.png