0

ファイルから読み取った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=...」を含むコード行は重要です。それらの中央の行は無視されるため、2 行のみが表示されます。それは、終了 /p の前にテキストがないためですよね? もちろん、「」(スペース)を入力することもできますが、それは汚い解決策です...

下の行に「margin-top:0px」の代わりに「margin-top:Xem」を挿入することで、中途半端な解決策を見つけました。×は「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>
4

2 に答える 2

2

いくつかのポイント:

  1. ID は一意である必要があります。代わりにクラスを使用するように変更してください。
  2. コンマではなく、要素の属性を区切るためにスペースのみが必要です。
  3. インライン スタイルではなく、CSS を使用する必要があります。

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 の例

ただし、空の行をコピー可能にしたい場合は、要素を空のままにするのではなく、改行しないスペース( ) を使用するように HTML 自体を変更する必要があります。&nbsp;

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

これにより、改行しないスペースが要素のフォントサイズに準拠するため、余分な最小高さは必要ありません。

JSFiddle の例

于 2013-07-15T14:52:08.140 に答える
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>

それをフェーズに挿入すると、機能します。それをQTextBrowserに設定しても、そうではありません。しかし、それは別の質問です

于 2013-07-15T16:07:49.943 に答える