- CSS Tutorial
- CSS - Home
- CSS - Introduction
- CSS - Syntax
- CSS - Selectors
- CSS - Inclusion
- CSS - Measurement Units
- CSS - Colors
- CSS - Backgrounds
- CSS - Fonts
- CSS - Text
- CSS - Images
- CSS - Links
- CSS - Tables
- CSS - Borders
- CSS - Border Block
- CSS - Border Inline
- CSS - Margins
- CSS - Lists
- CSS - Padding
- CSS - Cursor
- CSS - Outlines
- CSS - Dimension
- CSS - Scrollbars
- CSS - Inline Block
- CSS - Dropdowns
- CSS - Visibility
- CSS - Overflow
- CSS - Clearfix
- CSS - Float
- CSS - Arrows
- CSS - Resize
- CSS - Quotes
- CSS - Order
- CSS - Position
- CSS - Hyphens
- CSS - Hover
- CSS - Display
- CSS - Focus
- CSS - Zoom
- CSS - Translate
- CSS - Height
- CSS - Hyphenate Character
- CSS - Width
- CSS - Opacity
- CSS - Z-Index
- CSS - Bottom
- CSS - Navbar
- CSS - Overlay
- CSS - Forms
- CSS - Align
- CSS - Icons
- CSS - Image Gallery
- CSS - Comments
- CSS - Loaders
- CSS - Attr Selectors
- CSS - Combinators
- CSS - Root
- CSS - Box Model
- CSS - Counters
- CSS - Clip
- CSS - Writing Mode
- CSS - Unicode-bidi
- CSS - min-content
- CSS - All
- CSS - Inset
- CSS - Isolation
- CSS - Overscroll
- CSS - Justify Items
- CSS - Justify Self
- CSS - Tab Size
- CSS - Pointer Events
- CSS - Place Content
- CSS - Place Items
- CSS - Place Self
- CSS - Max Block Size
- CSS - Min Block Size
- CSS - Mix Blend Mode
- CSS - Max Inline Size
- CSS - Min Inline Size
- CSS - Offset
- CSS - Accent Color
- CSS - User Select
- CSS Advanced
- CSS - Grid
- CSS - Grid Layout
- CSS - Flexbox
- CSS - Visibility
- CSS - Positioning
- CSS - Layers
- CSS - Pseudo Classes
- CSS - Pseudo Elements
- CSS - @ Rules
- CSS - Text Effects
- CSS - Paged Media
- CSS - Printing
- CSS - Layouts
- CSS - Validations
- CSS - Image Sprites
- CSS - Important
- CSS - Data Types
- CSS3 Tutorial
- CSS3 - Tutorial
- CSS - Rounded Corner
- CSS - Border Images
- CSS - Multi Background
- CSS - Color
- CSS - Gradients
- CSS - Box Shadow
- CSS - Box Decoration Break
- CSS - Caret Color
- CSS - Text Shadow
- CSS - Text
- CSS - 2d transform
- CSS - 3d transform
- CSS - Transition
- CSS - Animation
- CSS - Multi columns
- CSS - Box Sizing
- CSS - Tooltips
- CSS - Buttons
- CSS - Pagination
- CSS - Variables
- CSS - Media Queries
- CSS - Functions
- CSS - Math Functions
- CSS - Masking
- CSS - Shapes
- CSS - Style Images
- CSS - Specificity
- CSS - Custom Properties
- CSS Responsive
- CSS RWD - Introduction
- CSS RWD - Viewport
- CSS RWD - Grid View
- CSS RWD - Media Queries
- CSS RWD - Images
- CSS RWD - Videos
- CSS RWD - Frameworks
- CSS References
- CSS - Questions and Answers
- CSS - Quick Guide
- CSS - References
- CSS - Color References
- CSS - Web browser References
- CSS - Web safe fonts
- CSS - Units
- CSS - Animation
- CSS Resources
- CSS - Useful Resources
- CSS - Discussion
CSS Masking - mask
CSS mask is a shorthand property that masks and displays an image at a particular position to partially or completely hide an element.
This property is a shorthand for the following CSS properties:
Possible Values
none − This value removes the masking effect.
<mask-reference> − Sets the image source for the mask. Refer mask-image.
<masking-mode> − Determines whether an alpha or luminance mask should be applied to the mask reference specified by mask-image. Refer mask-mode.
<position> − Determines the initial position for each defined mask image relative to the mask position layer set by mask-origin. Refer mask-position.
<bg-size> − Defines the size of the mask image. Refer mask-size.
<repeat-style> − Determines how the mask image are repeated. Refer mask-repeat.
<geometry-box> − A single <geometry-box> value sets both mask-origin and mask-clip. If two values are present, the first sets the mask-origin and second mask-clip.
<geometry-box> | no-clip − Determines the area affected by the mask-image.
<compositing-operator> − This value specifies the compositing operation to be applied on the current mask layer. Refer mask-composite.
Applies to
All elements. In SVG, it applies to container elements excluding the <defs> element and all graphics elements
Syntax
Keyword Values
mask: none;
Image Values
mask: url(shop.png); mask: url(book.svg#star)
Combined Values
mask: url(heart.png) luminance; mask: url(heart.png) 40px 20px; mask: url(heart.png) 10px 10px / 100px 50px; mask: url(heart.png) repeat-y; mask: url(heart.png) border-box; mask: url(masks.svg#star) exclude;
CSS mask - none Value
The following example demonstrates that the mask: none property removes applied masking effect from the element −
<html> <head> <style> .mask-none { width: 200px; height: 200px; background-image: url("images/pink-flower.jpg"); background-color: red; -webkit-mask: url(images/heart.png); -webkit-mask-size: 100% 100%; } </style> </head> <body> <h2>Image with masking effect</h2> <div class="mask-none"></div> <h2>Image without masking effect</h2> <div class="mask-none" style="mask:none"></div> </body> </html>
CSS mask - <mask-reference>
The following example demonstrates that the mask: URL() property sets the image source as a mask layer for the div element −
<html> <head> <style> .mask-url { width: 200px; height: 200px; background-image: url("images/pink-flower.jpg"); background-size: cover; -webkit-mask: url(images/heart.png); -webkit-mask-size: 100% 100%; } </style> </head> <body> <div class="mask-url"></div> </body> </html>
CSS mask - <masking-mode>
The following example demonstrates that the -webkit-mask: linear-gradient(red 20%, pink 40%, green 60%, black 80%) luminance; property, creates a colorful gradient mask along with luminance value that affects the brightness of the image −
<html> <head> <style> img { display: block; width: 200px; height: 200px; -webkit-mask: linear-gradient(red 20%, pink 40%, green 60%, black 80%) luminance; -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; -webkit-mask-size: 100% 100%; } </style> </head> <body> <img src="images/pink-flower.jpg" alt="pink-flower"> </body> </html>
CSS mask - <position>
The following example demonstrates the mask image using the url(images/heart.png) value and the 40px 20px values to set the position of the mask −
<html> <head> <style> .mask-container { width: 200px; height: 200px; background-image: url("images/pink-flower.jpg"); background-size: cover; -webkit-mask: url(images/heart.png) 40px 20px; -webkit-mask-size: 100% 100%; } </style> </head> <body> <div class="mask-container"></div> </body> </html>
CSS mask - <bg-size>
The following example demonstrates the mask image using the url(images/heart.png) value and 10px 10px values position the mask image, and 100px 50px sets the size of the mask −
<html> <head> <style> .mask-container { width: 200px; height: 200px; background-image: url("images/pink-flower.jpg"); background-size: cover; -webkit-mask: url(images/heart.png) 10px 10px / 100px 50px; -webkit-mask-size: 100% 100%; } </style> </head> <body> <div class="mask-container"></div> </body> </html>
CSS mask - <repeat-style>
The following example demonstrates the mask image using the url(images/heart.png) value and repeat-y value indicates that the mask image should be repeated vertically −
<html> <head> <style> .mask-container { width: 200px; height: 200px; background-image: url("images/pink-flower.jpg"); background-size: cover; -webkit-mask: url(images/heart.png) repeat-y; -webkit-mask-size: 50px; -webkit-mask-position: center; } </style> </head> <body> <div class="mask-container"></div> </body> </html>
CSS mask - <geometry-box>
The following example demonstrates the mask image using the url(images/shop.png) value and border-box value indicates that mask image is positioned and sized relative to the element's border-box including border and padding −
<html> <head> <style> .container { width: 250px; height: 200px; background-color: greenyellow; padding: 10px; } .masking-image { height: 120px; border: 20px solid red; padding: 10px; background-color: violet; -webkit-mask: url('images/shop.png') border-box; -webkit-mask-size: cover; -webkit-mask-repeat: no-repeat; } </style> </head> <body> <p>The image has a violet background, and the red border around it. The areas outside the border will remain visible.</h3> <div class="container"><div class="masking-image"></div></div> </body> </html>
CSS mask - <geometry-box> | no-clip
The following example demonstrates the mask image using the url(images/bookmark.png) value.
The content-box value indicates that mask image is positioned and sized relative to the element's content-box and no-clip value prevents the mask image from being clipped to the element's content box.
<html> <head> <style> .box { max-width: 300px; border: 3px solid blue; } .mask-container { background-color: gold; display: block; padding: 20px; width: 220px; height: 220px; border: 20px solid red; -webkit-mask: url(images/bookmark.png) content-box no-clip; -webkit-mask-position: center center; -webkit-mask-repeat: repeat; -webkit-mask-size: 100px 100px; } </style> </head> <body> <div class="box"> <div class="mask-container"> <img src="images/pink-flower.jpg" alt="pink flower" width="100%"> </div> </div> </body> </html>
CSS mask - Related Properties
Following is the list of CSS properties related to mask:
property | value |
---|---|
mask-clip | Defines the area of an element that is affected by a mask. |
mask-composite | Defines the area of an element that is affected by a mask. |
mask-image | Display or hide specific areas of an element. |
mask-position | Determines where a mask image is placed on an element. |
mask-repeat | Repetition of an image along horizontal axis, vertical axis, both the axes, or not at all. |
mask-size | Defines the size of the mask image. |
mask-origin | Defines the origin of the mask image. |
mask-mode | Defines whether the mask reference given by mask-image should be considered as a luminance or alpha mask. |
mask-border | Creates a mask along the edge of an element's border. |
mask-border-mode | Specifies the blending mode used in mask border. |
mask-border-outset | Specifies the distance by which an element's mask border is set out from its border box. |
mask-border-repeat | Sets how the edges of a source image are adjusted to fit the dimensions of an element's mask border. |
mask-border-slice | Divides the image set by mask-border-source into regions. |
mask-border-source | Sets the source image used to create an element's mask border. |
mask-border-width | Sets the width of an element's mask border. |