参数化style =“margin-top:Xem”以设置任何X.

时间:2013-07-15 14:46:41

标签: html

我想通过从文件中读取的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>

2 个答案:

答案 0 :(得分:2)

几点:

  1. ID必须为unique。改为使用类来改变它们。
  2. 您只需要空格来分隔元素属性,而不是逗号。
  3. 您应该使用CSS而不是内联样式。
  4. 如果您想要显示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元素将始终具有一定高度,无论其是否具有内容。

    JSFiddle example

    但是,如果您希望空行可以复制,则需要修改HTML本身以使用non-breaking space&nbsp;)而不是将您的元素留空:

    <p class="editor">Line 1</p>
    <p class="editor">&nbsp;</p>
    <p class="editor">Line 3</p>
    

    这样你不需要额外的最小高度,因为非破坏空间符合元素的字体大小。

    JSFiddle example

答案 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,但它没有。但这是另一个问题