mask-border-slice

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border.

The slicing process creates nine regions in total: four corners, four edges, and a middle region. Four slice lines, set a given distance from their respective sides, control the size of the regions.

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

The above diagram illustrates the location of each region.

The mask-border-repeat, mask-border-width, and mask-border-outset properties determine how these regions are used to form the final mask border.

Syntax

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

/* vertical | horizontal */
mask-border-slice: 10% 30%;

/* top | horizontal | 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: unset;

The mask-border-slice property may be specified using one to four <number-percentage> values to represent the position of each image slice. Negative values are invalid; values greater than their corresponding dimension are clamped to 100%.

  • When one position is specified, it creates all four slices at the same distance from their respective sides.
  • When two positions are specified, the first value creates slices measured from the top and bottom, the second creates slices measured from the left and right.
  • When three positions are specified, the first value creates a slice measured from the top, the second creates slices measured from the left and right, the third creates a slice measured from the bottom.
  • When four positions are specified, they create slices measured from the top, right, bottom, and left in that order (clockwise).

The optional fill value, if used, can be placed anywhere in the declaration.

Values

<number>
Represents an edge offset in pixels for raster images and coordinates for vector images. For vector images, the number is relative to the element's size, not the size of the source image, so percentages are generally preferable in these cases.
<percentage>
Represents an edge offset as a percentage of the source image's size: the width of the image for horizontal offsets, the height for vertical offsets.
fill
Preserves the middle image region. Its width and height are sized to match the top and left image regions, respectively.

Formal syntax

<number-percentage>{1,4} fill?

where
<number-percentage> = <number> | <percentage>

Specifications

Specification Status Comment
CSS Masking Module Level 1
The definition of 'mask-border-slice' in that specification.
Candidate Recommendation Initial defintion

Initial value0
Applies toall elements; In SVG, it applies to container elements excluding the <defs> element and all graphics elements
Inheritedno
Percentagesrefer to size of the mask border image
Mediavisual
Computed valueas specified
Animation typediscrete
Canonical orderper grammar

Browser compatibility

TBD

See also

Document Tags and Contributors

 Contributors to this page: mfluehr
 Last updated by: mfluehr,