css clip-path

这篇具有很好参考价值的文章主要介绍了css clip-path。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 解释

clip-path 属性使用裁剪方式创建元素的可显示区域。区域内的部分显示,区域外的隐藏浏览器会裁剪掉裁剪区域以外的内容,包括: 背景,内容,边框,阴影等,另外也不会捕获裁剪区域之外的hover click等事件。

2 语法

  • basic-shape: 基本图形,包括 inset()circle()ellipse()polygon()
  • clip-source: 通过 url() 方法引用一段 SVG<clipPath> 来作为剪裁路径
  • geometry-box:单独使用时,将指定框的边缘作为剪裁路径,或者配合 basic-shape 使用,用于定义剪裁的参考框(Reference Box)
  • none: 不创建剪切路径。

2.1 basic-shape

一种形状,其大小和位置由 <geometry-box> 的值定义。如果没有指定 <geometry-box>,则将使用 border-box 用为参考框。取值可为以下值中的任意一个:

  • inset() 定义一个 inset 矩形。

参数类型:inset( <shape-arg>{1,4} [round <border-radius>]? )

其中 shape-arg 分别为矩形的上右下左顶点到被剪裁元素边缘的距离(和marginpadding参数类似),border-radius 为可选参数,用于定义 border 的圆角。

Demo:

<html>
  <head>
    <style>
      .inset {
        clip-path: inset(0);
      }
      .inset:hover {
        clip-path: inset(10px 20px 10% 20% round 20px);
      }
    </style>
  </head>
  <body>
    <div>
      <img class="inset" src="./moon.png" />
    </div>
  </body>
</html>

原图:

css clip-path,css,scene,css,前端

hover:

css clip-path,css,scene,css,前端

  • circle()定义一个圆形(使用一个半径和一个圆心位置)。

参数类型:circle( [<shape-radius>]? [at <position>]? )

其中 shape-radius 为圆形的半径,position 为圆心的位置,widthheight分别为被剪裁元素的宽高。

Demo:

<html>
  <head>
    <style>
      .circle {
        clip-path: circle(120px at center);
      }
      .circle:hover {
        clip-path: circle(50px at center);
      }
    </style>
  </head>
  <body>
    <div>
      <img class="circle" src="./moon.png" />
    </div>
  </body>
</html>

原图:

css clip-path,css,scene,css,前端

hover:

css clip-path,css,scene,css,前端

  • ellipse()定义一个椭圆(使用两个半径和一个圆心位置)。

参数类型:ellipse( [<shape-radius>{2}]? [at <position>]? )

其中 shape-radius 为椭圆x、y轴的半径,position 为椭圆中心的位置。

Demo:

<html>
  <head>
    <style>
      .ellipse {
        clip-path: ellipse(120px 100px at 50% 50%);
      }
      .ellipse:hover {
        clip-path: ellipse(100px 50px at 50% 50%);
      }
    </style>
  </head>
  <body>
    <div>
      <img class="ellipse" src="./moon.png" />
    </div>
  </body>
</html>

原图:

css clip-path,css,scene,css,前端

hover:

css clip-path,css,scene,css,前端

  • polygon()定义一个多边形(使用一个 SVG 填充规则和一组顶点)。

参数类型:polygon( [<fill-rule>,]? [<shape-arg> <shape-arg>]# )

其中 fill-rule 为填充规则,即通过一系列点去定义多边形的边界。

Demo:

<html>
  <head>
    <style>
      .polygon {
        clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%);
      }
      .polygon:hover {
        transform: rotate(145deg);
        clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
      }
    </style>
  </head>
  <body>
    <div>
      <img class="polygon" src="./moon.png" />
    </div>
  </body>
</html>


原图:

css clip-path,css,scene,css,前端

hover:

css clip-path,css,scene,css,前端

  • path()定义一个任意形状(使用一个可选的 SVG 填充规则和一个 SVG 路径定义)。

Demo:

<html>
  <head>
    <style>
      .path {
        clip-path: path(
          "M  20  240 L  20  80 L 160  80 L 160  20 L 280 100 L 160 180 L 160 120 L  60 120 L  60 240 Z"
        );
      }
      .path:hover {
        transform: rotate(145deg);
      }
    </style>
  </head>
  <body>
    <div>
      <img class="path" src="./moon.png" />
    </div>
  </body>
</html>



原图:

css clip-path,css,scene,css,前端

hover:

css clip-path,css,scene,css,前端

2.2 clip-source

即通过引用一个svg的clipPath 元素来作为剪裁路径。

Demo:

<html>
  <head>
    <style>
      .path {
        clip-path: url("#svgCircle");
      }
    </style>
  </head>
  <body>
    <div>
      <svg>
        <defs>
          <clipPath id="svgCircle">
            <circle cx="100" cy="100" r="50" />
          </clipPath>
        </defs>
      </svg>
      <img class="path" src="./moon.png" />
    </div>
  </body>
</html>

css clip-path,css,scene,css,前端

2.3 geometry-box

如果同 <basic-shape> 一起声明,它将为基本形状提供相应的参考框盒。通过自定义,它将利用确定的盒子边缘包括任何形状边角(比如说,被border-radius定义的剪切路径)。几何框盒可以有以下的值中的一个:

  • margin-box使用margin box作为引用框。

  • border-box使用 border box作为引用框。

  • padding-box使用 padding box作为引用框。

  • content-box使用 content box作为引用框。

  • fill-box利用对象边界框(object bounding box)作为引用框。

  • stroke-box]使用笔触边界框(stroke bounding box)作为引用框。

  • view-box使用最近的 SVG 视口(viewport)作为引用框。如果 viewBox 属性被指定来为元素创建 SVG 视口,引用框将会被定位在坐标系的原点,引用框位于由 viewBox 属性建立的坐标系的原点,引用框的尺寸用来设置 viewBox 属性的宽高值。

clip-path: padding-box circle(50px at 0 100px);

3 场景

3.1 动态裁剪

利用clip-path和过渡实现动态裁减

<html>
  <head>
    <style>
      .box {
        position: relative;
        width: 400px;
        height: 300px;
        overflow: hidden;
        transition: clip-path 0.3s linear;
        clip-path: circle(20px at 44px 44px);
        background: blue;
        color: #fff;
        padding-top: 100px;
      }
      .box:hover {
        clip-path: circle(460px at 44px 44px);
      }
    </style>
  </head>
  <body>
    <div class="box">
      <ul>
        <li>button1</li>
        <li>button2</li>
        <li>button3</li>
      </ul>
    </div>
  </body>
</html>

原图:

css clip-path,css,scene,css,前端

hover:

css clip-path,css,scene,css,前端

3.2 反向裁剪

设置与背景一样颜色

<html>
  <head>
    <style>
      .box {
        position: relative;
        width: 400px;
        height: 300px;
      }
      .mask {
        width: 100%;
        height: 100%;
        border-radius: 50%;
        background-color: orange;
        position: absolute;
      }
      .mask:after {
        content: "";
        position: absolute;
        width: 100%;
        height: 100%;
        clip-path: circle(100px at center);
        background: blue;
      }
    </style>
  </head>
  <body style="background-color: blue">
    <div class="box">
      <div class="mask"></div>
    </div>
  </body>
</html>

css clip-path,css,scene,css,前端文章来源地址https://www.toymoban.com/news/detail-820209.html

到了这里,关于css clip-path的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端框架前置课Node.js学习(1) fs,path,模块化,CommonJS标准,ECMAScript标准,包

    目录 什么是Node.js 定义 作用: 什么是前端工程化 Node.js为何能执行Js fs模块-读写文件 模块 语法: 1.加载fs模块对象 2.写入文件内容 3.读取文件内容 Path模块-路径处理 为什么要使用path模块 语法 URL中的端口号 http模块-创建Web服务 需求 步骤: 案例:浏览时钟 步骤: 什么是模块化 定

    2024年01月16日
    浏览(99)
  • 【前端 - CSS】第 17 课 - CSS 特性

            欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、CSS 三大特性 2.1、继承性 2.2、层叠性 2.3、优先级 3、总结          CSS 是一种用于样式化网页的语言,它具有 选择器 和 属性 的结构。通过

    2024年02月10日
    浏览(39)
  • CSS样式前端HTML页面常用CSS效果实现及其相关配置信息------前端入门基础教程

    !DOCTYPE html !-- 这是HTML的注释 -- html lang=\\\"en\\\" id=\\\"myHtml\\\"     head         !-- 这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码 --         meta charset=\\\"UTF-8\\\"         meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"         titleHtmlAll/title         

    2024年02月05日
    浏览(38)
  • 前端基础HTML、CSS--6(CSS-3)

    1.CSS的三大特性 CSS有三个非常重要的三个特性:层叠性、继承性、优先级。 1.1层叠性 相同选择器给设置相同的样式 ,此时一个样式就会 覆盖(层叠) 另一个冲突的样式。层叠性主要解决样式冲突的问题。 层叠性原则: ·样式冲突,遵循的是 就近原则 ,哪个样式离结构近

    2023年04月08日
    浏览(36)
  • 前端 | (五)CSS三大特性及常用属性 | 尚硅谷前端html+css零基础教程2023最新

    学习来源 :尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频 系列笔记 : 【HTML4】(一)前端简介 【HTML4】(二)各种各样的常用标签 【HTML4】(三)表单及HTML4收尾 【CSS2】(四)CSS基础及CSS选择器 【CSS2】(五)CSS三大特性及常用属性 【CSS2】(六)CSS盒子模型

    2024年02月17日
    浏览(34)
  • 前端三剑客CSS篇——CSS选择器

    CSS是前端三剑客不可忽略的一部分,CSS对前端来说是一个美化页面的工具,而且其功能十分强大,程序员可以如果熟练运用的话可以‘随心所欲’的更改页面的样式,使得页面更加美观。 CSS标签是由 键值对 的模式来排列的。 CSS三大特征👍 学习CSS之前,先认识一下CSS的三大

    2024年02月04日
    浏览(33)
  • 前端框架的CSS模块化(CSS Modules)

    创作纪念日之际,来给大家分享一篇文章吧 聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些

    2024年03月27日
    浏览(35)
  • 前端 | ( 十一)CSS3简介及基本语法(上) | 尚硅谷前端html+css零基础教程2023最新

    学习来源 :尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频 系列笔记 : 【HTML4】(一)前端简介 【HTML4】(二)各种各样的常用标签 【HTML4】(三)表单及HTML4收尾 【CSS2】(四)CSS基础及CSS选择器 【CSS2】(五)CSS三大特性及常用属性 【CSS2】(六)CSS盒子模型

    2024年02月16日
    浏览(34)
  • 【前端面经】CSS-CSS的工程化

    CSS 工程化的目的是解决以下问题: 宏观设计 :如何组织 CSS 代码、如何拆分、如何设计模块结构? 编码优化 :如何编写更好的 CSS 代码? 构建 :如何处理 CSS 代码,以让打包结果最佳? 可维护性 :代码写完后,如何最小化后续变更的成本?如何确保任何同事都能轻松接手

    2024年02月03日
    浏览(24)
  • 【前端|CSS系列第4篇】CSS布局之网格布局

    最近在做的一个项目前台首页有一个展示词条的功能,每一个词条都以一个固定大小的词条卡片进行展示,要将所有的词条卡片展示出来,大概是下面这种布局 每一行的卡片数目会随着屏幕大小自动变化,并且希望整个卡片区域周围不要有太大的留白,可是由于本人css学的并

    2024年02月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包