我有一个基于html5boilerplate的Diazo主题文件。该主题使用<html>
元素上的条件注释来标识Internet Explorer的特定版本,例如
<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!-- Consider adding an manifest.appcache: h5bp.com/d/Offline -->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
然而,当应用主题时,Diazo似乎剥离了这些条件评论并且只删除了最后一个
<!--<![endif]-->
留在最终标记中,产生类似
的内容<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" class="no-js" lang="en" xml:lang="en"><!--<![endif]-->
具有无与伦比的endif
。在<html>
标记中使用条件注释(例如在<head>
内或文档中更下方)似乎可以正常工作。
提供了有此问题的主题和规则文件的示例
我正在使用plone.app.theming 1.0b8以及来自good-py的相关KGS版本。
答案 0 :(得分:2)
这看起来像是Diazo中的一个错误,请将其添加到Plone bug追踪器中,并使用“Diazo”组件。
答案 1 :(得分:0)
解决这个问题的方法可能是在<body>
标签上使用条件注释,但是Diazo还必须在Plone的body标签中添加一些类,这会在&lt; = IE8中打破它。
<merge attributes="class" css:theme="body" css:content="body" />
所以第三种方法可以在这样的div块上使用contional注释。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/style.css">
<title>Title</title>
</head>
<body>
<!--[if lt IE 7]> <div class="no-js ie6 oldie"> <![endif]-->
<!--[if IE 7]> <div class="no-jsie7 oldie"> <![endif]-->
<!--[if IE 8]> <div class="no-js ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!--> <div class="no-js"> <!--<![endif]-->
<div id="content"></div>
</div><!-- Browser Detection -->
</body>
</html>
鉴于Plone生成的html普遍不稳定,我可以忍受这个。