html - HTML5 嵌套列表:可能没有父级的缩进列表项?
问题描述
我正在开发基于contenteditable
DIV 的文本编辑器。我想生成有效的 HTML5,但遇到了嵌套列表的问题。
以下两个格式化示例似乎无法使用有效的 HTML5 创建,因为它们需要将<ul>
元素嵌套为 parent 的直接子元素<ul>
:
场景 1:空父项
●
○ 父项为空的嵌套项
场景 2:没有父列表项的嵌套项
○ 没有父项的嵌套项
我阅读了https://stackoverflow.com/a/5899394/901334并根据 HTML 规范,<ol>
and<ul>
元素必须只包含<li>
元素,而不能包含其他<ol>
and<ul>
元素。
但是,可以在contenteditable
DIV 中创建这样的格式(参见下面的 jsbin)。那么浏览器是如何做到的呢?
它们确实嵌套<ul|ol>
在父<ul>
列表中!像这样生成的 HTML 会导致验证错误。
现在,如果浏览器供应商采用这种解决方法,我得出的结论是,确实没有办法使用有效的 HTML5 生成这种格式,因此我可以使用相同的解决方法来包含<ul>
其他元素的直接子<ul>
元素。
随意在这里尝试一下:
解决方案
I believe you want a variation of the answer in CSS set li indent.
Specifically, add a css class that has the extra indent you want.
Here is an example:
li { margin-left:10px }
li.bonus { margin-left:100px }
You can change the bullet at the list level. For example:
ul.bonus { list-style: none }
ul.bonus li::before {content: "*"; color: red }
推荐阅读
- javascript - 删除div jquery
- rest - Impact in terms of response time if we only use POST instead of other REST verbs?
- c# - ASP.NET Core 2.1 中的重定向路由
- sql - 从 2 个逗号分隔的字符串中获取公共值的数量
- assembly - 如何计算 x86 程序集中的辅助标志状态
- plsql - 在mybatis上selectkey没有返回数据
- excel - ComboBox 中的选定值未正确插入到单元格中
- android - 奇怪的 selectableItemBackground 无边框波纹效果
- linux - 需要 bash 中选项卡的脚本解决方案
- javascript - 获取按日期过滤的 JSON 数据并从中创建一个新数组