2012-11-23 49 views
3

DXImageTransform.Microsoft.Shadow過濾器會移動輸入的視覺表示,但光標留在其原始位置。輸入偏移光標處的IE8陰影過濾器

的CSS:

input { 
    filter: 
     progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=0,strength=50), 
     progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=45,strength=2), 
     progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=90,strength=5), 
     progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=135,strength=2), 
     progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=180,strength=5), 
     progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=225,strength=2), 
     progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=270,strength=5), 
     progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=315,strength=2); 
} 

演示頁:http://jsfiddle.net/zerkms/Pzqtd/

如果您在IE8或IE9打開它,你會看到,輸入的光標在輸入上述50像素。

那麼任何想法如何解決它或可能是其他解決方案,以創建IE8輸入陰影?

我需要IE8的影子明確 - 我不能使用box-shadow

+0

它不是解決辦法,但你可以省略了IE9 –

+0

@Vladimir Starkov過濾:我可以,但它不會修復行爲爲ie8 ;-) – zerkms

+0

但它減少了IE9中的問題 –

回答

2

這有點一個黑客攻擊,但爲我工作。你可能需要稍微調整一下。 http://jsfiddle.net/subash1232/DDUvP/

HTML:

<div class="shadow"> 
</div> 

<input type="text" value="value" /> 

CSS

input { 
    border: 1px solid red; 
    position: relative; 
    width: 178px; 
    top: 34px; 
    left:9px; 
    z-index: 1000; 
} 

.shadow{ 
    height: 20px; 
    width: 180px; 
    background: white; 
    filter: 
    progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=0,strength=50), 
    progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=45,strength=2), 
    progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=90,strength=5), 
    progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=135,strength=2), 
    progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=180,strength=5), 
    progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=225,strength=2), 
    progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=270,strength=5), 
    progid:DXImageTransform.Microsoft.Shadow(color=#cccccc,direction=315,strength=2); 

}