2

我正在使用 HTML/JS 开发 Windows 8 应用程序。我的模板渲染有问题。段落“行”不渲染,只有 h4 和 h6。如果我将“p”更改为“h3”或“h4”等,它可以工作。我还尝试将 data-win-bind 属性“innerText”更改为“text”和“textContent”,但没有成功。

我不想到处都有标题。为什么它不起作用?我见过一些例子,人们似乎毫无问题地使用“p”。

HTML:

<div id="detailedViewTemplate" data-win-control="WinJS.Binding.Template">
    <h4 data-win-bind="innerText: DiareNumber" />
    <h6 data-win-bind="innerText: Company" />
    <p data-win-bind="innerText: Administrator" />
    ...
</div>
4

1 回答 1

3

经过一些测试,我发现问题是标题标签<h6><h4>. 它必须正确关闭,除非解析无法按预期工作。HTML5 不允许在非空元素上使用“自闭合”标签。

经过一番研究,我发现这个网站解释了原因: http ://tiffanybbbrown.com/2011/03/23/html5-does-not-allow-self-closing-tags/

在这种情况下,如果 p 元素后面紧跟地址、文章、旁白、blockquote、dir、div、dl、fieldset、footer、form、h1、h2、h3、h4、h5、h6,<p>则不需要结束标记header、hgroup、hr、menu、nav、ol、p、pre、section、table 或 ul、element,或者如果父元素中没有更多内容且父元素不是 a 元素。

解决方案

所以通过改变:

<div id="detailedViewTemplate" data-win-control="WinJS.Binding.Template">
    <h4 data-win-bind="innerText: DiareNumber" />
    <h6 data-win-bind="innerText: Company" />
    <p data-win-bind="innerText: Administrator" />
    ...
</div>

到:

<div id="detailedViewTemplate" data-win-control="WinJS.Binding.Template">
    <h4 data-win-bind="innerText: DiareNumber"></h4>
    <h6 data-win-bind="innerText: Company"></h6>
    <p data-win-bind="innerText: Administrator"></p> <!-- optional -->
    ...
</div>

现在它可以正常工作了!

于 2013-04-09T11:30:35.047 回答