刷新后没有加载第二个css文件

时间:2014-01-24 11:03:38

标签: xslt xhtml xslt-1.0

让我用简单的例子来解释我的问题......

的example.xml

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="example.xsl"?>
<ex>True</ex>

和我的example.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns="http://www.w3.org/1999/xhtml">
  <xsl:output method="html" indent="yes" doctype-system="about:legacy:compat"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>Title</title>
        <link rel="stylesheet" type="text/css" href="a.css"/>
        <link rel="stylesheet" type="text/css" href="b.css"/>
      </head>
      <body>
        <h1>will get red color from a.css</h1>
        <h2>will get blue color from b.css</h2>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

当我在浏览器上打开xml文件时,两个标题h1和h2正好红色和蓝色, 但每次刷新后<h2></h2>文字有时都是蓝色,有时是黑色...... 谁能让我知道这个问题?

1 个答案:

答案 0 :(得分:0)

您的XSLT代码没有任何问题。输入XML或CSS文件没有任何问题。我能想到你描述的行为的唯一原因是b.css不再可用。

这是我用Firefox获得的输出,即使我刷新,蓝色字体也会保留。

编辑:内部CSS样式可能有所帮助,而不是从外部文件引用它们。

下面的样式表与您的样式表基本相同,只是CSS是内部的。这可能会降低CSS文件无法使用的可能性。

<强>样式表

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" 
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns="http://www.w3.org/1999/xhtml">

   <xsl:output method="html" indent="yes" doctype-system="about:legacy:compat"/>

   <xsl:template match="/">
      <html>
         <head>
            <title>Title</title>
            <style type="text/css">
               h1 {color:red;}
               h2 {color:blue;}
            </style> 
         </head>
         <body>
            <h1>will get red color from a.css</h1>
            <h2>will get blue color from b.css</h2>
         </body>
      </html>
   </xsl:template>

</xsl:stylesheet>

<强>输出

enter image description here