如何避免 IE11 "slow" 评估 CSS :invalid 和 :valid 伪选择器
How to avoid IE11 "slow" evaluation of CSS :invalid and :valid pseudo selectors
我知道这个问题显示 :valid 和 :invalid 伪选择器在 IE11 中根本不起作用:
CSS form:valid selector doesn't work in IE11
还有这个浮动标签的例子:
https://snook.ca/archives/html_and_css/floated-label-pattern-css
此处,IE11 的行为有所不同。起初,它似乎不起作用。您在表单的字段中键入,应该应用的 CSS 没有应用,这与 Chrome 和 Firefox 不同。
但是,当您退出该字段或移至下一个字段时,您会看到应用了 CSS,即使在 IE11 中也是如此。好像是"one behind"。
我在自己的实现中遇到了完全相同的问题,但 public 没有。是否有解决方案(非 JS)来解决 IE11 的这种奇怪的评估行为?
不,因为他们在 Edge 中修复了它,所以他们不太可能在 IE11 中修复它。
我确实注意到一件事,CSS 更改对输入本身有效,所以如果你这样做会怎样?
.field, .field label {
position: relative;
font-weight: bold;
display: inline-block;
font-family: arial;
font-size: 10px;
}
input {
position: absolute;
top: 0;
border: 1px solid #999;
padding: 3px 2px;
transition: top 0.5s;
}
input:focus {
outline: none;
}
form:valid,
input:valid {
top: 18px;
transition: top 0.5s;
}
<form>
<div class="field">
<label>First Name</label>
<div>
<input type="text" pattern=".+" required="" placeholder="First Name">
</div>
</div>
</form>
我知道这个问题显示 :valid 和 :invalid 伪选择器在 IE11 中根本不起作用:
CSS form:valid selector doesn't work in IE11
还有这个浮动标签的例子:
https://snook.ca/archives/html_and_css/floated-label-pattern-css
此处,IE11 的行为有所不同。起初,它似乎不起作用。您在表单的字段中键入,应该应用的 CSS 没有应用,这与 Chrome 和 Firefox 不同。
但是,当您退出该字段或移至下一个字段时,您会看到应用了 CSS,即使在 IE11 中也是如此。好像是"one behind"。
我在自己的实现中遇到了完全相同的问题,但 public 没有。是否有解决方案(非 JS)来解决 IE11 的这种奇怪的评估行为?
不,因为他们在 Edge 中修复了它,所以他们不太可能在 IE11 中修复它。
我确实注意到一件事,CSS 更改对输入本身有效,所以如果你这样做会怎样?
.field, .field label {
position: relative;
font-weight: bold;
display: inline-block;
font-family: arial;
font-size: 10px;
}
input {
position: absolute;
top: 0;
border: 1px solid #999;
padding: 3px 2px;
transition: top 0.5s;
}
input:focus {
outline: none;
}
form:valid,
input:valid {
top: 18px;
transition: top 0.5s;
}
<form>
<div class="field">
<label>First Name</label>
<div>
<input type="text" pattern=".+" required="" placeholder="First Name">
</div>
</div>
</form>