ノード アプリケーションの html をレンダリングするために、(ブロック/拡張ヘルパーの例に従って) ハンドルバー + hbs を使用しています。何らかの理由で、私の div の 1 つが 1 行押し下げられています。
Chrome で dom インスペクタを確認したところ、二重引用符で囲まれた行があります。
これが原因です:
dom インスペクターから二重引用符を削除すると (バックスペースを押すか削除)、レイアウトは正しくなります。
がらくたが起こっているのは何ですか?非印字文字か何かですか?html/template には何もありません。空白 (または任意の文字) によってブロック レベル要素の位置が変更されることはありませんよね?
ここにいくつかのコードがあります:
Layout.html の関連セクション
<div id="details" class="east">{{{block "east"}}}</div>
テンプレート:
<div id="details-title">
<h3 class="title elide" style="height:26px;">{{Title}}</h3>
</div>
<div id="details-body" class="content text">
<img class="card" src="{{ImagePath}}" />
<div>
<span class="type">{{Type}}</span>
</div>
<div class="body">
{{{Body}}}
</div>
</div>
ブロック + 拡張ヘルパー: ( hbs の例から)
hbs.registerHelper("extend", function (name, context) {
var block = blocks[name];
if (!block) {
block = blocks[name] = [];
}
if (typeof context.fn !== "undefined") {
block.push(context.fn(this));
}
});
hbs.registerHelper("block", function (name) {
var val = (blocks[name] || [])
.filter(function () { return true })
.join("\n");
// clear the block
blocks[name] = [];
return val;
});
更新 どうやら、これはchar 65279 です。私のプリコンパイル済みハンドルバー テンプレートはすべて、レンダリング時に最初の文字としてこれを出力します。