Internet Explorer - Text Shadow and Glow: Difference between revisions

From PiRho Knowledgebase
Jump to navigationJump to search
Created page with "The idea is that first we use Glow to create a halo around the text and then blur it with Blur. The resulting shadow is then placed under the text using absolute positioning. The result is acceptable but slightly rough especially if the shadow is moved relative to the text. https://www.artlebedev.com/tools/technogrette/html/filters-in-ie/i/ie-shadow-1.png <code> .shadowed .shadow-1 { left: -7px; top: -7px; filter: progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,S..."
 
Dex (talk | contribs)
No edit summary
 
(6 intermediate revisions by one other user not shown)
Line 1: Line 1:
The idea is that first we use Glow to create a halo around the text and then blur it with Blur. The resulting shadow is then placed under the text using absolute positioning. The result is acceptable but slightly rough especially if the shadow is moved relative to the text.
[[Category:Internet Explorer]]
https://www.artlebedev.com/tools/technogrette/html/filters-in-ie/i/ie-shadow-1.png
[[Category:DirectX Filter]]
<code>
[[Category:Legacy Browser Compatibility]]
.shadowed .shadow-1
Internet Explorer (IE) predates modern CSS text‑shadow support, so developers often relied on DirectX Filters to simulate glows, shadows, and blurs. These filters were powerful but also inconsistent, slow, and easily misconfigured. This article explains how to create text shadows in IE using Glow, Blur, Alpha, and dropShadow, why the results often look rough, and how to improve quality through tuning.
{
 
left: -7px;
== Context ==
top: -7px;
Before CSS3, browsers did not support text-shadow. IE introduced its own proprietary visual effects using DXImageTransform.Microsoft.* filters. These were originally designed for multimedia/DirectX transitions and later exposed through CSS.
filter: progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)
 
progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true');
== The Basic Approach ==
-ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)"
A common technique was to apply Glow, then Blur, and shift the result under the text using offsets.
"progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true')";
 
<pre>
.shadowed .shadow-1 {
    left: -7px;
    top: -7px;
    filter: progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)
            progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true');
    -ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)"
                "progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true')";
}
}


.shadowed .shadow-2
.shadowed .shadow-2 {
{
    left: -5px;
left:-5px;
    top: -5px;
top:-5px;
    filter: progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)
filter: progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)
            progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true');
progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true');
    -ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)"
-ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)"
                "progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true')";
"progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true')";
}
}
</code>
</pre>
Turns out, the Glow filter is at fault here. To make it nice, let’s turn its strength down to 1, change the color to black (the alternative is to replace Glow by dropShadow which has more understandable parameters) and add another filter, Alpha. Here is the result (Glow on the left, dropShadow on the right, the differences are negligible to the naked eye and can be brought down to zero with further tweaking):
 
https://www.artlebedev.com/tools/technogrette/html/filters-in-ie/i/ie-shadow-2.png
== Improving Shadow Quality ==
<code>
 
.shadowed .shadow-3
=== Glow-Based Improved Shadow ===
{
<pre>
filter: progid:DXImageTransform.Microsoft.Glow(Color=#000000,Strength=1.0)
.shadowed .shadow-3 {
progid:DXImageTransform.Microsoft.Alpha(opacity=25)
    filter: progid:DXImageTransform.Microsoft.Glow(Color=#000000,Strength=1.0)
progid:DXImageTransform.Microsoft.Blur(pixelradius=1.75, enabled='true');
            progid:DXImageTransform.Microsoft.Alpha(opacity=25)
-ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#000000,Strength=1.0)"
            progid:DXImageTransform.Microsoft.Blur(pixelradius=1.75, enabled='true');
"progid:DXImageTransform.Microsoft.Alpha(opacity=25)"
    -ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#000000,Strength=1.0)"
"progid:DXImageTransform.Microsoft.Blur(pixelradius=1.75, enabled='true')";
                "progid:DXImageTransform.Microsoft.Alpha(opacity=25)"
color: #111111;
                "progid:DXImageTransform.Microsoft.Blur(pixelradius=1.75, enabled='true')";
top: -2px;
    color: #111111;
left: -2px;
    top: -2px;
    left: -2px;
}
}
</pre>


.shadowed .shadow-4
=== dropShadow-Based Improved Shadow ===
{
<pre>
filter: progid:DXImageTransform.Microsoft.dropShadow(color=#000000,offX=1,offY=1)
.shadowed .shadow-4 {
progid:DXImageTransform.Microsoft.Alpha(opacity=25)
    filter: progid:DXImageTransform.Microsoft.dropShadow(color=#000000,offX=1,offY=1)
progid:DXImageTransform.Microsoft.Blur(pixelradius=2.15, enabled='true');
            progid:DXImageTransform.Microsoft.Alpha(opacity=25)
-ms-filter: "progid:DXImageTransform.Microsoft.dropShadow(color=#000000,offX=1,offY=1)"
            progid:DXImageTransform.Microsoft.Blur(pixelradius=2.15, enabled='true');
"progid:DXImageTransform.Microsoft.Alpha(opacity=25)"
    -ms-filter: "progid:DXImageTransform.Microsoft.dropShadow(color=#000000,offX=1,offY=1)"
"progid:DXImageTransform.Microsoft.Blur(pixelradius=2.15, enabled='true')";
                "progid:DXImageTransform.Microsoft.Alpha(opacity=25)"
color: #111111;
                "progid:DXImageTransform.Microsoft.Blur(pixelradius=2.15, enabled='true')";
top: -2px;
    color: #111111;
left: -2px;
    top: -2px;
    left: -2px;
}
}
</code>
</pre>
Reference: [[https://www.artlebedev.com/tools/technogrette/html/filters-in-ie/ Artlebedeb: Using filters in IE]]
 
== References ==
* https://www.artlebedev.com/tools/technogrette/html/filters-in-ie/

Latest revision as of 16:08, 14 March 2026

Internet Explorer (IE) predates modern CSS text‑shadow support, so developers often relied on DirectX Filters to simulate glows, shadows, and blurs. These filters were powerful but also inconsistent, slow, and easily misconfigured. This article explains how to create text shadows in IE using Glow, Blur, Alpha, and dropShadow, why the results often look rough, and how to improve quality through tuning.

Context

Before CSS3, browsers did not support text-shadow. IE introduced its own proprietary visual effects using DXImageTransform.Microsoft.* filters. These were originally designed for multimedia/DirectX transitions and later exposed through CSS.

The Basic Approach

A common technique was to apply Glow, then Blur, and shift the result under the text using offsets.

.shadowed .shadow-1 {
    left: -7px;
    top: -7px;
    filter: progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)
            progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true');
    -ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)"
                "progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true')";
}

.shadowed .shadow-2 {
    left: -5px;
    top: -5px;
    filter: progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)
            progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true');
    -ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)"
                "progid:DXImageTransform.Microsoft.Blur(pixelradius=5, enabled='true')";
}

Improving Shadow Quality

Glow-Based Improved Shadow

.shadowed .shadow-3 {
    filter: progid:DXImageTransform.Microsoft.Glow(Color=#000000,Strength=1.0)
            progid:DXImageTransform.Microsoft.Alpha(opacity=25)
            progid:DXImageTransform.Microsoft.Blur(pixelradius=1.75, enabled='true');
    -ms-filter: "progid:DXImageTransform.Microsoft.Glow(Color=#000000,Strength=1.0)"
                "progid:DXImageTransform.Microsoft.Alpha(opacity=25)"
                "progid:DXImageTransform.Microsoft.Blur(pixelradius=1.75, enabled='true')";
    color: #111111;
    top: -2px;
    left: -2px;
}

dropShadow-Based Improved Shadow

.shadowed .shadow-4 {
    filter: progid:DXImageTransform.Microsoft.dropShadow(color=#000000,offX=1,offY=1)
            progid:DXImageTransform.Microsoft.Alpha(opacity=25)
            progid:DXImageTransform.Microsoft.Blur(pixelradius=2.15, enabled='true');
    -ms-filter: "progid:DXImageTransform.Microsoft.dropShadow(color=#000000,offX=1,offY=1)"
                "progid:DXImageTransform.Microsoft.Alpha(opacity=25)"
                "progid:DXImageTransform.Microsoft.Blur(pixelradius=2.15, enabled='true')";
    color: #111111;
    top: -2px;
    left: -2px;
}

References