【发布时间】:2013-11-15 14:48:19
【问题描述】:
我试图让 IE10 为元素宽度的变化设置动画,以便将另一个面板推开。我有一个JSBin 来演示基本思想。在 Chrome 上,当您单击打开和关闭链接时,它的动画效果很好。然而,在 IE10 中,它只是跳开和关闭。我想我有所有必要的前缀——有人知道为什么它没有动画吗?
更新:尝试为打开和关闭状态提供右侧显式像素值。动画就好了。 握拳百分比....
更新 2:显然 %-to-% 有效,px-to-px、%-to-px 和 px-to-% 但 %-to-whatever-calc-失败
更新 3:在 Connect 中找到 this bug,这似乎准确地描述了这个问题(除了使用关键帧动画而不是过渡)。状态:“已解决为推迟”。该死的,IE。
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<section id="body-container">
<div id="left">
<div id="nav">
<h1>Nav</h1>
<a href="#right">
Close
</a>
<a href="#">
Open
</a>
</div>
<div id="left-content">
LEFT
</div>
</div>
<div id="right">
RIGHT
</div>
</section>
</body>
</html>
少:
@nav-width: 54px;
html, body {
width: 100%;
height: 100%;
}
#body-container {
display: -ms-flexbox;
display: flex;
width: 100%;
height: 100%;
#left,
#right {
height: 100%;
}
#left {
-ms-flex: 1;
flex: 1;
display: -ms-flexbox;
display: flex;
background-color: red;
#nav {
width: @nav-width;
height: 100%;
background-color: yellow;
}
#left-content {
-ms-flex: 1;
flex: 1;
background-color: orange;
}
}
#right {
width: 66%;
background-color: blue;
position: relative;
-ms-transition: width 0.5s linear;
transition: width 0.5s linear;
&:target {
width: calc(~'100% - @{nav-width}');
}
}
}
其他 Stack Overflow 用户提供的显示 calc 问题的更简单示例:
【问题讨论】:
-
为什么要将规则嵌套在其他规则中?
-
为什么不呢?这不是生产代码,我知道嵌套#id 规则是多余的,我只是在演示问题。
-
我刚刚注意到您正在使用 LESS。你能添加正确的标签吗?
-
LESS 并不是真正的问题,我只是在使用它,因为我发现它比直接的 CSS 更方便。我在这里使用 LESS 是偶然的。
-
你已经看过这个了吗? stackoverflow.com/questions/21142923/…
标签: css internet-explorer css-transitions internet-explorer-10 internet-explorer-11