我目前想知道在不更改流规则的情况下将动态格式应用于 HTML 页面中的内容的能力。从表面上看,这似乎很简单,因为您可以选择 DOM 的一个子集并批量应用。但是,如果您只想将该格式应用于特定对象的文本的一部分,这将不起作用。
例如,格式化:
<div>Let's start my format here <span> and here </span> and <br> here too. <br> But not here.</div>
如果您想<br> But not here.
从格式中排除,则对于任意布局的情况没有明确的方法可以做到这一点,即使您手动这样做也是如此。一种方法是将 div 分解为 span 部分,然后以不同的方式格式化它们。不幸的是,将任意 HTML 包装在内联元素中会导致一些不幸的副作用(例如,<br>
跨度中的任何标记都将被视为不存在)。使用块元素包装器,就像通过添加不存在的中断来引入类似的问题。我似乎找不到一种方法来声明一个 DOM 组,它可以像父对象中的纯文本一样简单地表现出来。
因此,我试图找出一个很好的通用解决方法来引入显示级格式,同时保留任何布局格式。这种格式可以包括文本格式(例如,突出显示、强调)或动态效果(例如,隐藏/显示)。我可以想到一些假设的解决方案,但我不确定在实践中实际上有什么(如果有的话):
- 一个现有的内联布局元素,例如 span,它不会杀死您的换行符和其他格式请求。
- 使用 CSS 制作自定义元素(例如 #1)的能力。也许磨合或继承显示标签可能对此有用?(https://developer.mozilla.org/en-US/docs/Web/CSS/display)然而,他们似乎都没有解决这个问题。
- 一种防止跨度破坏其内部格式标记的方法。
- 一个分组元素,作为布局格式的传递(即,出于布局目的,被视为未标记的文本),但允许显示格式。
人们会认为这将是一件简单的事情。毕竟,不难想象想要将一个 div 分成两个不同的部分,它们的文本格式略有不同,同时保留它们的布局格式。但是,我似乎找不到适合这项工作的工具。