当用户按下</ol>时,html列表<ol>中断

时间:2012-06-13 06:10:53

标签: html

我有一个contenteditable div元素,其中包含使用<ol>的列表。如果用户选择了不是<li>的其他位置,则不会创建新的<li>项。如果用户在创建列表后按两次Enter键,则不会创建<li>项。

如何强制div元素中的所有行都是<li>项?

我没有小提琴帐户,但是如果你在这里的例子中添加了contenteditable标签,你可以看到/测试它的行动http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_lists

1 个答案:

答案 0 :(得分:0)

contenteditable的效果因浏览器而异,但当列表位于可编辑区域内时,问题中描述的行为很常见,而不是声明为可编辑为元素。原因似乎是因为封闭元素是可编辑的,所以实现者认为应该有一种方法可以离开列表,例如,在它之后添加内容。

如果您更改了一个类似于

的可疑块
<div contenteditable>
some stuff
<ol><li>test</li></ol>
some other stuff
</div>

到三个这样的块,

<div contenteditable>
some stuff
</div>
<ol contenteditable><li>test</li></ol>
<div contenteditable>
some other stuff
</div>

然后行为发生变化:在列表中按两次Enter键只会在那里添加一个空项目。

<ol contenteditable>存在问题:它似乎使IE 9省略了列表编号(或ul列表项目符号),没有明显的方法将其放在那里。 (编辑:这只发生在怪癖模式。但是这个错误可能出现在早期IE版本的不同模式中。我建议在包装元素上使用contenteditable而不是直接列出像ol这样的元素。)< / p>

相关问题