I have an XSL stylesheet that I need to use because it has stuff that's really hard to recreate. And I can't edit it, either. So I'm using <xsl:import>
to import the XSL stylesheet, and then I'm overriding a few templates. But one has me stumped:
<xsl:template match="mscript">
<html>
<!-- head -->
<head>
<!-- ... other stuff not important ... -->
<xsl:call-template name="stylesheet"/>
</head>
<body>
<!-- ... more stuff ... -->
and the stylesheet
template, which sticks in a <style type='text/css'>...</style>
tag and is mostly useful, starts with this boneheaded nonsense:
<xsl:template name="stylesheet">
<style type="text/css">
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,
a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,
small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,
form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td
{margin:0;padding:0;border:0;outline:0;font-size:100%;
vertical-align:baseline;background:transparent}
Argh! Makes me nauseous.
I can override the stylesheet completely in my root XSL file, but what I'd really like to do is just nullify this one CSS rule.
Is there a way to do that? Here's kind of what I'd like to do:
<xsl:template name="stylesheet">
<xsl:call-template name="imported_stylesheet" />
<style type="text/css">
<!-- nullify the boneheaded nonsense -->
h1,h2,h3,h4,h5,h6,p,blockquote,pre,
a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,
small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,
form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td
{margin: default; padding:default;border:default;outline:default;font-size:default;
vertical-align:default;background:default}
</style>
</xsl:template>
but default
isn't a CSS feature, and I don't know how to call the imported stylesheet, since when I override the stylesheet
template, its previous value disappears.