2009-06-09 48 views
2

我的網站有2個CSS文件,其中一個用於所有普通瀏覽器,另一個用於緩慢的Internet Explorer。我包括CSS文件中的任何一個,這取決於檢查瀏覽器功能的JavaScript。如果用戶禁用了JavaScript,那麼最好的選擇是什麼! 我應該包括一些CSS,沒有它,所有的頁面看起來......好吧......裸體。 任何意見讚賞。JavaScript禁用時包含瀏覽器特定的CSS文件?

回答

0

嘗試這個技巧:

<link rel="stylesheet" type="text/css" media="screen" href="style.css" />  
<!--[if IE]> 
<link rel="stylesheet" type="text/css" media="screen" href="ie.css" />  
< ![endif]--> 
+0

由於某些原因,此黑客對我禁用的JavaScript無效。這是我的。 theraneman 2009-06-09 06:12:19

-3
<noscript> 
<link rel="stylesheet" href="/global/mse/en/us/RenderingAssets/stuHome-IE.css" 
     type="text/css" media="screen, projection"> 
</noscript> 
0

使用JavaScript的瀏覽器檢測是一種極其壞主意。沒有可靠的方法來做到這一點。我認爲你使用的是navigator對象 - 注意這是非常不可靠的,因爲各種瀏覽器發送'錯誤'信息或者允許用戶定製他們發送的信息。另外,正如你注意到的那樣,非Javascript使用的用戶存在這個問題。

正如其他人指出的那樣,包括瀏覽器特定CSS的方式是通過IE的條件註釋。

4

你需要的是有條件的CSS語句。這些是隻有IE可以識別的特殊格式的HTML註釋,它們允許您使用不同的CSS文件來定位不同版本的IE。

有一個簡單的if statement這是擺在評論認爲IE被編程爲識別

<!--[if IE]> 
<link type="text/css" rel="stylesheet" media="all" href="css/ie.css" /> 
<![endif]--> 

上面的代碼將針對IE瀏覽器的每個版本。您可以通過添加版本號

<!--[if IE 5.5]> 
<link type="text/css" rel="stylesheet" media="all" href="css/ie.css" /> 
<![endif]--> 

指定的版本也可以把它應用到以下版本或等於某一版本號

<!--[if lte IE 6]> 
<link type="text/css" rel="stylesheet" media="all" href="css/ie.css" /> 
<![endif]--> 

lte爲小於或等於;您還可以使用gte大於或等於。

使用條件註釋通常用於添加CSS文件,但您也可以添加鏈接到JS文件,您可能只需要某些IE版本。

另一件事,如果你最終爲不同版本的IE使用多個樣式表,記得命名該文件,使其包含你所定位的版本號(例如IE-6.css)。

0

<noscript>不能在<head>之內使用另外<noscript>只會檢測瀏覽器是否禁用了JavaScript(可能被防火牆阻止),因此無法保證其正常工作。

至於你的兩個CSS文件,更好的策略是讓一個包含的基本文件總是包含,然後是一個CSS文件,它具有IE所需的更改/ hack。當瀏覽器是IE時,使用條件註釋來加載ie CSS。

<!--[if IE]> 
<link rel="stylesheet" type="text/css" media="screen" href="ie.css" />  
< ![endif]-->