私は HTML5 カスタム要素を使用して、「豊富な脚注」と呼ばれるもの (基本的に小さなマウスオーバー ボックス) を作成しています。マークアップは次のようになります
<p>
Socrates is a
<x-info>
<x-text>
man
</x-text>
<x-planation>
<p>What is a man? Here are some examples of men:</p>
<ul>
<li>Bill Clinton</li>
<li>Aristotle</li>
</ul>
</x-planation>
</x-info>, therefore Socrates is mortal
</p>
次のようなものをレンダリングする必要があります
ソクラテスは人間だから、ソクラテスは死ぬ。
manという単語にカーソルを合わせるとボックスが表示されるようにします。<x-info>
インライン要素のみが含まれている場合、これは正常に機能します。ただし、上記の例では、HTML パーサーは<p>
s と<ul>
s が別の 内にネストされていることに腹を立て<p>
、マークアップを台無しにして、より似たようにレンダリングします。
ソクラテスは男
男とは?以下は男性の例です。
- ビル・クリントン
- アリストテレス
、したがって、ソクラテスは死ぬ
これを回避する方法はありますか?マークアップ構造を変更することは避けたいと思いますが、これは私の制御の範囲外です (そうしないと、バックエンドで前処理する必要があります)。