mask-border-slice

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

mask-border-slice CSS 属性将 mask-border-source 设置的图像分割成多个区域。这些区域用于构成元素的 遮罩边框 的各个部分。

语法

css
/* All sides */
mask-border-slice: 30%;

/* top and bottom | left and right */
mask-border-slice: 10% 30%;

/* top | left and right | bottom */
mask-border-slice: 30 30% 45;

/* top | right | bottom | left */
mask-border-slice: 7 12 14 5;

/* Using the `fill` keyword */
mask-border-slice: 10% fill 7 12;

/* Global values */
mask-border-slice: inherit;
mask-border-slice: initial;
mask-border-slice: revert;
mask-border-slice: revert-layer;
mask-border-slice: unset;

mask-border-slice 属性可以使用一到四个 <number-percentage> 值来指定,以表示每个图像切片的位置。负值无效;大于其对应尺寸的值将被限制为 100%

  • 当指定一个位置时,它会在距离各自侧面相同距离处创建所有四个切片。
  • 当指定两个位置时,第一个值创建从顶部和底部测量的切片,第二个值创建从左侧和右侧测量的切片。
  • 当指定三个位置时,第一个值创建从顶部测量的切片,第二个值创建从左侧和右侧测量的切片,第三个值创建从底部测量的切片。
  • 当指定四个位置时,它们按顺序(顺时针)创建从顶部右侧底部左侧测量的切片。

可选的 fill 值(如果使用)可以放置在声明中的任何位置。

<number>

对于位图图像,表示以像素为单位的边缘偏移量;对于矢量图像,表示以坐标为单位的边缘偏移量。对于矢量图像,该数字是相对于元素大小而不是源图像大小的,因此在这些情况下通常首选百分比。

<percentage>

表示边缘偏移量,作为源图像大小的百分比:水平偏移量为图像宽度,垂直偏移量为图像高度。

fill

保留中间图像区域。其宽度和高度分别与顶部和左侧图像区域匹配。

描述

切片过程总共创建九个区域:四个角、四条边和一个中间区域。四条切片线(与各自侧面保持给定距离)控制区域的大小。

The nine regions defined by the border-image or border-image-slice properties

上图展示了每个区域的位置。

  • 区域 1-4 是角区域。每个区域仅使用一次,以形成最终边框图像的角。
  • 区域 5-8 是边区域。这些区域在最终的边框图像中会重复、缩放或以其他方式修改,以匹配元素的尺寸。
  • 区域 9 是中间区域。默认情况下它会被丢弃,但如果设置了关键字 fill,则会像背景图像一样使用它。

mask-border-repeatmask-border-widthmask-border-outset 属性决定了这些区域如何用于形成最终的遮罩边框。

正式定义

初始值0
应用于所有元素;在 SVG 中,它适用于除 <defs> 元素外的容器元素以及所有图形元素
继承性
百分比指遮罩边框图像的大小
计算值同指定值
动画类型离散

正式语法

mask-border-slice = 
[ <number> | <percentage> ]{1,4} fill?

示例

基本用法

mask-border-slice 用于定义从源图像中提取的切片大小,并用于创建边框遮罩。

css
mask-border-slice: 30 fill;

基于 Chromium 的浏览器支持此属性的过时版本 — mask-box-image-slice — 并带有前缀

css
-webkit-mask-box-image-slice: 30 fill;

注意:mask-border 页面提供了一个工作示例(使用 Chromium 支持的过时带前缀的边框遮罩属性),因此您可以了解其效果。

注意: 如果您希望元素内容可见,则需要包含 fill 关键字。

规范

规范
CSS 蒙版模块 Level 1
# 遮罩边框切片

浏览器兼容性

另见