2012-08-01 34 views
0

我有一些CSS代碼,只有當另一元素的值是0IE7改變CSS選擇

#type_46[value="0"] ~ .exercise_dur { 
    display: none; 
    } 

這適用於每一個瀏覽器除了IE7隱藏了某些元件的順序(IE9在IE7模式/ IE7原稿模式)

當使用即開發工具,如果我直接在樣式列表中查找故障排除後,我看到:

[value='0']#type_46 ~ .exercise_dur 

這顯然打破了選擇,並使其無法工作。如果我手動(在開發工具中)糾正這個問題,它完美的工作沒有任何問題。 有沒有人遇到過這個問題?如果是這樣,是否有一種解決方案,而不是在javascript中隱藏元素?

編輯:(不能回答我自己的問題,所以我必須編輯) 看來,問題是ie7不動態更新CSS。當代碼初始化時,它不起作用,因爲在加載css之前沒有設置該值。它會更新,如果我強制它(即更改代碼或禁用/重新啓用樣式),但不會更新(即使我更改該值),直到它再次被強制。 ie7並不是這個項目的一個重要優先事項,隱藏元素並不是絕對必要的,所以我想我現在要離開這個,並在必要時在jQuery中實現它。

謝謝。

+1

這不會破壞選擇器;它是完全有效的(儘管它看起來很奇怪),並且應該在IE7以及IE9的IE7模式下工作。我們可以看到你的網頁嗎? – BoltClock 2012-08-01 16:16:07

+0

不幸的是,這是我無法分享的私人項目的一部分。任何想法爲什麼交換id和值選擇器修復它? – reffu 2012-08-01 16:19:18

+1

我明白,IE7有時會在屬性選擇器上跳轉,這可能是其中一次。有什麼方法可以在測試用例中重現此行爲?或者,如果它是私人項目的一部分,如果您的項目是在Intranet中託管然後[這個問題似乎相似](http://stackoverflow.com/questions/8915855/ie7-ignores-css-attribute-selector-only- on-pages-coming-from-production-server),儘管在這個問題中IE7完全忽略了選擇器。 – BoltClock 2012-08-01 16:20:19

回答

1

支持IE7中的一般兄弟選擇器是最好的。我建議找出另一種方法來選擇你的元素,或者使用jQuery。

Read more.

+0

這就是它,雖然鏈接的文章沒有描述IE7有哪些類型的錯誤。 – BoltClock 2012-08-01 16:40:01