[心得] IE9 CSS DOCTYPE selecter
算不上心得 因為得出來的答案解法實在太令人震驚
這段故事是這樣子的...
一般人都會認為 新的東西會把舊版本不好的東西移除或是做個改善
所以我在設計網頁的時候 我會測三個瀏覽器
CHROME FF IE8
我之前稍微做過測試發現IE9很多地方尤其是CSS
已經不像以前的IE那麼讓人意外
基本上會跟其他瀏覽器一致,所以我就測IE8(我知道IETESTER 感謝)
但是當我偶然用家裡的IE9測一下我在公司寫的東西的時候
赫然發現 我寫的東西是這樣
http://www.sheephead.com.tw/tmpimg/img1.png

不是吧...我腦中飛快閃過五十六個駭客或是公司最近是否與人結怨
我用CHROME開
http://www.sheephead.com.tw/tmpimg/img2.png

..............
不是吧...IE9 虧我都有一點點相信你了 直到
我現在膝蓋重了一箭
經過簡單的測試 發現是CSS中的子代選擇器失效
例如說
<div>
<p>test test</p>
</div>
用以下的CSS會悲劇
div p {
color:red;
}
完全不理我就對了
我在網路上查到一些知識
1.在IE9中按下F12 可以調整你想用哪個瀏覽模式來觀看
我調整成IE8,的確是正常的狀態
不過這個我不適用,因為使用者一多 這個方法越顯得自找麻煩
2.DOCTYPE
因為用了HTML5的<!DOCTYPE html>都沒問題
所以後來才往這個方向來找
下面這篇文章有跟我類似的問題,這個老兄改成XHTML 1.0 過度版本
http://tinyurl.com/7ob4dda
但是對我並不適用...甚至就算可以解決我的這個困難
我也不願意,因為等於宣告了我以後在IE9不能正常使用HTML5標籤
3.換主機
這時候我真的生氣了,包包款款...我把檔案拿到別台主機上執行
我會這樣想是因為 我同樣的程式碼在JSFIDDLE跑起來正常無比
沒道理你知道嗎??
換主機後 網址:http://www.sheephead.com.tw/tmpimg/test.html
難道程式碼還會認人?為什麼在JSFIDDLE上就那麼正常??
-------------
但是本少爺還是解決了
我死馬當司馬懿
我在程式碼最前面加了
<div>
<p>test test</p>
</div>
<style>
div p {
color:red;
}
</style>
居然正常顯示了.....
網址:http://www.sheephead.com.tw/tmpimg/test2.html
你們自己對照原始碼,其他程式碼一模一樣 也沒載入其他CSS 也沒JS
最後我只好,真的是只好 在我的專案多放一個<div></div>
在檔案面前....顯示正常
後來測試不管放甚麼標籤都可以,最後我決定放一個最無害的<span></span>
不管甚麼標籤 只要放在form前面就搞定...
解法:隨便放標籤在FORM前面....
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.9.103
→
03/17 12:15, , 1F
03/17 12:15, 1F
→
03/17 17:24, , 2F
03/17 17:24, 2F
→
03/17 17:32, , 3F
03/17 17:32, 3F
→
03/17 17:34, , 4F
03/17 17:34, 4F
推
03/17 18:24, , 5F
03/17 18:24, 5F
→
03/17 19:17, , 6F
03/17 19:17, 6F
→
03/17 23:33, , 7F
03/17 23:33, 7F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):