在可满足内容的div中显示段落标记、空格和其他格式标记



我需要在一个可满足内容的div中显示段落标记,空格和其他格式标记,就像你可以在MS Word中通过按格式标记按钮格式标记按钮http://blogs.mccombs.utexas.edu/the-most/files/2011/04/show-hide-button-in-outlook.jpg

是否有一个简单的方法来实现这一点?

<html>
	<head>
		<style>
			span::after{
    color:black;
    content:"0b6";
}
          p::after{
    color:black;
    content:"0b6";
}
          
		</style>
	</head>
	<body>
		<h3>
			<span class="label">This is the main label</span>
			<span class="secondary-label">secondary label</span>
		</h3>
		<P>Quote me</p>
	</body>
</html>

创建一个将空格绘制为点,将换行符绘制为段落标记的字体应该可以解决您的问题。

在代码中,它看起来像
.editable-div {
    font-family: "Your custom font with spaces as dots and stuff", "Actual character font";
}

这里有一篇文章详细介绍了这种方法http://www.sitepoint.com/joy-of-subsets-web-fonts/

(我无法访问Word,但我假设它是大多数文本编辑器中呈现的完全相同的功能,或者InDesign的'显示隐藏字符'选项&c.)

不,绝对没有简单的方法来做到这一点,因为这是一个相当复杂的功能。

如果您真的想要这样做,最好的办法是在用户输入文本时捕获div中的输入。像Bacon这样的东西可以很容易地将关键用户输入捕获为流(并允许您跨流进行映射),这会在一定程度上简化过程。

你需要替换*(实时)每个空格/段落标记/&c与相关的标记为用户实际的输入仍然需要保存为输入,或者在保存之前再次解析以删除新的假装字符。尽管您可以对许多标记(可能是pilcrows ?)使用use unicode实体,但空格(例如)仍将显示为空白(或者如果转义则显示为实体代码),因此您需要使用代表性图标—本质上,大多数隐藏字符都需要有自己特定的、已定义的呈现规则。

这简直是噩梦。如果你能保证最小化文本的最大数量,如果你能控制用户可以输入的内容,这是可行的。对于大量的文本,我可以看到它变得可怕:不确定JS开销在性能方面会是什么,但我无法想象它会特别好。


*或追加-例如换行符/回车符等都需要作为标记显示,并且实际上出现在可满足元素中。


Edit:除了上述操作之外,您还可以编辑字体,替换/添加隐藏字符的unicode点,而不是可见字符-您仍然需要捕获输入,但这将消除一些令人头痛的问题。例如,它可以很好地处理空格。还是有点像噩梦,但是,嘿。

相关内容

最新更新