CSS Masking(翻译)

原文地址:http://www.html5rocks.com/en/tutorials/masking/adobe/

关于计算机图形,两种常见的操作是:cliping(裁剪) and  masking (屏蔽)。这两种操作都是通过隐藏一个元素的视觉部分实现的。

如果在之前,你已经用 SVG 或者 HTML Canvas 工作过。那么这两种操作对于你而言并不陌生。

cliping 定义一个元素的可见区域。在这个区域周围的内容都不会被渲染,---------因为它被裁剪掉了。

在 masking,被屏蔽的图像是用另一个被修改了alpha通道的元素合成的。一个元素被屏蔽的部分被全部或部分的透明处理了。

而这个新的 CSS Masking规范的目的是:把这两个操作带入HTML的世界。

Clipping in css 2.1

在CSS2.1中,就指定了clip 属性。这个属性使用的是矩形来裁剪,方法是 rect(),参数为top,right,bottom and left edges。

不足的是,这个 clip 属性只能使用在绝对定位的元素中。 其他的元素则被忽略了。

CSS:

img {
  position: absolute;
  clip: rect(10px, 290px, 190px, 10px);
}

HTML:

<img src="image.jpg" width="568">

在SVG中,这个 clip 元素也只能使用在特定的元素上。所以SVG规范增加 clip-path 属性来适应现在的 CSS Masking。

the clip-path property

clip-path 属性能够运用于所有的html元素,SVG图形元素和 SVG容器元素上,

它要么引用一个 <clipPath> 元素,要么引用在CSS Exclusions中介绍的几个基本形状之一。

这个 <clipPath> 元素采用SVG 上的任何图形元素 ,并且使用它们作为裁剪区域。它们分别是<rect>,<circle>,<ellipse>,<path> ,<polygon>,<image> 和<text>。

<clipPath>也允许多个图形元素结合使用。所有形状的结合作为裁剪区域。

下面的示例演示<clipPath> 的使用

CSS:

img {
  clip-path: url(#clipping);
}

HTML:

<svg>
  <defs>
    <clipPath id="clipping">
      <circle cx="284" cy="213" r="213" />
    </clipPath>
  </defs>
</svg>

<img src="image.jpg" width="568">

另一方面,基本形状不需要任何的SVG 标记。它们被增加到clip-path 中,来为简单的裁剪操作提供简单,速记的函数。

关键词像content-box,border-box,margin-box 能够结合使用基本形状来定位和指定裁剪路径的大小。

没有定义基本形状的时候,关键字充当裁剪路径,它们自己也要考虑border-radius属性。

CSS标记看起来像下面的例子:

img {
  clip-path: polygon(0px 208px, 146.5px 207px, 147px 141.2px, ...);
}

Cliping对于可视内容的呈现是非常有用的。下面的例子将不同的裁剪操作运用在图像上。

ssss

sssss

时间: 2024-10-24 02:52:32

CSS Masking(翻译)的相关文章

CSS和SVG中的剪切——clip-path属性和&lt;clipPath&gt;元素

剪切是什么 剪切是一个图形化操作,你可以部分或者完全隐藏一个元素.被剪切的元素可以是一个容器也可以是一个图像元素.元素的哪些部分显示或隐藏是由剪切的路径来决定的. 剪切路径定义了一个区域,在这个区域内的内容将会显示,而不在这个区域内的内容不会显示.这个区域被称之为“裁剪区域”.只要在这个区域之外的任何元素都不会显示.包括元素的内容.背景.边框.文本.轮廓等,甚至还包括他的子元素. 剪切的元素可以是任何容器和图片元素. 剪切路径的概念就相当于在元素上定义了一个视窗.它决定了元素哪些部分在这个“视窗

CSS遮罩——如何在CSS中使用遮罩

Css遮罩是2008年4月由苹果公司添加到webkit引擎中的.遮罩提供一种基于像素级别的,可以控制元素透明度的能力,类似于png24位或png32位中的alpha透明通道的效果. 图像是由rgb三个通道以及在每个像素上定义的颜色组成的.但是在他们之上还有第四个通道,alpha通道,通过亮度定义每个像素上的透明度.白色意味着不透明,黑色意味着透明,介于黑白之间的灰色表示半透明.你可以看到下面的图片 给一个html元素使用css遮罩,就会这样处理.不用给图片应用一个alpha通道,只需要给一个图片

CSS的clip-path

在Web网页中主要是以矩形分布的.而平面媒体则倾向于更多不同的形状.造成这种差异的原因是因为缺少合适的工具去实现我们平面媒体中的内容.这也就造成了很多设计师的创意发挥,就算是有创意,前端实现也将付出巨大的开发成本. 虽然CSS Shapes Module Level 1(CSS形状模块标准1)的规范出现,可以打破矩形设计的限制.但仍需要一些不规则的图形.而早前实现一些不规则的图形,都需借助其它的元素功能,比如CSS绘制图形,很多时候就依赖于伪元素,或多个元素.如此一来,CSS Shapes依旧无

CSS的clip-path 一

首先介绍一下,我觉得前端开发都是很具有分享精神的,很多人都写出了很多优秀的总结经验供新手们参考,本人只是个搬运工,将别人优秀的文章进行了总结,本文主要转载自  大漠  的文章  http://www.w3cplus.com/css3/introducing-css-clip-path-property.html 在Web网页中主要是以矩形分布的.而平面媒体则倾向于更多不同的形状.造成这种差异的原因是因为缺少合适的工具去实现我们平面媒体中的内容.这也就造成了很多设计师的创意发挥,就算是有创意,前端

编写可维护的css

在参与规模庞大.历时漫长且参与人数众多的项目时,所有开发者遵守如下规则极为重要: 保持 CSS 便于维护 保持代码清晰易懂 保持代码的可拓展性 为了实现这一目标,我们要采用诸多方法. 本文档第一部分将探讨语法.格式以及分析 CSS 结构:第二部分将围绕方法论.思维框架以及编写与规划 CSS 的态度. CSS 文档分析 无论编写什么文档,我们都应当尽力维持统一的风格,包括统一的注释.统一的语法与统一的命名规范. 总则 尽量将行宽控制在 80 字节以下.渐变(gradient)相关的语法以及注释中的

12个CSS高级技巧汇总

[html_css]12个CSS高级技巧汇总 2016-08-01 分类:HTML_CSS_JS笔记 阅读(10) 评论(0)  下面这些CSS高级技巧,一般人我可不告诉他哦. 使用 :not() 在菜单上应用/取消应用边框 给body添加行高 所有一切都垂直居中 逗号分隔的列表 使用负的 nth-child 选择项目 对图标使用SVG 优化显示文本 对纯CSS滑块使用 max-height 继承 box-sizing 表格单元格等宽 用Flexbox摆脱外边距的各种hack 使用属性选择器用于

CSS中的剪裁和遮罩

剪裁和遮罩都是用来隐藏元素的一些部分.显示其他部分的.当然了,这两者还是有区别的.区别主要在于这几方面:他们能做的东西,不同的语法,涉及到的不同技术,是新的还是旧的,以及浏览器支持的差异. 但不幸的是总是有相当多的过时信息在那儿,所以一起来看看能否解决这个问题. 剪裁和遮罩之间的区别 遮罩使用的是图像,剪裁使用的是路径. 想象一张从左到右.从黑到白渐变的正方形图像,它可以是一个遮罩.对于应用了这个渐变遮罩图像的元素,它在遮罩图像的黑色部分是透明(透视)的,而在遮罩图像的白色的部分是不透明(正常)

微信小程序之雪碧图(css script)

今天有朋友问我关于微信小程序中如何在不占用大量网络带宽的情况下快速加载图片,我给他推荐了两种方式 1.雪碧图(css script),有过前端经验的朋友应该都有接触过. 2.懒加载. 由于时间关系我就先为大家介绍第一种雪碧图加载,其实雪碧图加载就是将多张大小尺寸基本相同类型的图片 拼凑在一起形成一张新的图片,在页面中不会一个图片就向网络发送一次请求,这样会使得图片加载缓慢,影响 用户体验感.这里的雪碧图是由CssGaga拖拽生成的,这个软件的使用就不为大家介绍了,网上很多下载地址. 操作很简单.

你是否应该用inline-block来替代Float

原作者:Steven Bradley 发布时间:2012年11月19日 原文地址:http://www.vanseodesign.com/css/inline-blocks/ 翻译: 子毅 --------- 将JavaScript进行到底 当使用CSS开发站点布局时,浮动(float)总是做最繁重的工作.我们为大块譬如主要内容(main content)和侧边栏(sidebar)以及其内部小一些的块使用浮动(float).浮动总是解决问题的答案吗? 通常它们都工作得很好,但是有时候却很难使用.