我有一个内嵌背景颜色(样式属性)的div,其中我有一个标题,一个noscript标签和一个带有下拉菜单的表单(选择标签)。
如果在下拉菜单中找到标题和noscript,则它们隐藏在背景颜色后面,只有在用鼠标选择文本时才会再次聚焦。以下是重现问题所需的最小代码示例(例如,我删除了javascript代码)。此代码也是一个静态的html文档,然后就不会出现问题。
<?xml version='1.0' encoding='ISO-8859-1'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match='/'>
<html>
<head>
<title>Help Center</title>
</head>
<body style="font-family:Arial, sans-serif;margin:0px;">
<div style="background-color:#fffacd;">
<h1 style="z-index:2">Help Center</h1>
<noscript>
<p><font color="red"><b>The Help Center require javascript for optimal use.</b></font></p>
</noscript>
<form>
<select name="release" onchange="return showHide(this);">
<option value="632" selected="selected">632</option>
<option value="633">633</option>
<option value="634">634</option>
</select>
</form>
<br />
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
但是,如果内容位于select标记之后,则所有内容都会正确显示。
<?xml version='1.0' encoding='ISO-8859-1'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match='/'>
<html>
<head>
<title>Help Center</title>
</head>
<body style="font-family:Arial, sans-serif;margin:0px;">
<div style="background-color:#fffacd;">
<form>
<select name="release" onchange="return showHide(this);">
<option value="632" selected="selected">632</option>
<option value="633">633</option>
<option value="634">634</option>
</select>
</form>
<h1 style="z-index:2">Help Center</h1>
<noscript>
<p><font color="red"><b>The Help Center require javascript for optimal use.</b></font></p>
</noscript>
<br />
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
更新
有一个缺少元素来重现问题:在我的问题代码中,在表单标记之后有<br />
。顺便说一句,删除<br />
解决问题。
现在,我问自己是否值得删除这个问题。如果第二天没有评论,或者我被告知,我会将其删除。
UPDATE2: 我在网上带了这个例子。它应该看起来如何以及有问题的xslt-transformed xml出现在http://kingdom7.free.fr/helpcenter/index.html
上答案 0 :(得分:1)
把
<xsl:output
method="html"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
样式表中的(作为xsl:stylesheet元素的子代)。