When you only want the transform on the parent element you'll want to apply the negative transform on the child.
This is especially useful for skew
and rotate
.
.container { transform: skewX(15deg) } .container > * { transform: skewX(-15deg); }
<div class="container"> <div class="content"> This content is not transformed </div> </div>
Now with CSS variables. This uses calc()
to negate the value.
:root { --value: 15deg; } .container { transform: skewX(var(--value)) } .container > * { transform: skewX(calc(-1 * var(--value))); }
Adding media-queries to handle different screen sizes with different values (rotating an element can make it really big depending on its width).
:root { --value: 15deg; } @media screen and (min-width: 1440px) { :root { --value: 5deg; } } .container { transform: skewX(var(--value)) } .container > * { transform: skewX(calc(-1 * var(--value))); }
Another example using SkewY on a full-width container
Top comments (0)