Hi all,

I have had a need for a literal() function to accept and replace some
values from @def. To be specific, I needed to make some transparent
PNGs working in IE6, which is just not doable withing CssResource at
this time.

The approach described here: 
http://osdir.com/ml/GoogleWebToolkitContributors/2009-03/msg00461.html
that is using literal()value()literal() in order to get this:

.some {
  filter: progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='http://some/url.png',sizingMethod='scale');
}

apparently literal()value()literal() approach produces extera
whitespace around value(), which makes IE6 stop parsing rest of the
stylesheet.

I came with solution, which would allow you to use values defined with
@def or @url, inside IdentValue(), that means in literal() function as
well. To make use of it, you would write your CSS like this:

.some {
  filter: progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='{tabShadowUrl}',sizingMethod='scale');
}

the values in curly braces gets replaced by value of @def/@url if
present. My patch only works for one value in a property. If this
seems any useful, and I hope it is, since it is the only way to get
transparent PNGs (common use case) working in CssResource & IE6, I
would welcome any suggestion on how to improve my hackish code, and
support multiple replacements in a single property. Thank you, the
patch is in the files, named: subref_literal_replacements.patch
-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to