<br>の高さを変更するには?


263

のサブパラグラフに分割されたテキストの大きなパラグラフがあります<br>

<p>
  Blah blah blah.
  <br/>
  Blah blah blah. Blah blah blah. Blah blah blah.
  <br/>
  Blah blah blah.
</p>

2つの<br>'s'やそのようなものがあるように、これらのサブパラグラフ間のギャップを広げたいです。これを行う正しい方法はを使用すること<p></p>ですが、現時点ではこのレイアウトを変更できないため、CSSのみのソリューションを探しています。

私は設定を試してみた<br>line-heightheightdisplay: block、私はまた、簡単にGoogleで検索し、スタックオーバーフロー-編が、任意の解決策を見つけることができませんでした。これはレイアウトを変更せずに可能ですか?


brタグに高さの値があったと考えると、フォーマットが混乱を増す可能性があります。以下で指摘するように、これらは単に改行です。ワードプロセッサで同様のことを試しましたか?
ヨルク

<br>の高さの変更は、意味的に間違っています。<br>は、テキストに別の行を置くだけで、1つの段落の行の高さが固定されていることを意味します。一部のテキストが区切られている場合は、別の段落にする必要があります。
Robo Robok、2015


1
@JohnHenckel Aは、以来、誤解を招くビット<p>タグが含まれていないことができ<div>、タグはこの記事を参照
deseosuho

1
フォーマットに指定されたコードは、私たちが制御できるものではない場合があります。「<p>タグを追加することはできません...代わりにスペーサーとして使用されている<br>の高さのみを変更する場合。」
ブライアン

回答:


275

CSS:

br {
   display: block;
   margin: 10px 0;
}

ソリューションはおそらくクロスブラウザ互換ではありませんが、それは少なくとも何かです。また、設定を検討してくださいline-height

line-height:22px;

Google Chromeの場合 設定を検討してcontentください。

content: " ";

それ以外は、JavaScriptソリューションに困っていると思います。


31
これはIE7、Opera10、Chrome2では機能しません。Firefoxでは、マージンを2倍のサイズで作成します。指定する必要がありますmargin-top: 10px;
畏敬の念の

8
content:" "そのスタイルに属性を追加すると、Chromeで
正常

8
このソリューションはFirefoxで動作します。Webkitベースのブラウザーの場合は、を追加できline-heightます。結局、それはのようなものですbr { display:block; margin-top:10px; line-height:22px; }
クトゥルフ

2
@awe:より良い解決策はmargin:10px 0 0、それを2倍のサイズにしたくない人です。
Kayla

1
私にはうまくいきません...私も@aweのコードを試してみましたがmargin-top: 10px;、まだうまくいきませんでした...
枢機卿-モニカの復活19'17

67

実際にクロスブラウザをサポートしている正しいソリューションは次のとおりです。

  br {
        line-height: 150%;
     }

1
私の知る限り、IE7ではありません。
Serhiy

30
これは改行の高さを上げるのに役立ちますが、下げることはできません。
プルート

2
@htmldrum HTMLを変更する機会がなく、CSSのみを変更する場合、これはうまく機能します。ありがとうございました!これは賛成投票され、正解と見なされます。おもう。
-flaschbier

@Pluto:以下のナイジェルの答えは、私が身長を下げるのに役立ちます!
Anupam

2
残念ながら、Chrome v.76では動作しなくなりました。EdgeとIEの場合は、vertical-align:topも追加する必要があります。ここに解決策を投稿しました: stackoverflow.com/a/29674365/562862
Dave Burton

48

したがって、上記ののぞき見は基本的に同様の答えを持っていますが、ここではそれは非常に簡潔です。Opera、Chrome、Safari、Firefoxで動作します。おそらくIEでも動作しますか?

br {
            display: block; /* makes it have a width */
            content: ""; /* clears default height */
            margin-top: 0; /* change this to whatever height you want it */
}

3
この。これは、述べられている質問と比較して正しいです。そして、それはまた、ページ上で私が実際に必要なことをした唯一の答えでもあります。
Xodarap777

コンテンツを変更するまで、他の回答はどれもうまくいきませんでした。これが正解です、IMO。
Xandor

39

別の方法は、HRを使用することですです。しかし、そしてここに狡猾な部分があります、それを見えなくします。

したがって:

<hr style="height:30pt; visibility:hidden;" />

HRを使用してシミュレートされたよりきれいなBRブレークを作成するには:すべてのブラウザーでBtwが機能します!!

{ height:2px; visibility:hidden; margin-bottom:-1px; }

1
IE8のmargin:0pxを追加する必要がありました
IvanH 2012

34
それはHTMLタグの恐ろしい乱用です。<p></p>マージンを使用してから破壊する方が良い<hr />
Serj Sagan

このトリックは良いですが、結果はより正確に取得するには、あなたは余裕を使用する必要が:0との国境:0
MAChitgarha

25

私が知る限り、高さ<br>はありません、それは改行を強制するだけです。あなたが持っているのは、サブ段落ではなく、自動折り返しに加えていくつかの改行があるテキストです。行間隔は変更できますが、これはすべての行に影響します。


1
本当に仕方がないようです。:beforeプロパティと:afterプロパティを使って遊んでもみましたが... :(
n1313

1
私はこれが超古いことを知っていますが、@ Isaac Minogueはこれを行う有効な方法を持っています。contentプロパティを変更するとうまくいきます。
Xandor

22

私はこの問題を抱えていました、そしてそれを使ってそれを回避しました

<div style="line-height:150%;">
    <br>
</div>

これはうまく機能し、@ htmldrumの回答の制限を回避します
Anupam

11

その<p>要素に行の高さを適用すると、行が大きくなります。


4
ええ、確かに、それは私が望むものではありません。
n1313 2009

1
それがあなたの望むものとどのように違うのですか?行間のスペースを増やします。
ヨルク

私のテキストには9つ以上の意味があります。数キロバイトのテキストが3つの<br>で3つのブロックに分割されていると想像してください。
n1313

<br>タグに行の高さを適用すると、強制された改行は折り返された改行よりも大きくなります...
peirix

1
<br/>を使用するのではなく、3つの段落が必要なように聞こえる
Chris Chilvers

7

:before/ :afterCSS2疑似要素をこれまでに試したことがありません。これは主に、IE8でのみサポートされているためです(これはIEブラウザーに関するものです。これが可能な唯一のCSSソリューションである可能性があります。

br:before {
    display: block;
    margin-top: 10px;
    content: "";
}

ここでQuirksModeが


ええ、私は:before {content}; 私も失敗しました。
n1313

どこかにそれを注入し、それは動作するはずです。残念ながら、IE6 / 7では機能しません。
FilipDupanović09年

5

私はあなたが使えるかもしれないと思っていました:

br:after {
    content: ".";
    visibility: hidden;
    display: block;
}

しかし、それはクロムやFirefoxでは機能しませんでした。

他の誰かに起こった場合に備えて、私はそれらをトラブルから救うと言ったと思いました。


5
br {   
    content: "";
    margin: 2em;
    display: block;
    margin-bottom: -20px; 
 }

Firefox、Chrome、Safariで動作します。Explorerでテストしていません。(Windowsタブレットの電源が切れています。)

改行、フォントサイズは、FirefoxとSafariでは動作が異なります。


あなたのCSSのどの部分が問題を解決したかについてもっと具体的に言えますか?これは他の人が答えを理解するのに役立ちます。
フランク・ブライス、2015

私にはかなりうまくいきます、ありがとう!しかし、何らかの情報が不足しています。
ヴィニシウスモラエス

4

興味深いことに、breakタグが次のように完全な形式で記述されている場合:

<br></br>

次に、CSS line-height:145%が機能します。ブレークタグが次のように記述されている場合:

<br> or 
<br/> 

その後、少なくともChrome、IE、Firefoxでは機能しません。おかしい!


4

私にとってうまくいくのは、段落タグの間にこのインラインを追加することです...しかし最善の解決策ではありません

<br style="line-height:32px">

--------編集---------

PC / Macでこの問題に遭遇しました...テキストに新しい行の高さが表示されますが、改行は行われません...いくつかのテストを自分で実行したい場合があります。ごめんなさい!


iOSのUIWebView内でピクセルサイズで垂直サイズを管理するために私は働いた。
Diwann 2013

PC / Macでこの問題に遭遇しました...テキストに新しい行の高さが表示されますが、改行は行われません...いくつかのテストを自分で実行したい場合があります。ごめんなさい!
robinwkurtz 2013

4

そして<hr>、どこかで提案されているようにタグを(誤って)使用すると、タグが終了する<p>ので、その解決策を忘れてください。
もしf.ex. 周囲<p>で何かのスタイルが設定されている場合、そのスタイルは<hr>が挿入された後、コンテンツの残りの部分ではなくなります。


これは質問に対する答えを提供しません。批評したり、著者に説明を求めたりするには、投稿の下にコメントを残します。自分の投稿にはいつでもコメントできます。十分な評判得られれ、どの投稿にもコメントできます。
グリッチの欲望

批判や要求ではありません。提案されているようにapタグ内にhrタグを置くとどうなるかを言おうとしています。また、新人として、関連する投稿にコメントするのに十分な評判がありません。だから私が他にどのようにそのようなコメントをするべきかアドバイスしてください(IMHOは質問に関して非常に関連しています)。
niels 2014年

4

IE、Firefox、Chromeで機能するソリューションを次に示します。アイデアは、br要素のフォントサイズを14pxの本文サイズから18pxに増やし、追加のサイズがテキスト行の下になるように要素を4px下げることです。結果は、brの下に4pxの余分な空白があります。

br 
{ 
font-size: 18px; 
vertical-align: -4px; 
}  

使用vertical-alignするだけでbrタグを操作できるようです。私はこれをIE 11でテストしました

3

2019年9月13日更新:

私が使用<br class=big>私は1つを必要とするとき、特大の改行を作成します。今日まで、私は次のようにスタイルを設定しました:

br.big {line-height:190%;vertical-align:top}

(これvertical-align:topはIEとEdgeでのみ必要でした。)

これは、私が試したすべての主要なブラウザー(Chrome、Firefox、Opera、Brave、PaleMoon、Edge、IE11)で機能しました。

ただし、最近ではChromeベースのブラウザで動作しなくなりました。「大きな」改行が通常のサイズの改行に変わりました。

(いつ彼らがそれを壊したか正確にはわかりません。2019年9月12日の時点で、それは私の古いChromium Portable 55.0.2883.11でも動作しますが、Opera 63.0.3368.71とChrome 76.0.3809.132(両方のWindowsおよびAndroid)。

試行錯誤の末、私は次の代替品で終わりました。これらはすべてのブラウザーの現在のバージョンで機能します。

br.big {display:block; content:""; margin-top:0.5em; line-height:190%; vertical-align:top;}

ノート:

line-height:190% Chromeベースのブラウザの最新バージョンを除くすべてで動作します。

vertical-align:topIEとEdgeを(と組み合わせてline-height:190%)使用し、前の行が部分的に前後になるのではなく、前の行が属する行の後ろに追加のスペースを配置するために必要です。

display:block;content:"";margin-top:0.5em Chrome、Opera、Firefoxでは機能しますが、Edge、IEでは機能しません。

<br>HTMLを編集してもかまわない場合に、タグの後に少し余分な垂直スペースを追加する別の(より簡単な)方法は、次のようなものです。すべてのブラウザで正常に動作します。

<span style="vertical-align:-37%"> </span><br>

(もちろん、必要に応じて「-37%」を調整して、ギャップを大きくしたり小さくしたりできます。)以下は、テーマの他のバリエーションを含むデモページです。

https://burtonsys.com/a_little_extra_vertical_space_for_br_tag.html



2020年5月28日:

デモページを更新しました。ここでは、上記のすべての手法を示します。

https://burtonsys.com/a_little_extra_vertical_space_for_br_tag.html


2

マイケルとヨーダはどちらも正しい。あなたができることは、<p>タグを使用することです。これはブロックタグであり、下マージンを使用して次のブロックをオフセットするため、これと同様のことを実行して間隔を大きくすることができます。

<p>
    A block of text.
</p>
<p>
    Another block
</p>

もう1つの方法は<hr>、間隔の高さを明示的に定義できるblock タグを使用することです。


1
回答ありがとうございます。現在、このレイアウトを変更することはできません。もちろん、可能な場合は、より健全なものに変更しますが、今は申し訳ありません。
n1313 2009

1

<br />のテキストで満たされた行と同じだけのスペースを取り<p>ますが、変更することはできません。より大きくしたい場合は、段落に分割する必要があることを意味するため、otherを追加し<p>ます。できる限り最もセマンティックになることを忘れないでください;)


1

CSSで "block-quote"プロパティを使用することもできます。これは、個々の行に影響を与えないようにするためですが、段落間の区切りまたは「ブロック引用」だけのパラメーターを設定できます。

更新:
私は修正された立場です。「blockquote」は実際にはhtmlプロパティです。作業の前後で<p>や</ p>のように使用します。次に、ブロック引用のパラメーターを次のようにcssで設定できます

blockquote { margin-top: 20px }

お役に立てれば。これは、brのパラメーターの設定に似ており、ブラウザー間で互換性がある場合とそうでない場合があります。


この物件について聞いたのはこれが初めてです。これについて詳しく説明していただけますか?
n1313 2009

私は修正された立場です。「blockquote」は実際にはhtmlプロパティです。作業の前後で<p>および</ p>のように使用します。その後、blockquote {margin-top:20px}などのように、CSSでブロック引用のパラメーターを設定できます
Jonn

1

あなたはBRの高さを調整することができないようですが、display:noneを使用して確実にそれを消すことができます

次の解決策を探しているときにこのページに行きました。

サードパーティの支払いゲートウェイ(Worldpay)では、テンプレートの本文に挿入されるCSSとHTML(スクリプトは許可されていません)を最大10kにして、いくつかのBRやFONTタグなどを使用して、支払いページのみをカスタマイズできます。 。IE7 / 8を強制モードに強制するDTDと相まって、これにより、クロスブラウザーのカスタマイズが非常に困難になります!

BRをオフにすると、状況がより一貫します...


1

これらの方法を使用しますが、クロスブラウザかどうかはわかりません

=================方法1 ==================

br {
    display:none;
}

または

=================方法2 ==================

br {
    display: block;
    margin-bottom: 2px;
    font-size:2px;
    line-height: 2px;
}
br:before {
    display: block;
    margin-top: 2px;
    content: "";
}
br:after {
    content: ".";
    visibility: hidden;
    display: block;
}

または

=================方法3 ==================

br:after { content: "" }
br { content: "" }

display:noneに賛成票を投じます。それが私がやったことです!
ブライアン

1

タグを含むタグでCSS line-height属性を使用してみてください。分離したい場合は、タグを使用できることを覚えておいてください。ただし、分離にはIMO を使用する方がよい場合があります。pbridpdiv


1

他の誰かがすでにこれを言っている場合は申し訳ありませんが、簡単な解決策は、「行の高さ」をいじってみることです。改行を使用するときにスペースが多すぎる場合は、単に行の高さが高すぎるためです。CSSでこれを修正できます(ただし、そのプロパティを使用するすべてに影響することを知っています)、またはインラインスタイルを実行してCSSをオーバーライドできます。


これは質問に対する答えを提供しません。批評したり、作者に説明を求めたりするには、投稿の下にコメントを残します。自分の投稿にはいつでもコメントできます。十分な評判得られれ、どの投稿にもコメントできます。- レビューから
JRodDynamite

同意しません。OPの質問は、改行の高さを調整する方法でした。できません。そのため、目的の効果が得られるように行の高さを調整します。
Daniel Siddall、2015年

1

HTMLをPDFに変換するソリューションを開発し、テーブルセルのテキストを垂直方向に中央揃えにする必要がありましたが、プレーンを入力する以外は何も機能しませんでした <br>

そこで、ボックスの外側で考えて、フォントサイズを(pt単位で)調整することで垂直サイズを変更しました。

<font style="font-size: 4pt"><br></font>

0
<span style="line-height:40px;"><br></span> 

あなたはこれをインラインと各
要素で行う必要がありますが、それはほとんどのブラウザで動作するはずです。各要素でインラインにすると、ほとんどのブラウザーと電子メールで機能するはずです(ただし、ここで説明するには複雑すぎます)。


1
では、例を挙げないのであれば、なぜこれを投稿するのですか?サイトの全体的なアイデアは、あなたがいることである、それを議論します。
ポール

0

これは、spanタグからスタイルの間隔を機能させることができなかった場合に役立ちました。

        <p style='margin-bottom: 5px' >
            <span>I Agree</span>
        </p>
        <span>I Don't Agree</span>

0

使用する <div>

<div>Content 1</div>Content 2

これにより、垂直方向のスペースなしで新しい行が可能になります。

これは

<div>Content 1</div>Content 2


0

<br>タグによって生じたスペースの問題を修正しているため、ここに上陸した人のために、より一般的なレベルで答えます。ピクセルを完璧に近づけるためには、たくさんのリセットを行わなければなりません。

br {
    content: " ";
    display: block;
}

私が対処していた特定の問題については、行の間に特定のスペースが必要でした。上下に余白を入れました。

br {
    content: " ";
    display: block;
    margin: 0.25em 0;
}

0

ソリューションの組み合わせを使用してIE7で動作するようにしましたが、Nigelや他の人が提案したように、主にBrをDIVでラップしました。IDを追加し、at = "server"を実行して、チェックボックスの行からチェックボックスを削除するときにBRを削除できるようにしました。

.narrow {
    display: block;
    margin: 0px;
    line-height: 0px;
    content: " "; 
}
<div class="narrow" run at="server"><br></br></div>

0

2つのbrタグを使用することが、すべてのブラウザで機能する最も簡単なソリューションです。しかし、それは反復的です。

<p>
content
</p>
<br /><br />
<p>
content
</p>
<br /><br />
<p>
content
</p>

0

そのように改行ではなく段落を追加するのはどうですか

bla la la bla bla abla la la bla bla abla la la bla bla a

bla la la bla bla abla la la bla bla abla la la bla bla a

bla la la bla bla abla la la bla bla abla la la bla bla a

次に、そのpの行の高さやパディングなどを指定できます


はい、<br>と<p>の両方に「ビッグ」クラスを定義しました。"<br class=big>"は行間にスペースを追加し、 "<p class = big>"は段落の前にスペースを追加します:‍‍‍‍‍‍ ‍‍ br.big {display:block; コンテンツ:""; margin-top:0.5em; 行の高さ:190%; vertical-align:top;} ‍‍‍‍‍‍ ‍‍ p.big {margin-top:1.5em} ‍‍‍‍‍‍ ‍‍ただし、<p>タグの問題は、メールプログラムによってスタイルが一貫していないことです。段落の区切りを含むメールテキストがメールの返信で「引用」されると、段落間の間隔が大幅に変わることがよくあります。したがって、私はメールで二重改行(Gmailではctrl-enter)を使用する癖があります。
Dave Burton
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.