我在this question(這個問題與他的問題完全沒有關係),並試圖通過應用CSS選擇器來解決它,這取決於複選框是否被勾選。我的想法是,如果有一個元素是:checked
,則前面的提交按鈕應該是可見的。由此產生的CSS是:一般兄弟組合(〜),不更新DOM更改,按預期工作?
input[type=checkbox]:checked ~ input[type=submit] {
display:block;
}
現在,當頁面加載時,提交按鈕被隱藏,因爲它應該。但是,當你檢查一個盒子時,沒有任何反應(大概它應該?)。
如果您使用一個輸入字段來加載帶有屬性選項的表單,它確實具有可見的提交按鈕,但是當您將它提出時,提交按鈕不會隱藏。
當你通過Javascript克隆表單(並勾選了一個複選框)(並且此練習的全部目的不是使用Javascript)時,它會執行預期的結果,即,如果沒有複選框,則隱藏提交按鈕勾選或顯示它,如果勾選了複選框。
換句話說,該css規則沒有考慮對dom的更改,但是在添加新元素時將其考慮在內。是否按預期工作?首先我已經看到類似CSS發生的事情。
例子:http://jsfiddle.net/niklasvh/nn4Qw/
難道我錯過這裏的東西或者是不是應該爲我所描述的工作?
編輯與Firefox測試,並且工作正常,所以這似乎是谷歌瀏覽器的問題。未嘗試使用IE或Opera的更高版本。
如何應用css,不應該根據內容在文檔加載時加載還是在文檔加載過程中更改或者是否被克隆等而改變? – Niklas 2011-06-02 16:36:01
正確。 CSS選擇器*應該*在DOM更新時總是重新評估(並且該區域存在大量的瀏覽器錯誤)。 – 2011-06-02 16:41:12