freeCodeCamp/guide/english/css/will-change/index.md

32 lines
1.8 KiB
Markdown
Raw Normal View History

2018-10-12 19:37:13 +00:00
---
title: Will Change
---
## Will Change
The will-change property allows you to tell the browser what manipulations will occur with the element in order to optimize it.
```css
.container {
will-change: transform;
}
```
The above property will-change is used for the class ```.container```, in this case, the transformation on the element may or may not occur.
However, using this property there is an interesting side effect.
If we apply to the transform: ```translateZ (0)``` element, the element will create a new overlay context, and in some browsers it will also add a layer to its own rendering stream, which will give us a performance boost, which we are achieving.
Consequently, using ```will-change: transform```, the browser will create a new overlay context, regardless of whether we applied the transform to the element or not.
The key thing to note is that will-change will create a new overlay context only if the property also creates a new overlay context. Because the transform property creates a new overlay context, ```will-change: transform``` will also create a new overlay context.
If you used ```will-change: display```, then a new overlay context will not be created, since no value of the display property creates a new overlay context.
Let's look at another example: ```opacity```. Opacity with a value of 1 does not create a new overlay context, but with a lower value (for example, 0.9) will create. While will-change: opacity will in any case create a new overlay context.
#### More Information:
- [will-change on MDN web docs](https://developer.mozilla.org/en-US/docs/Web/CSS/will-change)
- [CSS Will Change Module Level 1 (working draft)](https://drafts.csswg.org/css-will-change/#will-change)
- [Can I use: CSS will-change property](https://caniuse.com/#feat=will-change)