我正在用CSS过渡在鼠标悬停时从右到左设置一个容器动画。在InternetExplorer以外的所有浏览器中,此功能均正常运行。原因是我在CSSleft属性中使用了(并且需要使用)calc()。
CSS看起来像这样:
div {
background: red;
width: 100px;
height: 100px;
position: absolute;
top: 100px;
left: 90%;
-webkit-transition: left 0.7s cubic-bezier(0.77, 0, 0.175, 1);
-moz-transition: left 0.7s cubic-bezier(0.77, 0, 0.175, 1);
-o-transition: left 0.7s cubic-bezier(0.77, 0, 0.175, 1);
transition: left 0.7s cubic-bezier(0.77, 0, 0.175, 1);
}
div.translate-less {
left: calc(90% - 4rem)
}
我正在使用jQuery在mouseover上添加.translate-less类:
$(document)
.on( 'mouseenter', 'div', function(){
$(this).addClass('translate-less')
})
.on( 'mouseleave', 'div', function(){
$('div').removeClass('translate-less');
})
现在,我想在Internet Explorer中顺利过渡。为此,我什至放弃了这些特定浏览器的calc()并添加了类似的规则left: 85%;
。但是IE10和11放弃了对条件注释的支持,而且似乎没有办法专门针对这些浏览器。IE 10可以使用-ms-high-contrast-
hack作为目标,但IE11不能。我不想使用JavaScript来检测浏览器,因为这似乎比使用CSS骇客还要骇人。
也许transform: translateX()
可以提供解决方法。根据具体情况,使用转换和正确的属性可能会更好:
right: 10%;
transform: translateX(-4rem);
另外,虽然你不能使用calc()
中的translateX()
在IE(因为错误),可将多个translateX()
在变换S:
/* This */
transform: translateX(90%) translateX(-4rem);
/* is equivalent to this */
transform: translateX(calc(90% - 4rem));
(但是,在这种情况下,90%表示目标的90%,而不是父级。)
问题内容: 在IE10中,此代码无法正常工作: 应该发生的是,该宽度应为31px,并占用内的其余可用空间。由于某种原因,发生的事情只是默认为263px。 在Chrome和Firefox中可以正常运行。 问题答案: IE尚不完全支持Flex布局模式。IE10实现了规范的“补间”版本,该版本不是完全最新的,但仍然可以使用。
问题内容: 在下面的小提琴中,我分别对可见性和不透明度进行了过渡。后者有效,但前者无效。此外,在可见的情况下,过渡时间被解释为悬停时的延迟。在Chrome和Firefox中都会发生。这是错误吗? 情况1: 情况2: 问题答案: 这不是错误 -您只能在有序/可计算的属性上进行转换(一种简单的想法是,任何具有数字开始和结束数字值的属性。尽管有一些例外)。 这是因为过渡通过计算两个 值 之间的关键帧并通
问题内容: 尝试将CSS3转换应用于幻灯片显示槽JavaScript时,我有些头疼。 基本上,JavaScript会获取幻灯片放映中的所有幻灯片,并将CSS类应用于正确的元素以提供良好的动画效果,如果不支持CSS3过渡,它将仅应用样式而无需过渡。 现在,我的“小”问题。所有工作都按预期进行,所有幻灯片都具有正确的样式,代码运行时没有错误(到目前为止)。但是,即使应用了正确的样式,指定的过渡也不
本文向大家介绍CSS中的calc()有什么作用?相关面试题,主要包含被问及CSS中的calc()有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 calc使得开发者能够使用四则运算表达式来填写CSS属性。 px、%、em等不同单位的数值均可参与计算,浏览器会进行自动转换。 MDN
问题内容: 我注意到将CSS3 功能用作单位不能在最新版本的Chrome中使用。 在Chrome Developer工具中,带有的规则具有 删除线 ,并在其左侧的黄色三角形中带有感叹号。这表示无法识别该属性或值。 如何使它在现代浏览器中运行?因为它是一个值而不是一个属性,所以供应商前缀在哪里? 更新: 当我说它不起作用时,我的意思是Chrome开发工具在说它无法识别我的用法。我怎么知道它无法识别?
问题内容: 我已经尝试过两种方法。 方式1 方式二 这两种工作方式上的镀铬细,但由于某种原因与IE不发送数据的,或根本。 我已经在本地服务器和实时Web服务器上进行了尝试,两者都得到了相同的结果。 在这里使用IE10。 问题答案: ~~~~ 应该 您将变量的值作为键传递,因此,如果您的服务器端资源期望它实际上看到了该变量的值。 这可能不是IE10问题,这不应该像在任何浏览器中一样起作用。 更新资料