为什么Elm.embed只接受div?

时间:2015-11-13 04:18:11

标签: embed elm

如果您尝试将Elm.embeddiv以外的元素一起使用,则会出现此错误:

  

Elm.node必须给予DIV,而不是BODY。

我可以在源代码中看到this fairly explicitly。我想了解为什么存在这种限制。例如,为什么我无法在我的body标记中嵌入Elm?

1 个答案:

答案 0 :(得分:2)

当你使用Elm.embed时,你说“我正在完全控制这个元素的内容到这个Elm模块”。尝试将其嵌入body与使用Elm.fullscreenother ways之一运行Elm应用程序)相同。

至于为什么你不能嵌入任何其他标签(比如一个<span><p>标签),我猜测它只是在语义上正确并避免任何奇怪的行为。 <div>只是“定义文档中的部分”的块元素。 <span>标签具有相似的语义(“定义文档中的一个部分”),但不是块元素(将此Elm模块显示为内联元素意味着什么?)。 <p>标记是一个块元素,但是用于保存一段文本。如果您尝试嵌入<canvas><iframe>元素,甚至会发生什么?您可以通过确保嵌入应用的元素是div来避免所有这些。