CSS 过渡在 IE 11 中不起作用

标签 css css-transitions internet-explorer-11

这里已经有一个类似的问题:Css transition not working

问题不同。我不会在任何地方使用 calc(),无论是在“损坏的”元素上还是与它相关的任何地方。

我有一个菜单,用于选择网站的语言,我通过设置 margin-left: 100%; 将其推到右边界之外。单击复选框应触发它回退到 margin-left: initial;,从而对用户可见。再次单击该复选框,将使菜单再次消失(margin-left: 100%;)。

两个 margin-left 设置都有一个 transition: margin-left .4s 以使其对用户更具吸引力。

此设置与 Firefox 和 Chrome 完美配合。语言选择从右侧滑入,您可以点击相应语言版本的链接,菜单会顺利滑出窗口。完全符合我的预期。

但是,它不适用于 IE 11。菜单仍然不可见。通过阅读上面链接的问题,我认为它可能与不使用固定尺寸的菜单有关。我对此进行了更改,但无济于事。

在 Firefox 和 Chrome 中,单击复选框会触发菜单按预期滑入和滑出窗口。在 IE11 中,按钮文本的更改(基本上是复选框下方的 p)已应用,但菜单仍然不可见。

附加信息

与链接的问题不同,我使用供应商前缀。但是,我测试了如果我这样做会发生什么,但我也没有成功。我似乎也没有与前缀问题相关联。

代码

这是相关元素的代码:

#language-selection {
	position: relative;
	margin-top: 65px;
	margin-left: 100%;
	transition: margin-left .4s;
}

#language-selection-checkbox:checked ~ #language-selection-wrapper #language-selection {
	margin-left: initial;
	transition: margin-left .4s;
}

另请注意,添加或删除 position: relative; 对问题完全没有影响。

最佳答案

IE不支持

initial值,可以查看here , 您可以尝试其他值,例如 auto 或您喜欢的任何 length

关于CSS 过渡在 IE 11 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47327502/

相关文章:

jquery - 如何组织特定布局的 div

html - select 的框透明背景在 Chrome 中是否有效?

javascript - 使用 CSS 和 jQuery 创建自己的 Vue <transition-group> 动画

CSS 转换有时会在 Chrome 中被跳过

javascript - 在 IE11 中下载文件出现错误 "' Uint8Array' is undefined”

angularjs - Protractor browser.get() 在 IE11 中抛出异常

css - 谷歌地图CSS高度

firefox - -moz-transition-duration 不起作用?

html - 悬停两个元素没有移动效果

javascript - 访问嵌入式 JSON 的深层对象成员