2011-04-21 216 views
1

*更新* 大討論每個人,再次感謝輸入我只是想與其他開發人員/程序員分享信息,並談論可能的解決方案。IE 9 css問題或css黑客

我想出了另一個聰明的小竅門,可以工作。

這是一種在asp中使用服務器端/客戶端的舊方法,它仍然可以在.NET中完成(並非這是正確的,但最終'他們'只是想讓它工作)

這就是:

enter image description here

這是一個多問題的討論,但做了一些具體的IE 9 CSS黑客攻擊的任何知識。我不想使用單獨的樣式表,但想知道我們是否還有IE 9的黑客入侵。

例如,你可以做其他的IE的

_CSS_thing {css} /** IE 6 **/ 

*CSS_thing {css} /** IE 7 **/ 

.CSS_thing {margin-top:0px/0\} /** IE 8 -- could be wrong on the /\ format is one of those ways don't really use that one. **/ 

感謝以下。

卡奧斯

+1

只需使用單獨的樣式表和條件<! - [if lte IE 8]> ... 。讓自己省去麻煩,讓陌生的黑客和錯誤濫用者不知道的人閱讀樣式表。 – Bazzz 2011-04-21 14:35:43

+1

我還沒有在IE9中測試過任何東西,所以看到我們顯然還需要破解IE瀏覽器,這讓我很難過。你的CSS是在其他瀏覽器中工作還是僅僅是一個「理論上」的問題? – 2011-04-21 14:36:31

+0

@Bazz此時我寧可不使用單獨的樣式表。在這種情況下,條件語句可以起作用。 – Kaos 2011-04-21 14:46:04

回答

3

而不是使用黑客專門針對IE,你爲什麼不使用條件的意見呢?查看HTML5Boilerplate以及它們如何處理特定於IE的樣式。

更具體地說,您可以使用條件註釋將類添加到<html><body>元素,然後在樣式表中使用這些類來定位修復特定IE問題或差異的樣式。

下面是來自HTML5Boilerplate項目,這是否摘錄:

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> 
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]--> 
<!--[if IE 7 ]> <html class="no-js ie7" lang="en"> <![endif]--> 
<!--[if IE 8 ]> <html class="no-js ie8" lang="en"> <![endif]--> 
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 

的意見會導致IE使用<html>標記,有一類是對應於IE瀏覽器的特定版本的特定版本。使用這個相同的概念,您可以輕鬆擴展到IE9,或者添加其他類來處理特定於IE的行爲。

+0

@cdezaq是什麼原因導致這個問題,這可能是解決方案..但僅限於我這個具體問題。 – Kaos 2011-04-21 14:48:07

+1

我喜歡這個想法,雖然還沒有使用過它的產品,但我唯一擔心的是解析器必須做的「回溯」的數量,因爲它只能「失敗」選擇器已經遍歷到DOM的頂部樹,有沒有關於這方面的表現的任何報道/想法呢? – clairesuzy 2011-04-21 14:48:30

+1

@Kaos,通過在有問題的IE瀏覽器中爲''元素添加額外的類,您可以應用該瀏覽器可以使用的任何樣式更正,而不會影響任何其他瀏覽器。我不確定我看到這個解決方案不適用於IE和其他瀏覽器版本之間的任何風格差異問題。你能解釋一下你的意思嗎? – cdeszaq 2011-04-21 14:52:16

0

我不知道任何 CSS黑客攻擊IE9。抱歉。

你被卡住了conditional comments

真正的問題是:爲什麼你認爲你需要提供不同風格的IE9?

與其前身不同,IE9是一種主要符合標準的瀏覽器。

+0

@thirtydot IE 9沒有采取從IE6,IE7和IE8工作正常的風格。除非他們必須解決一些問題,否則不能處理前輩處理得很好的樣式。 – Kaos 2011-04-21 14:44:54

+0

你能提供一個例子嗎? – thirtydot 2011-04-21 14:49:37

+2

@Kaos:那麼你可能已經編碼了一些IE6-8的bug。您的舊CSS是否也適用於Firefox和Safari/Chrome? – 2011-04-21 14:50:45