全部的

我希望能够在我的CSS中使用calc()和Transform:TranslateX.

例如.,

#myDiv {
  -webkit-transform: translateX(calc(100% - 50px));
  -moz-transform: translateX(calc(100% - 50px));
  transform: translateX(calc(100% - 50px));
}

虽然这在Chrome、Safari和Firefox中运行良好,但在IE10或IE11中不起作用.

你可以在这里看到一个简单的例子:http://jsfiddle.net/SL2mk/9/

这不可能吗?这是IE中的一个bug,还是calc()不应该在这种情况下工作?

不管怎样,我读了here篇文章,认为你可以"堆叠"translateX来达到同样的效果,我的测试似乎证实了这一点.即,

#div {
  transform: translateX(calc(100% - 50px));
}

等同于:

#div {
  transform: translateX(100%) translateX(-50px);
}

但我不知道这是不是最好的、最可靠的、面向future 的方式.

我也知道可以使用left代替translateX,但后者在使用过渡时要流畅得多,因为据我所知,它强制使用GPU来处理动画.

提前感谢您的建议和见解!

推荐答案

这是:

transform: translateX(100%) translateX(-50px);

在分析时编译,但此处为计算表达式:

transform: translateX(calc(100% - 50px));

每次浏览器需要该值时都必须解释.表达式的结果可以缓存,但我不会依赖浏览器来使用这种优化.

因此,第一个更好的意义在于,a)它现在有效,b)有效,c)它将在future 工作,直到规范生效.

Html相关问答推荐

简化指标与Delta保持一致

弹性项在主轴方向溢出

D3.js—分组条形图—更新输入数据时出错

试图让三个Divs与下面的另外三个对齐

子元素以元素X开始和结束的元素的XPath?

在 bootstrap 中的弹性项之间添加连接行

将网格包装在css中

如何在R中渲染Quarto文档时动态设置html文件名

有没有一种方法可以很容易地将这个div从底部:0转换到顶部:0?

多次使用组件时计数Angular 14中嵌套数组的指令

使用单个粗体字符串向段落添加页边空白

Tailwind CSS 忽略我的元素的填充

如何在悬停时使矩形按钮上的边框变圆

嵌入最近的 YOUTUBE 视频(不是短片,视频)

将现有内容拆分为三列或部分

如何使 Shiny 中的 selectInput Select 扩展到井面板之外或以其他方式使它们更容易被用户看到?

鼠标悬停时切换 colored颜色 的双色链接

在不扭曲图像的情况下将图像放入灵活的 Div 框内

根据百分比用多种 colored颜色 填充SVG路径

禁用的 Select 标签没有在 chrome 上的 css 中指定的 colored颜色