CSS :valid :invalid 在 IE 中使用兄弟选择器时表现不同
CSS :valid :invalid behaves different when using the sibling selector in IE
我有以下代码:
<style>
input:valid ~ .test {
border: 1px solid green;
}
input:invalid ~ .test {
border: 1px solid red;
}
input:valid {
border: 1px solid green;
}
input:invalid {
border: 1px solid red;
}
</style>
<input type="text" required />
<div class="test">test</div>
现在,如果您开始在文本框中键入内容,验证应该修改输入和 "test" div 的边框。这在 Chrome 中有效,但在 IE 中 "test" div 边框更改只有在我单击其他地方时才会触发。
为什么这在 IE 中表现不同?我怎样才能让它正常工作
编辑:patotopeelings 的回答是正确的,但我似乎过于简化了我的问题。
input:valid ~ small .actionEmpty {
display: block;
}
input:invalid ~ small .actionEmpty {
display: none;
}
它似乎在显示 css 设置的情况下不起作用,好吧,无效的似乎有效,有效的并不奇怪。 mousedown
上的行为仍然存在
还有什么想法吗?
这看起来与 :empty pseudo class issue with added/removed content and sibling combinators 非常相似(但是这个是针对 + 组合器和 :empty 伪 class)。然而,一个类似的修复是可行的,即在 .test 元素上添加一个无限循环的动画——在你的样式部分的末尾添加这个
input + .test {
animation: repaint 1000s infinite linear;
}
@keyframes repaint {
from { opacity: 1; }
to { opacity: 0.99999; }
}
请注意,我将其从缩放(在链接的问题中)更改为不透明度。
我有以下代码:
<style>
input:valid ~ .test {
border: 1px solid green;
}
input:invalid ~ .test {
border: 1px solid red;
}
input:valid {
border: 1px solid green;
}
input:invalid {
border: 1px solid red;
}
</style>
<input type="text" required />
<div class="test">test</div>
现在,如果您开始在文本框中键入内容,验证应该修改输入和 "test" div 的边框。这在 Chrome 中有效,但在 IE 中 "test" div 边框更改只有在我单击其他地方时才会触发。
为什么这在 IE 中表现不同?我怎样才能让它正常工作
编辑:patotopeelings 的回答是正确的,但我似乎过于简化了我的问题。
input:valid ~ small .actionEmpty {
display: block;
}
input:invalid ~ small .actionEmpty {
display: none;
}
它似乎在显示 css 设置的情况下不起作用,好吧,无效的似乎有效,有效的并不奇怪。 mousedown
上的行为仍然存在还有什么想法吗?
这看起来与 :empty pseudo class issue with added/removed content and sibling combinators 非常相似(但是这个是针对 + 组合器和 :empty 伪 class)。然而,一个类似的修复是可行的,即在 .test 元素上添加一个无限循环的动画——在你的样式部分的末尾添加这个
input + .test {
animation: repaint 1000s infinite linear;
}
@keyframes repaint {
from { opacity: 1; }
to { opacity: 0.99999; }
}
请注意,我将其从缩放(在链接的问题中)更改为不透明度。