html - 通用兄弟组合器 (~),不更新 DOM 更改,按预期工作?

标签 html css google-chrome css-selectors

我尝试了 this question (这个问题与他的问题完全无关),并尝试根据是否勾选复选框来应用 CSS 选择器来解决它。我的想法是,如果有一个元素是 :checked,则前面的提交按钮应该是可见的。我想出的结果 CSS 是:

input[type=checkbox]:checked ~ input[type=submit] {
    display:block;
}

现在,当页面加载时,提交按钮被隐藏了,这是应该的。但是,当您选中一个框时,什么也没有发生(大概应该吧?)。

如果您使用一个选中属性的输入字段加载表单,它会显示提交按钮,这是应该的,但是当您取消选中它时,提交按钮不会隐藏。

当您通过 Javascript 克隆表单(勾选一个复选框)时(本练习的全部目的不是使用 Javascript),它确实会达到预期的结果,即如果没有选中复选框则隐藏提交按钮, 或者在勾选复选框时显示它。

换句话说,该 css 规则不考虑对 dom 的更改,但在放入新元素时会考虑它。是否按预期工作?首先,我看到 CSS 会发生类似的情况。

示例:http://jsfiddle.net/niklasvh/nn4Qw/

我是不是漏掉了什么,或者它不应该像我描述的那样工作?

Edit 在 firefox 上测试过,工作正常,所以这似乎是 google chrome 的问题。未尝试使用更高版本的 IE 或 Opera。

最佳答案

您的 CSS 看起来是正确的,但是浏览器的支持当然会有所不同,而且在有 支持的地方,就会有错误。 Javascript 会更可靠。

关于html - 通用兄弟组合器 (~),不更新 DOM 更改,按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6217088/

相关文章:

html - 无法使一个 div 高度移动/等于另一个

css - 下拉菜单消失在网页正文后面

javascript - Chrome 扩展程序将消息传递到后台页面

cookie 的 JavaScript 代码在 Chrome 中不起作用

jQuery Slider IE 问题(不工作)

javascript - 如何使用 .every() 方法验证针对 Regex 的输入?

javascript - 表格不断调整大小而不溢出

javascript - 是否有 32 字节或 64 字节的大小限制?用于内容脚本和 chrome 扩展的背景页面之间的消息传递?

python - 狮身人面像不同页面的不同背景图片