2009-10-31 20 views
2

所以我決定把我的CSS分成只有ie6和ie7的文件。我將在此文件中的CSS規則,針對IE6和IE7只,如:檢查Internet Explorer。 PHP與即時條件註釋?

div { 
    *color: red; /* target ie7 and below */ 
    _color: green; /* target ie6 and below */ 
} 

如果可能的話,我更喜歡使用PHP與$_SERVER['HTTP_USER_AGENT']來檢測瀏覽器,而不是IE條件評論。

我知道訪問者可以「欺騙」他們的用戶代理並聲稱他們是他們想要的任何瀏覽器,但是使用PHP而不是條件註釋來檢測瀏覽器的一般意見是什麼?

+0

如果你必須使用瀏覽器嗅探,默認發送良好的頁面,並只發送中性版本到已知的錯誤瀏覽器。 – Macha 2009-10-31 15:33:06

+2

有人欺騙他的用戶代理顯然*想要*獲得特定的CSS。你爲什麼想要猜測你的用戶? – Martha 2009-10-31 16:12:21

回答

4

恕我直言 - 使用IE條件註釋。與在服務器上處理相比,它們要快得多!考慮一下,如果你有100個客戶端在你的服務器上處理這個,你的服務器會比委託給那100個客戶端進行渲染和處理慢。

即使緩存它並且不會每次都在服務器上呈現它,這不值得服務器負載。

+0

感謝Mauris,但我已經有了一個腳本。只是想知道使用PHP的意見,即條件註釋。 =) – Jeff 2009-10-31 15:34:42

+1

使用IE條件註釋。與在服務器上處理相比,它們要快得多!想想如果你有100個客戶端在你的服務器上處理這個,你的服務器會比委託給那100個客戶端慢。 – mauris 2009-10-31 15:42:48

+0

正如AnonJr在他的評論中所述,我正在使用條件註釋,因爲'$ _SERVER'變量是「糟糕的」。 – Jeff 2009-10-31 18:05:00

4

每次請求頁面時,是否希望進行字符串比較?我不會。我會把它留給瀏覽器。

+1

那麼,那麼爲「ie-conditionals」投票呢?字符串比較非常平凡而且很小。 – Jeff 2009-10-31 15:40:22

+2

是的,這是....... – 2009-10-31 16:08:07

0

作爲替代方案,它對我來說工作得非常好,您可以使用css_browser_selector.js。有了它,你的樣式表看起來更像這樣:

.ie7 div { 
    color: red; /* target ie7 */ 
} 

.ie6 div { 
    color: green; /* target ie6 */ 
}