All,
I would like to be able to use calc() with transform:translateX in my CSS.
E.g.,
#myDiv { -webkit-transform: translateX(calc(100% - 50px)); -moz-transform: translateX(calc(100% - 50px)); transform: translateX(calc(100% - 50px)); }
While this works perfectly in Chrome, Safari, and Firefox - it does not work in IE10 or IE11.
You can see a simple example here: http://jsfiddle.net/SL2mk/9/
Is this impossible? Is it a bug in IE, or is calc()
not supposed to work in this context?
For what it's worth - I read here that you can "stack" translateX
to acheive the same effect, and my testing seems to confirm this. I.e.,
#div { transform: translateX(calc(100% - 50px)); }
is the same as:
#div { transform: translateX(100%) translateX(-50px); }
But I don't know if this is the best, most reliable, and future-proof way to do this.
I also know that it's possible to use left
instead of translateX
, but the latter is much smoother when used with transitions, since, as I understand it, it forces the use of the GPU to handle the animation.
Thanks in advance for your advice and insight!