Bir <br>'nın yüksekliği nasıl değiştirilir?


263

<br>'S ile alt paragraflara bölünmüş metin büyük bir paragraf var :

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

Bu alt paragraflar arasındaki boşluğu genişletmek istiyorum <br>. Bunu yapmanın doğru yolunu kullanmak olduğunu biliyorum <p></p>, ama şu anda bu düzeni değiştiremiyorum, bu yüzden sadece CSS çözümü arıyorum.

Ben ayarı denedim <br>'ın line-heightve heightbirlikte display: block, ben de kısaca Googled ve yığın taşması-ed, ancak herhangi bir çözüm bulamadık. Bu, düzeni değiştirmeden bile mümkün mü?


Biçimlendirmeniz br etiketlerinin yükseklik değerine sahip olduğunu düşünmek için karışıklığa neden olabilir. Aşağıda belirtildiği gibi, bunlar sadece satır sonlarıdır. Kelime işlemcinizde benzer bir şey yapmayı denediniz mi?
Jörg

<br> yüksekliğinin değiştirilmesi anlamsal olarak yanlıştır. <br>, metninize başka bir satır daha eklediğiniz anlamına gelir ve tek paragrafın satır yüksekliği sabit olmalıdır. Bazı metinler ayrılırsa, ayrı bir paragraf olmalıdır.
Robo Robok


1
@JohnHenckel A beri yanıltıcı bit <p>etiketini içeremez <div>etiketleri bu yayını göremez
deseosuho

1
Bazen biçimlendirmek için bize verilen kod üzerinde kontrol sahibi olduğumuz bir şey değildir. Bu zamanlarda kendinize "<p> etiketleri ekleyemiyorum ... belki de ara parça olarak kullanılan <br>ların yüksekliğini değiştirirsem söylemeye başlıyorsunuz.
Brian

Yanıtlar:


275

css:

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

Çözüm muhtemelen tarayıcılar arası uyumlu değildir, ancak en azından bir şeydir. Ayrıca line-heightşunları da ayarlamayı düşünün :

line-height:22px;

Google Chrome için şunları ayarlamayı düşününcontent :

content: " ";

Bunun dışında, bir JavaScript çözümü ile sıkışıp kaldığınızı düşünüyorum.


31
IE7, Opera10, Chrome2'de ÇALIŞMAZ. Firefox'ta, kenar boşluğunu çift boyut oluşturur. Belirtmeniz gerekirmargin-top: 10px;
awe

8
content:" "Bu stile bir özellik ekleyin ve Chrome'da iyi çalışıyor
anushr

8
Bu çözüm Firefox'ta çalışır. Webkit tabanlı tarayıcılar için ekleyebilirsiniz line-height. Sonunda böyle bir şey br { display:block; margin-top:10px; line-height:22px; }.
Cthulhu

2
@awe: margin:10px 0 0Çift boyutlu istemeyenler için daha iyi bir çözüm olurdu .
Kayla

1
Benim için çalışmıyor ... Ayrıca @ huşu kodunu denedim margin-top: 10px;, hala işe yaramadı ....
Cardinal - Monica'yı eski haline

67

İşte doğru çözümdür aslında çapraz tarayıcı desteği vardır:

  br {
        line-height: 150%;
     }

1
Bildiğim kadarıyla IE7 değil.
Serhiy

30
Bu, bir satır kesmesinin yüksekliğini arttırmak için çalışır, ancak onu azaltmaz .
Pluto

2
@htmldrum HTML'yi değiştirme şansınız yoksa sadece CSS olduğunda, bu harika çalışıyor. Teşekkür ederim! Bu değerlendirilmeli ve doğru cevap olarak görülmelidir. Bence.
flaschbier

@Pluto: nigel'in aşağıdaki cevabı, yüksekliği azaltmam için çalışıyor!
Anupam

2
Ne yazık ki, artık Chrome v.76'da çalışmıyor. Edge ve IE için dikey hizalama: top eklemeniz gerekir. Burada bir çözüm gönderdim: stackoverflow.com/a/29674365/562862
Dave Burton

48

Yani, yukarıdaki peeplerin temel olarak benzer bir cevabı var, ama burada çok özlü. Opera, Chrome, Safari ve Firefox'ta çalışıyor, büyük olasılıkla IE de mi?

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

3
Bu. Bu, belirtildiği gibi soruya göre doğrudur. Ayrıca, sayfada yapmam gereken şeyi yapan tek yanıt da buydu.
Xodarap777

İçeriği değiştirene kadar diğer cevapların hiçbiri benim için çalışmadı. Bu doğru cevap, IMO.
Xandor

39

Başka bir yol İK kullanmaktır . Ancak, işte kurnaz kısım, görünmez olmasını sağlayın.

Böylece:

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

HR kullanarak simüle edilmiş daha temiz bir BR molası yapmak için: Btw tüm tarayıcılarda çalışır !!

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

1
Kenar boşluğu eklemek zorunda kaldım: IE8 için 0px
IvanH

34
Bu HTML etiketlerinin korkunç tacizidir, <p></p>kenar boşlukları ile kullanmak daha sonra yok etmek daha iyidir<hr />
Serj Sagan

Bu hile iyidir, ancak daha doğru sonuç almak için kenar boşluğu: 0 ve kenarlık kullanmanız gerekir: 0.
MAChitgarha

25

Gibi bildiğim kadarıyla <br>yok olması bir yüksekliğe, bu sadece bir satır sonu zorlar. Sahip olduğunuz şey, alt paragrafları değil , otomatik sarma olanlara ek olarak bazı satır sonları içeren bir metindir . Satır aralığını değiştirebilirsiniz, ancak bu tüm satırları etkiler.


1
Görünüşe göre gerçekten bir yolu yok. Hatta ile oynamaya çalıştım: before and: after properties, ama ... :(
n1313

1
Bunun çok eski olduğunu biliyorum, ama @Isaac Minogue'un bunu yapmanın geçerli bir yolu var. contentÖzelliği değiştirmek hile yapar.
Xandor

22

Sadece bu problemi yaşadım ve

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

Bu harika çalışıyor ve aynı zamanda @ htmldrum'un cevabının sınırlandırılmasına yaklaşıyor
Anupam

11

bu <p>öğeye çizgi yüksekliği uygulayabilirsiniz , böylece çizgiler büyür.


4
Evet, tabii, ama istediğim bu değil.
n1313

1
Bu, istediğinizden ne şekilde farklı olurdu? Çizgiler arasındaki boşluğu artıracaktır.
Jörg

Metnimde dokuzdan fazla falan var. Üç <br> ile üç bloğa bölünmüş birkaç kilobaytlık metin düşünün.
n1313

Satır yüksekliğini <br>etikete uygularsanız, zorunlu satır sonları sarılı satır sonlarından daha büyük olur ...
peirix

1
Bunun yerine <br/> kullanmak yerine üç paragraf istiyorum fazla gibi Sesler
Chris Chilvers

7

Daha önce :before/ :afterCSS2 sözde öğesini denemedim, çünkü sadece IE8'de destekleniyor (IE tarayıcıları ile ilgili) . Bu olası tek CSS çözümü olabilir:

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

İşte bir olan örnek üzerinde QuirksMode .


Evet, benim için büyük umutlarım vardı: önce {content}; benim de başarısız oldu.
n1313

Bir yere enjekte et, işe yaramalı. Ne yazık ki, IE6 / 7'de çalışmıyor.
Filip Dupanović

5

Kullanabileceğinizi düşündüm:

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

Ancak bu, krom veya firefox'ta işe yaramadı.

Sadece kimsenin başına gelmesi ihtimaline değineceğimi düşündüm ve onlara sıkıntıyı kurtaracağım


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

Firefox, Chrome ve Safari'de çalışır. Explorer'da test etmedim. (Windows tabletin gücü tükendi.)

Satır kesmeleri, yazı tipi boyutu Firefox ve Safari'de farklı çalışır.


CSS'nizin hangi kısmının sorunu çözdüğü konusunda daha spesifik olabilir misiniz? Bu, başkalarının cevabı anlamasına yardımcı olacaktır.
Frank Bryce

Benim için çok iyi çalış, teşekkürler! Ancak bir tür bilgi eksik.
Vinícius Moraes

4

İlginçtir, break etiketi aşağıdaki gibi tam formda yazılırsa:

<br></br>

sonra CSS satır yüksekliği:% 145 çalışır. Kesme etiketi şu şekilde yazıldıysa:

<br> or 
<br/> 

en azından Chrome, IE ve firefox'ta çalışmaz. Tuhaf!


4

Benim için işe yarayan, paragraf etiketleri arasına bu satır içi eklemektir ... ama en iyi çözüm değil.

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

-------- Düzenle ---------

Bu ile PC / Mac ile ilgili sorunlar yaşadım ... Metne yeni satır yüksekliği verir, ancak satır sonunu yapmaz ... Bazı testleri kendiniz yapmak isteyebilirsiniz. Afedersiniz!


ios üzerinde bir UIWebView içindeki piksel düzeyinde dikey boyutu yönetmek için çalıştı.
Diwann

Bu ile PC / Mac ile ilgili sorunlar yaşadım ... Metne yeni satır yüksekliği veriyor, ancak satır sonunu yapmıyor ... Bazı testleri kendiniz yapmak isteyebilirsiniz. Afedersiniz!
robinwkurtz

4

<hr>Etiketi bir yerde önerildiği gibi kullanmanın etiketi sona erdireceğini <p>unutmayın, bu yüzden bu çözümü unutun.
F.ex. çevrede bir şey stilize edilir , yerleştirildikten <p>sonra içeriğin geri kalanı için bu stil gider <hr>.


Bu soruya bir cevap sağlamaz. Bir yazardan eleştiri veya açıklama istemek için gönderilerinin altına bir yorum bırakın - her zaman kendi yayınlarınıza yorum yapabilirsiniz ve yeterli bir üne sahip olduğunuzda herhangi bir yazıya yorum yapabilirsiniz .
Glitch Desire

Eleştiri değil, istek değil. Sadece önerilen bir ap etiketi içine bir hr etiketi koyarsanız ne olacağını söylemeye çalışıyorum. Ve yeni gelen olarak, ilgili gönderi hakkında yorum yapmak için yeterli üne sahip değilim. Bu yüzden lütfen başka bir yorum yapmamı tavsiye edin (bu IMHO'nun soru ile oldukça alakalı).
niels

4

İşte IE, Firefox ve Chrome'da çalışan bir çözüm. Fikir, br öğesinin yazı tipi boyutunu 14px'ten 18px'e kadar olan gövde boyutundan artırmak ve öğeyi 4px kadar düşürmek, böylece ekstra boyut metin satırının altında olmalıdır. Sonuç, br'nin 4 piksel altında ekstra boşluktur.

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

Sadece kullanmak etiketi vertical-alignile hile yapmak gibi görünüyor br. Bunu IE 11'de test ettim.

3

GÜNCELLEME 13 Eylül 2019:

<br class=big>İhtiyacım olduğunda büyük bir satır sonu yapmak için kullanıyorum . Bugüne kadar şöyle şekillendirdim:

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

( vertical-align:topYalnızca IE ve Edge için gerekliydi.)

Bu, denediğim tüm önemli tarayıcılarda çalıştı: Chrome, Firefox, Opera, Brave, PaleMoon, Edge ve IE11.

Ancak, son zamanlarda Chrome tabanlı tarayıcılarda çalışmayı durdurdu : "büyük" satır sonlarım normal boyutlu satır sonlarına dönüştü.

(Tam olarak ne zaman kırdıklarını bilmiyorum. 12 Eylül 2019'dan itibaren hala güncel olmayan Chromium Portable 55.0.2883.11'de çalışıyor, ancak Opera 63.0.3368.71 ve Chrome 76.0.3809.132'de (her iki Windows'da da bozuk) ve Android).)

Bazı deneme yanılma işlemlerinden sonra, tüm bu tarayıcıların geçerli sürümlerinde çalışan aşağıdaki yedekle sonuçlandım:

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

Notlar:

line-height:190% Chrome tabanlı tarayıcıların son sürümleri hariç her şeyde çalışır.

vertical-align:topIE ve Edge için (ile birlikte line-height:190%), kısmen önceki ve kısmen sonra değil, ait olduğu bir önceki çizgiden sonra gelmek için ekstra alan elde etmek için gereklidir.

display:block;content:"";margin-top:0.5em Chrome, Opera ve Firefox'ta çalışır, ancak Edge ve IE'de çalışmaz.

<br>HTML'yi düzenlemeyi düşünmüyorsanız, bir etiketten sonra biraz fazladan dikey boşluk eklemenin alternatif (daha basit) bir yolu , bunun gibi bir şeydir. Tüm tarayıcılarda iyi çalışır:

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

(Tabii ki, daha büyük veya daha küçük bir boşluk için "% -37" yi gerektiği gibi ayarlayabilirsiniz.) Aşağıda, temayla ilgili diğer varyasyonları içeren bir demo sayfası bulunmaktadır:

https://burtonsys.com/a_little_extra_vertical_space_for_br_tag.html



28 Mayıs 2020:

Demo sayfasını güncelledim; şimdi yukarıdaki tekniklerin tümünü gösterir:

https://burtonsys.com/a_little_extra_vertical_space_for_br_tag.html


2

Michael ve yoda haklı. Yapabileceğiniz şey, <p>bir blok etiketi olarak, aşağıdaki bloğu dengelemek için bir alt kenar boşluğu kullanan etiketi kullanmaktır, böylece daha büyük boşluk elde etmek için buna benzer bir şey yapabilirsiniz:

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

Başka bir alternatif, <hr>aralığın yüksekliğini açıkça tanımlayabileceğiniz blok etiketini kullanmaktır .


1
Cevabınız için teşekkür ederim, ancak şu anda bu düzeni değiştiremeyeceğimi söyledim. Tabii ki, mümkün olduğunda daha akılcı bir şeyle değiştireceğim, ama şimdi - üzgünüm.
n1313

1

<br />metin dolu satırı kadar yer kaplar <p>, bunu değiştiremezsiniz. Daha büyük istiyorsanız, paragrafa ayırmak istediğiniz anlamına gelir, bu yüzden başka ekleyin <p>. Mümkün olan en semantik olmayı unutmayın;)


1

CSS'deki "block-quote" özelliğini de kullanabilirsiniz. Bu, tek tek satırlarınızı etkilememekte, ancak yalnızca paragraflar veya "tırnak işaretleri arasında" kesmeler için parametreler ayarlamanıza olanak tanır.

GÜNCELLEME:
Düzeltilmiş duruyorum. "blockquote" aslında bir html özelliğidir. Çalışmanızın çevresinde <p> ve </ p> gibi kullanırsınız. Daha sonra css gibi blok teklifiniz için parametreleri ayarlayabilirsiniz

blockquote { margin-top: 20px }

Bu yardımcı olur umarım. Br üzerindeki parametrelerin ayarlanmasına benzer ve çapraz tarayıcı uyumlu olabilir veya olmayabilir.


Bu özelliği ilk kez duydum. Bunu daha ayrıntılı açıklayabilir misiniz, lütfen?
n1313

Ben düzeltilmiş duruyorum. "blockquote" aslında bir html özelliğidir. Çalışmanızın çevresinde <p> ve </ p> gibi kullanırsınız. Daha sonra css'de blockquote {margin-top: 20px} etc etc gibi blok alıntı için parametreleri ayarlayabilirsiniz
Jonn

1

Bir BR'nin yüksekliğini ayarlayamıyorsunuz, ancak ekranı kullanarak güvenilir bir şekilde yok olmasını sağlayabilirsiniz: yok

Aşağıdakilere çözüm ararken bu sayfaya rastladım:

Üçüncü taraf ödeme ağ geçidinin (Worldpay), yalnızca kendi sayfalarının gövdesine enjekte edilen 10k maksimum CSS ve HTML (komut dosyasına izin verilmez) ile ödeme sayfalarını özelleştirmenize izin verdiği bir durum var ve birkaç BR, FONT etiketi vb. IE7 / 8'i Quirks moduna zorlayan DTD'leriyle birleştiğinde, tarayıcılar arası özelleştirmeyi olabildiğince zorlaştırıyor!

BR'leri kapatmak işleri daha tutarlı hale getirir ...


1

i Bu yöntemleri kullanın, ancak çapraz tarayıcı olup olmadığını bilmiyorum

================= Yöntem 1 ==================

br {
    display:none;
}

VEYA

================= Yöntem 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;
}

VEYA

================= Yöntem 3 ==================

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

ekran için oy verin: hiçbiri. Sonunda bunu yaptım!
Brian

1

CSS kullanmayı deneyin line-heightsizin üzerinde bağladıkları piçeren etiketi bretiketi. Etiketlerinizi izole etmek istiyorsanız yapabileceğinizi idunutmayın p, ancak bir divizolasyon için IMO kullanmak daha iyi olabilir .


1

Birisi zaten bunu söyledi, üzgünüm, ama basit bir çözüm "satır yüksekliği" ile etrafında oyuncak etmektir. Satır sonu kullandığınızda çok fazla alan kaplıyorsanız, bunun nedeni satır yüksekliğinizin çok yüksek ayarlanmış olmasıdır. Bunu CSS'de düzeltebilirsiniz (ancak o özelliği kullanan her şeyi etkileyeceğini bilirsiniz) veya CSS'yi geçersiz kılmak için satır içi bir stil yapabilirsiniz.


Bu soruya bir cevap sağlamaz. Bir yazardan eleştiri veya açıklama istemek için gönderilerinin altına bir yorum bırakın - her zaman kendi yayınlarınıza yorum yapabilirsiniz ve yeterli bir üne sahip olduğunuzda herhangi bir yazıya yorum yapabilirsiniz . - Yorumdan
JRodDynamite

Katılmıyorum. OP sorusu, bir satır sonu yüksekliğinin nasıl ayarlanacağıydı. Yapamazsınız, böylece istenen efekti elde etmek için çizgi yüksekliğini ayarlarsınız.
Daniel Siddall

1

HTML'yi PDF'ye dönüştürmek ve metni tablo hücrelerine dikey olarak ortalamak için bir çözüm geliştirmek zorunda kaldım, ancak düz girişi girmek dışında hiçbir şey işe yaramadı <br>

Yani, kutunun dışında düşünerek, yazı tipi boyutunu (pt cinsinden) ayarlayarak dikey boyutu değiştirdim.

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

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

Bu satır içi ve her
öğede yapmanız gerekir, ancak istenen etkiyi elde etmek için çoğu tarayıcıda çizgi yüksekliğiyle çalışmalıdır. Her öğede satır içi yaparsanız, çoğu tarayıcıda ve e-postada çalışmalıdır (ancak burada tartışmak için çok karmaşıktır).


1
Öyleyse neden örnek vermeyecekseniz neden bunu gönderin? Sitenin Bütün fikir Bunun ne yapmak tartışalım.
Paul

0

Span etiketi çalışmak için stil aralığı alamadım zaman bu benim için hile yaptı:

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

0

kullanım <div>

<div>Content 1</div>Content 2

Bu, herhangi bir dikey boşluk olmadan yeni bir çizgiye izin verir.

Bu olur

<div>Content 1</div>Content 2


0

<br>Etikete bağlı aralıklarla ilgili sorunları çözdüğü için buraya gelen herkes için daha genel bir düzeyde yanıt vermek . Mükemmel piksel yakın almak için bir sürü sıfırlama yapmak zorunda.

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

Ele aldığım özel konu için satırlar arasında belirli bir boşluk olması gerekiyordu. Üst ve alt kenar boşluğu ekledim.

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

0

IE7'de bir çözüm kombinasyonu kullanarak çalışmayı başardım, ancak esas olarak Br'yi DIV'ye Nigel ve diğerlerinin önerdiği gibi sararak. Id eklendi ve = "sunucu" çalıştırın, böylece onay kutusunu satır onay kutusundan kaldırırken BR kaldırabilirsiniz.

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

0

İki br etiketi kullanıyor olabilir, tüm tarayıcılarla çalışan en basit çözümdür. Ama tekrarlayıcı.

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

0

Satır sonu yerine bir paragraf eklemeye ne dersiniz?

bla la la bla bla abla la la bla bla abla la la bla bla bir

bla la la bla bla abla la la bla bla abla la la bla bla bir

bla la la bla bla abla la la bla bla abla la la bla bla bir

Ardından, satır yüksekliğini veya dolgusunu veya bunun için herhangi bir şeyi belirleyebilirsiniz.


Evet, hem <br> hem de <p> için "büyük" sınıfı tanımladım. "<br class=big>" satırlar arasına boşluk ekler ve "<p class = big>" paragraftan önce boşluk ekler: ‍‍‍‍‍‍ ‍‍ br.big {display: block; İçerik: ""; kenar üstü: 0.5em; satır yüksekliği: 190%; vertical-align: top;} ‍‍‍‍‍‍ ‍ p.big {margin-top: 1.5em} ‍‍‍‍‍‍ ‍‍ Ancak <p> etiketi ile ilgili bir sorun, e-posta programları tarafından tutarsız bir şekilde biçimlendirilmesidir. Paragraf kesmeleri içeren e-posta metni e-posta yanıtlarında "tırnak içine alındığında", paragraflar arasındaki boşluk genellikle büyük ölçüde değişir. Bu yüzden, e-postalarda iki satır sonu (ctrl-enter gmail) kullanma alışkanlığım var.
Dave Burton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.