2011-09-29 47 views
5

我有一個基於html5boilerplate的Diazo主題文件。該主題使用<html>元素的條件註釋來標識特定版本的Internet Explorer,例如,如何保留Diazo主題中<html>元素的條件註釋?

<!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]--> 

然而,當應用主題重氮似乎剝去這些條件註釋並且只有最後

<!--<![endif]--> 

留在最終的標記產生類似

<!doctype html> 
<html xmlns="http://www.w3.org/1999/xhtml" class="no-js" lang="en" xml:lang="en"><!--<![endif]--> 

與無與倫比的endif。在<html>標記中使用條件註釋(例如,在<head>之內或在文檔的更下方)似乎工作正常。一個主題的

實例和規則,有這個問題的文件可在

https://github.com/hexagonit/hexagonit.themeskel/blob/master/hexagonit/themeskel/templates/less_theme/+namespace_package+/+package+/theme_resources

我使用plone.app.theming與良好-PY相關KGS版本1.0b8。

回答

2

這看起來像是Diazo中的一個bug,請將其添加到組件'Diazo'的Plone bug跟蹤器中。

+0

謝謝。 https://dev.plone.org/plone/ticket/12249 –

0

解決此問題的方法可能是在<body>標記上使用條件註釋,但Diazo還必須爲Plone的主體標記添加幾個類,這會在< = IE8中破壞它。

<merge attributes="class" css:theme="body" css:content="body" /> 

因此,第三速率的解決方法可能是在這樣的div塊上使用連續註釋。

<!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的普遍性,我可以忍受這一點。