我想通过从文件中读取的plainText来构建。 该文件具有以下外观:
Line1
Line3
Line2完全是空的,即使没有空格。 然后html文件看起来像
<!DOCTYPE HTML PUBLIC><html>
<head>
<style type='text/css'>#editor { white-space: pre; }</style>
</head>
<body style="font-family: 'Segoe Print'; font-size:14pt">
<p id='editor', style=" margin-top:0px; margin-bottom:0px; margin-left:0px">Line1</p>
<p id='editor', style=" margin-top:0px; margin-bottom:0px; margin-left:0px"></p>
<p id='editor', style=" margin-top:0px; margin-bottom:0px; margin-left:0px">Line3</p>
</body></html>
带有“p id = ...”的代码行非常重要。它们的中间线被忽略,因此只显示了两行。那是因为在闭幕前没有文字/ p,对吗?我当然可以输入“”(空格),但那是一个肮脏的解决方案......
我通过在下面一行插入“margin-top:Xem”而不是“margin-top:0px”找到了一个中途解决方案。 X是“1”。现在的问题是:
我如何设置任何其他值,例如4,对于X当程序发现有4个空行?
编辑:这是我尝试过的。什么都没有改变......<!DOCTYPE HTML PUBLIC><html>
<head>
<style type='text/css'>p.editor { white-space: pre; min-height:1em; }</style>
</head>
<body style="font-family: 'Segoe Print'; font-size:14pt">
<p class='editor' style=" margin-top:0em; margin-bottom:0px;">Line1</p>
<p class='editor' style=" margin-top:0em; margin-bottom:0px;"></p>
<p class='editor' style=" margin-top:0em; margin-bottom:0px;">Line3</p>
</body></html>
答案 0 :(得分:2)
几点:
如果您想要显示p
元素而不包含任何文字,只需给它一个最小高度。
<p class="editor">Line 1</p>
<p class="editor"></p>
<p class="editor">Line 3</p>
p.editor {
white-space: pre;
margin:0;
min-height:16px;
}
默认情况下,p
元素默认为内容的高度。没有内容,根本没有高度。指定最小高度意味着空p
元素将始终具有一定高度,无论其是否具有内容。
但是,如果您希望空行可以复制,则需要修改HTML本身以使用non-breaking space(
)而不是将您的元素留空:
<p class="editor">Line 1</p>
<p class="editor"> </p>
<p class="editor">Line 3</p>
这样你不需要额外的最小高度,因为非破坏空间符合元素的字体大小。
答案 1 :(得分:0)
解决方案适合我:
<!DOCTYPE HTML PUBLIC>
<html>
<head>
<style type='text/css'>h1 { white-space: pre; min-height:1em; font-family: arial;
font-size:8pt; color:green; margin-bottom:0px; margin-top:0px}
</style>
</head>
<body>
<h1>Line1</h1>
<h1></h1>
<h1>Line3</h1>
</body></html>
在Phase中插入它,它可以工作。 将其设置为QTextBrowser,但它没有。但这是另一个问题