4

When I remove a line from a <pre> tag the rest of the lines below it don't move up like they would if using a standard <div> or any other element.

You can see an example of this at http://jsfiddle.net/NN6LC/

Has anybody encountered this issue before or knows how to resolve this?

4

3 に答える 3

4

スパンを削除していますが、改行はまだそこにあります。

<span>また、技術的には、に を含めることさえ許可されていません<pre>

http://lib.ru/WEBMASTER/elements.html#PREから:

許可されている要素...

要素<A> <HR> <BR>と解析された文字データ。

これを回避するには、 a の<div>代わりに aを使用<pre>し、div にスタイルを設定して aa のように見せます<pre>

編集: 他の誰かが以下の回答を投稿し、回答を削除しました。良い答えだったので、理由はわかりません。しかし、これは彼らがそれをした方法です:

s が技術的に許可されていないことを気にしない場合は<span>、次のように手動でそれと改行を削除できます: http://jsfiddle.net/doktormolle/KgYyp/

function removeLine() {
    var line=$('pre span.line_1');
    if(line.length) {
        if(line[0].nextSibling && line[0].nextSibling.nodeType == 3) {
            line[0].parentNode.removeChild(line[0].nextSibling);
        }

    }
    line.remove();
}

これは、要素を削除する前に要素の後の改行をチェックし、存在する場合は改行も削除します。

于 2011-09-28T08:34:17.240 に答える
2

行の後の改行も削除する必要があります。

http://jsfiddle.net/doktormolle/KgYyp/

于 2011-09-28T08:33:42.920 に答える
0

何という奇妙な行動。これを回避する方法がありますが、完全に満足できるものではないことは認めます。

次の CSS を追加します。

pre {white-space: normal}
pre span {display: block}

動作するバージョンについては、http://jsfiddle.net/tG8V6/を参照してください。

于 2011-09-28T08:53:57.720 に答える