2011-08-02 111 views
1

我們有一個問題,我們在下面使用此代碼。它只是一個帶有圓角和漸變的基本框(我們將CSSPie應用於它)。我們已經注意到在所有IE瀏覽器中,我們無法在IE中保留這個元素的圓角,因爲這個漸變(餅圖不起作用)。有沒有人遇到過這樣的解決方案?我們很樂意將我們的漸變完全從photoshop遷移到CSS,但這證明是一個煩人的問題!圓角CSSPIE + CSS漸變

謝謝!

.superduper { 
    position: relative; 
    width: 100px; 
    height: 100px; 
-webkit-border-radius:4px; 
    -moz-border-radius:4px; 
    border-radius:4px; 
    background: #ff0000 url("gradient-bg.png") repeat-x top; 
    -o-background-size: 100% 100%; 
    -moz-background-size: 100% 100%; 
    -webkit-background-size: 100% 100%; 
    background-size: 100% 100%; 
    *background: #ff0000; 
    background: #ff0000\0/; 
    filter: progid:DXImageTransform.Microsoft.gradient(gradientType=0, startColorstr=#FF00ff00, endColorstr=#FFff0000); 

    background-image: -webkit-gradient(
     linear, 
     left top, left bottom, 
     from(#00ff00), 
     to(#ff0000) 
    ); 
    background-image: -webkit-linear-gradient(
     top, 
     #00ff00, 
     #ff0000 
    ); 
    background-image: -moz-linear-gradient(
     top, 
     #00ff00, 
     #ff0000 
    ); 
    background-image: -o-linear-gradient(
     top, 
     #00ff00, 
     #ff0000 
    ); 
    background-image: linear-gradient(
     top, 
     #00ff00, 
     #ff0000 
    ); 
} 

回答

2

這是因爲您使用的是IE專有的'filter'屬性。由於IE呈現過濾器的方式,它會繪製覆蓋角落圓角的整個元素框。

您應該刪除過濾器屬性,並在-pie-background屬性中指定線性漸變。這將允許PIE渲染漸變並遵守邊界半徑。

對於動作,請參閱css3pie.com主頁(檢查「顯示CSS」複選框看到生成的代碼。)

例如一個的該示例-pie-background:線性漸變(頂部,#00ff00,#ff0000);

+0

真棒,感謝您爲IE7,8工作,但你不能在IE9上使用PIE的權利,所以我不能這樣做IE9?看起來像是針對IE9的SVG背景圖像解決方案,但是UGH,這太蹩腳了! – Baconbeastnz

+0

IE9漸變支持正在進行中,請參閱此主題以獲取測試版本:http://css3pie.com/forum/viewtopic.php?f=4&t=933 – lojjic

+0

如果有人發現此評論,現在完全支持IE9 PIE版本1.0beta5。 – lojjic