2012-01-13 65 views
1

我需要一個黑客的目標低於9,或更具體的Internet Explorer瀏覽器;我需要一個直列 CSS劈tarjet非CSS3功能的瀏覽器內聯黑客css更低到IE9? (或所有非CSS3功能的瀏覽器)

_prop:val -> ie6 
*prop:val -> ie6 & ie7 
????????? -> ie8 & ie7 & ie8 

我使用漸變和圖像的瀏覽器,但IE8不支持它,所以,我想負載替代圖片僅在必要時

請避免解答提示使用條件評析或使用JavaScript來使用外部的樣式表。我知道,這個代碼將是無效的,但它只是一個小東西。另外,我很好奇,想知道它posible :))

+1

IE8支持梯度 – 2012-01-13 14:22:54

+0

這不是然後工作:背景圖像:-MS-線性梯度(底部,RGB(221221221) 20%,rgb(255,255,255)68%); – 2012-01-13 14:23:25

+0

我現在不使用rgb(...,...,...),但255,255,255是白色的,因此您可以獲取顏色的十六進制值,並將其插入到我的答案腳本中! – 2012-01-13 14:26:38

回答

1

您需要使用這樣的:

prop: val\9 

在任何值的末尾把\ 9直接將目標只是IE8及以下

+0

這也針對IE9在很多情況下。 http://paulirish.com/2009/browser-specific-css-hacks/瞭解一些背景信息。 – 2012-07-27 16:14:01

+0

我還沒有看到它本身的目標是IE9,雖然使用不同的選擇器,但不能確切地記得它究竟是什麼,但它涉及到的是nth-child,它確實匹配IE9和* not * IE8 ... – danwellman 2012-07-27 16:16:44

4

我在項目中使用IE8中的漸變。它確實有用!

<style> 
     #gradient { 
      color: #fff; 
      height: 100px; 
      padding: 10px; 
      /* For WebKit (Safari, Google Chrome etc) */ 
      background: -webkit-gradient(linear, left top, left bottom, from(#00f), to(#fff)); 
      /* For Mozilla/Gecko (Firefox etc) */ 
      background: -moz-linear-gradient(top, #00f, #fff); 
      /* For Internet Explorer 5.5 - 7 */ 
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#FF0000FF, endColorstr=#FFFFFFFF); 
      /* For Internet Explorer 8 */ 
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#FF0000FF, endColorstr=#FFFFFFFF)"; 
     } 
    </style> 

框中陰影似乎有這樣一種變通方法:

.shadow { 
    zoom: 1; 
    filter: progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=0, Strength=3) 
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=45, Strength=2) 
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=90, Strength=3) 
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=135, Strength=2) 
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=180, Strength=3) 
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=225, Strength=2) 
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=260, Strength=3) 
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=305, Strength=2); 
    -moz-box-shadow: 0 0 5px #222; /*Mozilla-basierte Browser (z.B. Firefox)*/ 
    -webkit-box-shadow: 0 0 5px #222; /*WebKit-basierte Browser (z.B. Safari/Chrome)*/ 
    box-shadow: 0 0 5px #222; /*CSS3 Standard*/ 
} 

的邊界半徑也沒有支持,直到IE9,據我所知。我在使用幾個jQuery插件來實現邊界半徑。希望這段代碼能幫助你!

+0

有沒有類似的邊界半徑和盒子陰影? – 2012-01-14 13:45:22

+0

我已經更新了我的問題,請看。盒陰影是的,但複雜的邊界半徑,直到ie9。但我正在使用插件通過jQuery實現邊框半徑的效果! – 2012-01-16 08:16:02

+0

嘿!非常感謝,但似乎是文字陰影在即http://jsfiddle.net/YcPDA/ – 2012-01-17 09:01:28

4

你不需要一劈,因爲沒有電流瀏覽器支持所有的CSS3。

相反,簡單地對舊的瀏覽器指定後備性質,如下所示:

#selector { 
    background: url("gradient.png"); 
    background: gradient(...); 
} 
+0

是的,但是這樣圖像會加載,我想防止這一點。我寧願 - 在我目前的情況下 - 產生無效的代碼比慢代碼 – 2012-01-13 14:33:34

+0

唉?在加載任何內容之前,CSS屬性將被評估。您可以[檢查自己](http://phihag.de/2012/so/gradient-dl.html):漸變文件不應該加載到現代瀏覽器中。 – phihag 2012-01-13 14:39:40

+0

它可能不會被使用,但圖像將被加載到所有瀏覽器中 – 2012-01-13 14:41:55

相關問題