这很难让我知道它是否可能,更不用说如何了。
我希望从AS / 400显示基于文本的“屏幕截图”。这些屏幕是基于80x24字符的屏幕,具有彩色和粗体/下划线功能。
我可以将整个屏幕复制为文本并将其放在PRE标签之间,它看起来很棒,只是它缺少用于指示输入字段在屏幕上的位置的下划线。
如果所述输入字段为空,则可以通过用实际下划线字符替换空格来模拟它们 - 这有点麻烦 - 但字段经常显示我希望在我的表示中保留的默认值。
因此,我要求将具有保留空白和(可能是ned)下划线样式的等宽文本有选择地应用于特定字符(同时保持空白!)
我无法理解可以使用哪种混合的HTML / CSS来相对轻松地实现这一目标。首先,我认为问题在于预格式化文本中的风格明显悖论。
对此方法,技术或基本不可能性的任何想法都将受到赞赏。
答案 0 :(得分:3)
您可以在<pre>
element中使用标记。根据规范,只允许某些类型的标记元素,尽管浏览器更宽松;但为了您的目的,允许的文本级标记就足够了。
您可以使用<u>
作为下划线,使用<b>
进行粗体处理,使用<font color=...>
进行着色,也可以将<span class=...>
用于所有目的,使用不同的class
}属性和适当的CSS设置。
这意味着HTML 源看起来不太好,因为您从预先格式化的文本开始并抛出标记。例如,如果你有
foo bar: umpf
foo bar: zap
并且您希望第二个“条形”加下划线,您可以将其更改为
foo bar: umpf
foo <b>bar</b>: zap
然后事情在HTML中看起来不一致。
但只要你小心添加标签或编写添加标签的程序代码(如果可以通过算法添加它们),显示就可以了。
下划线和着色不会改变角色的前进宽度。 Bolding可能会这样做,而且通常会这样做,但不能用等宽字体。我在快速测试中发现的唯一例外是Everson Mono,但你可能没有使用它。可能还有其他(很少使用的)等宽字体具有相同的问题:它们缺少粗体字,迫使程序忽略粗体尝试或应用算法粗体,这通常会略微增加宽度。
答案 1 :(得分:0)
您可以简单地使用等宽字体而不是使用<pre>
标记。例如:
<div style="font: normal 10pt 'Courier New'; width: 300px; height: 300px; overflow: scroll;">
Test Content
</div>
调整width
和height
的值以完全符合80x24,并且您有自己的控制台窗口。在里面你可以根据自己的喜好进行格式化。