-1 |
|
die PNG fix werkt enkel voor afbeeldingen en niet voor achtergronden.
daarvoor gebruik het volgende:
maak een bestand aan: iepngfix.htc met de volgende code
<public:component>
<public:attach event="onpropertychange" onevent="doFix()" />
<script type="text/javascript">
var blankImg = 'blank.gif';
var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
function filt(s, m)
{
if (filters[f])
{
filters[f].enabled = s ? true : false;
if (s) with (filters[f]) { src = s; sizingMethod = m }
}
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
}
function doFix()
{
// Assume IE7 is OK.
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
(event && !/(background|src)/.test(event.propertyName))) return;
var bgImg = currentStyle.backgroundImage || style.backgroundImage;
if (tagName == 'IMG')
{
if ((/\.png$/i).test(src))
{
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
style.width = offsetWidth + 'px';
filt(src, 'scale');
src = blankImg;
}
else if (src.indexOf(blankImg) < 0) filt();
}
else if (bgImg && bgImg != 'none')
{
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
{
var s = RegExp.$1;
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
style.width = offsetWidth + 'px';
style.backgroundImage = 'none';
filt(s, 'crop');
// IE link fix.
for (var n = 0; n < childNodes.length; n++) childNodes[n].style.position = 'relative';
}
else filt();
}
}
doFix();
</script>
</public:component>
<public:component> <public:attach event="onpropertychange" onevent="doFix()" /> <script type="text/javascript"> var blankImg = 'blank.gif'; var f = 'DXImageTransform.Microsoft.AlphaImageLoader'; function filt(s, m) { if (filters[f]) { filters[f].enabled = s ? true : false; if (s) with (filters[f]) { src = s; sizingMethod = m } } else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")'; } function doFix() { // Assume IE7 is OK. if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) || (event && !/(background|src)/.test(event.propertyName))) return; var bgImg = currentStyle.backgroundImage || style.backgroundImage; if (tagName == 'IMG') { if ((/\.png$/i).test(src)) { if (currentStyle.width == 'auto' && currentStyle.height == 'auto') style.width = offsetWidth + 'px'; filt(src, 'scale'); src = blankImg; } else if (src.indexOf(blankImg) < 0) filt(); } else if (bgImg && bgImg != 'none') { if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i)) { var s = RegExp.$1; if (currentStyle.width == 'auto' && currentStyle.height == 'auto') style.width = offsetWidth + 'px'; style.backgroundImage = 'none'; filt(s, 'crop'); // IE link fix. for (var n = 0; n < childNodes.length; n++) childNodes[n].style.position = 'relative'; } else filt(); } } doFix(); </script> </public:component>
daarna zet in je stylesheet voor welke tags de png fix moet dienen:
div {
behavior: url("iepngfix.htc");
}
div { behavior: url("iepngfix.htc"); }
voor meerdere tags:
div,img,span {
behavior: url("iepngfix.htc");
}
div,img,span { behavior: url("iepngfix.htc"); }
|