Bagaimana cara mengubah ketinggian Situs?


263

Saya memiliki paragraf besar teks yang dibagi menjadi beberapa sub-paragraf dengan <br>:

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

Saya ingin memperlebar jarak antara sub-ayat ini, seperti ada dua <br>atau lebih. Saya tahu bahwa cara yang tepat untuk melakukan ini adalah menggunakan <p></p>, tetapi saat ini saya tidak dapat mengubah tata letak ini, jadi saya mencari solusi khusus CSS.

Saya sudah mencoba pengaturan <br>'s line-heightdan heightdengan display: block, saya juga Googled dan Stack Overflow-ed sebentar, tetapi tidak menemukan solusi apapun. Apakah ini bahkan mungkin tanpa mengubah tata letak?


Format Anda dapat menambah kebingungan untuk berpikir bahwa tag memiliki nilai tinggi. Seperti yang ditunjukkan di bawah, mereka hanya istirahat baris. Sudahkah Anda mencoba melakukan hal serupa di pengolah kata Anda?
Jorg

Mengubah ketinggian Situs secara semantik salah. Situs berarti Anda cukup meletakkan baris lain ke teks Anda dan satu paragraf harus memiliki tinggi baris tetap. Jika beberapa teks dipisahkan, itu harus paragraf terpisah.
Robo Robok


1
@JohnHenckel Agak menyesatkan karena <p>tag tidak boleh berisi <div>tag lihat posting ini
deseosuho

1
Terkadang kode yang diberikan kepada kami untuk diformat bukanlah sesuatu yang kami kontrol. Di saat inilah Anda mulai berkata kepada diri sendiri "Saya tidak bisa menambahkan tag <p> ... mungkin jika saya hanya akan mengubah ketinggian Situs <br> yang digunakan sebagai pengatur jarak.
Brian

Jawaban:


275

Css:

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

Solusinya mungkin tidak kompatibel lintas-browser, tetapi setidaknya ini adalah sesuatu. Pertimbangkan juga pengaturan line-height:

line-height:22px;

Untuk Google Chrome, pertimbangkan pengaturan content:

content: " ";

Selain itu, saya pikir Anda terjebak dengan solusi JavaScript.


31
Ini TIDAK berfungsi di: IE7, Opera10, Chrome2. Di Firefox, ini menciptakan margin ukuran ganda. Anda harus menentukanmargin-top: 10px;
awe

8
Tambahkan content:" "atribut ke gaya itu dan berfungsi dengan baik di Chrome
anushr

8
Solusi ini berfungsi di Firefox. Untuk browser berbasis webkit, Anda dapat menambahkan line-height. Pada akhirnya itu seperti br { display:block; margin-top:10px; line-height:22px; }.
Cthulhu

2
@awe: Solusi yang lebih baik adalah margin:10px 0 0, bagi mereka yang tidak menginginkannya berukuran dua kali lipat.
Kayla

1
Tidak bekerja untuk saya ... Saya juga mencoba kode @ awe margin-top: 10px;, masih tidak berhasil ....
Cardinal - Reinstate Monica

67

Berikut adalah solusi yang benar yang sebenarnya memiliki dukungan lintas-browser:

  br {
        line-height: 150%;
     }

1
Tidak IE7 sejauh yang saya tahu.
Serhiy

30
Ini berfungsi untuk meningkatkan ketinggian garis putus-putus, tetapi tidak menguranginya .
Pluto

2
@htmldrum Ketika Anda tidak memiliki kesempatan untuk mengubah HTML tetapi hanya CSS, ini bekerja dengan baik. Terima kasih! Ini harus diunggulkan dan dianggap sebagai jawaban yang benar. Kupikir.
flaschbier

@Pluto: jawaban nigel di bawah ini berfungsi agar saya bisa mengurangi ketinggian!
Anupam

2
Sayangnya, tidak lagi berfungsi di Chrome v.76. Untuk Edge dan IE Anda harus menambahkan vertical-align: top. Saya memposting solusi di sini: stackoverflow.com/a/29674365/562862
Dave Burton

48

Jadi, intip di atas pada dasarnya mendapat jawaban yang sama, tetapi di sini sangat ringkas. Bekerja di Opera, Chrome, Safari & Firefox, kemungkinan besar IE juga?

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

3
Ini. Ini benar, relatif terhadap pertanyaan seperti yang dinyatakan. Dan itu juga satu-satunya jawaban pada halaman yang benar-benar melakukan apa yang saya butuhkan.
Xodarap777

Tidak ada jawaban lain yang berfungsi untuk saya sampai saya memodifikasi konten. Ini jawaban yang benar, IMO.
Xandor

39

Cara lain adalah dengan menggunakan SDM . Tapi, dan inilah bagian yang licik, membuatnya tidak terlihat.

Jadi:

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

Untuk membuat BR break yang bersih disimulasikan menggunakan HR: Btw berfungsi di semua browser !!

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

1
Saya harus menambahkan margin: 0px untuk IE8
IvanH

34
Itu adalah penyalahgunaan tag HTML yang menghebohkan, lebih baik menggunakan <p></p>margin dengan lalu hancurkan sebuah<hr />
Serj Sagan

Trik ini bagus, tetapi untuk mendapatkan hasil yang lebih akurat, Anda harus menggunakan margin: 0 dan border: 0.
MAChitgarha

25

Sejauh yang saya tahu <br>tidak memiliki ketinggian, itu hanya memaksa garis putus. Apa yang Anda miliki adalah teks dengan beberapa jeda baris sebagai tambahan dari yang dibungkus otomatis, bukan sub - paragraf. Anda dapat mengubah spasi baris, tetapi itu akan memengaruhi semua baris.


1
Tampaknya benar-benar tidak mungkin. Saya bahkan sudah mencoba bermain dengan: sebelum dan: setelah properti, tapi ... :(
n1313

1
Saya tahu ini sangat tua, tetapi @Isaac Minogue memiliki cara yang valid untuk melakukan ini. Memodifikasi contentproperti akan membantu.
Xandor

22

Saya baru saja mengalami masalah ini, dan saya mengatasinya dengan menggunakan

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

Ini berfungsi dengan baik dan juga mengatasi keterbatasan jawaban @ htmldrum
Anupam

11

Anda bisa menerapkan tinggi garis pada <p>elemen itu, sehingga garis menjadi lebih besar.


4
Ya, tentu, tapi bukan itu yang saya inginkan.
n1313

1
Dengan cara apa hal itu berbeda dari yang Anda inginkan? Ini akan menambah ruang di antara garis.
Jorg

Saya memiliki sedikit lebih dari sembilan bla dalam teks saya. Bayangkan beberapa kilobyte teks, dibagi menjadi tiga blok dengan tiga <br>.
n1313

Jika Anda menerapkan line-height ke <br>tag, maka jeda baris dipaksa akan lebih besar dari jeda baris dibungkus ...
peirix

1
Kedengarannya lebih seperti Anda menginginkan tiga paragraf daripada menggunakan <br/>
Chris Chilvers

7

Saya belum pernah mencoba elemen pseudo :before/ :afterCSS2 sebelumnya, terutama karena itu hanya didukung di IE8 (ini tentang browser IE) . Ini bisa menjadi satu-satunya solusi CSS yang mungkin:

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

Berikut ini adalah contoh di QuirksMode .


Ya, saya punya harapan besar untuk: sebelum {content}; juga, tetapi itu gagal saya.
n1313

Suntikkan di suatu tempat, itu harus bekerja. Sayangnya, itu tidak berfungsi di IE6 / 7.
Filip Dupanović

5

Saya punya pemikiran bahwa Anda mungkin dapat menggunakan:

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

Tapi itu tidak berhasil pada chrome atau firefox.

Hanya berpikir saya akan menyebutkan bahwa jika terjadi pada orang lain dan saya akan menyelamatkan mereka dari masalah.


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

Bekerja di Firefox, Chrome & Safari. Belum diuji di Explorer. (Windows-tablet kehabisan daya.)

Line-break, ukuran font berfungsi berbeda di Firefox & Safari.


Bisakah Anda lebih spesifik tentang bagian css Anda yang menyelesaikan masalah? Ini akan membantu orang lain memahami jawabannya.
Frank Bryce

Bekerja dengan baik untukku, terima kasih! Tetapi kurang semacam informasi.
Vinícius Moraes

4

Menariknya, jika tag break ditulis dalam bentuk penuh sebagai berikut:

<br></br>

lalu ketinggian garis CSS: 145% berfungsi. Jika tag istirahat dituliskan sebagai:

<br> or 
<br/> 

maka itu tidak berfungsi, setidaknya di Chrome, IE dan firefox. Aneh!


4

Apa yang berhasil bagi saya adalah menambahkan inline ini antara tag paragraf ... bukan solusi terbaik.

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

-------- Edit ---------

Saya mengalami masalah dengan PC / Mac dengan ini ... Ini memberi teks ketinggian baris baru tetapi tidak melakukan break-line ... Anda mungkin ingin melakukan beberapa tes sendiri. Maaf!


bekerja untuk saya mengelola ukuran vertikal pada tingkat piksel di dalam UIWebView di ios.
Diwann

Saya mengalami masalah dengan PC / Mac dengan ini ... Ini memberi teks ketinggian baris baru tetapi tidak melakukan break-line ... Anda mungkin ingin melakukan beberapa tes sendiri. Maaf!
robinwkurtz

4

Dan ingat bahwa (salah) menggunakan <hr>tag seperti yang disarankan di suatu tempat, akan mengakhiri <p>tag, jadi lupakan solusi itu.
Jika f.ex. sesuatu ditata di sekitarnya <p>, gaya itu hilang untuk sisa konten setelah <hr>dimasukkan.


Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka - Anda selalu dapat mengomentari posting Anda sendiri, dan setelah Anda memiliki reputasi yang cukup, Anda akan dapat mengomentari posting apa pun .
Glitch Desire

Bukan kritik dan bukan permintaan. Hanya mencoba mengatakan apa yang akan terjadi jika Anda memasukkan tag jam di dalam tag ap seperti yang disarankan. Dan sebagai pendatang baru saya tidak punya cukup reputasi untuk mengomentari posting yang relevan. Jadi tolong saran bagaimana lagi saya harus membuat komentar seperti itu (yang IMHO sangat relevan berkaitan dengan pertanyaan itu).
niels

4

Berikut adalah solusi yang berfungsi di IE, Firefox, dan Chrome. Idenya adalah untuk meningkatkan ukuran font elemen br dari ukuran tubuh 14px menjadi 18px, dan menurunkan elemen dengan 4px sehingga ukuran ekstra di bawah garis teks. Hasilnya adalah 4px spasi ekstra di bawah br.

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

Hanya menggunakan vertical-aligntampaknya melakukan trik dengan brtag tersebut. Saya menguji ini pada IE 11.

3

DIPERBARUI 13 Sep 2019:

Saya menggunakan <br class=big>untuk membuat jeda baris kebesaran, ketika saya membutuhkannya. Sampai hari ini, saya bergaya seperti ini:

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

(Itu vertical-align:tophanya diperlukan untuk IE dan Edge.)

Itu bekerja di semua browser utama yang saya coba: Chrome, Firefox, Opera, Brave, PaleMoon, Edge, dan IE11.

Namun, baru-baru ini berhenti bekerja di browser berbasis Chrome : jeda baris "besar" saya berubah menjadi jeda baris berukuran normal.

(Saya tidak tahu persis kapan mereka memecahkannya. Pada 12 September 2019 masih berfungsi di Chromium Portable 55.0.2883.11 saya yang sudah ketinggalan zaman, tetapi rusak di Opera 63.0.3368.71 dan Chrome 76.0.3809.132 (keduanya Windows) dan Android).)

Setelah beberapa percobaan dan kesalahan, saya berakhir dengan pengganti berikut, yang berfungsi di versi saat ini dari semua browser tersebut:

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

Catatan:

line-height:190% berfungsi dalam segala hal kecuali versi terbaru dari browser berbasis Chrome.

vertical-align:topdiperlukan untuk IE dan Edge (dalam kombinasi dengan line-height:190%), untuk mendapatkan ruang ekstra untuk datang setelah garis sebelumnya, di mana ia berada, daripada sebagian sebelum dan sebagian sesudahnya.

display:block;content:"";margin-top:0.5em berfungsi di Chrome, Opera & Firefox, tetapi bukan Edge & IE.

Cara alternatif (lebih sederhana) untuk menambahkan sedikit ruang vertikal tambahan setelah <br>tag, jika Anda tidak keberatan mengedit HTML, adalah dengan sesuatu seperti ini. Ini berfungsi dengan baik di semua browser:

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

(Anda tentu saja dapat menyesuaikan "-37%" sesuai kebutuhan, untuk celah yang lebih besar atau lebih kecil.) Berikut ini adalah halaman demo yang menyertakan beberapa variasi lain pada tema:

https://burtonsys.com/a_little_extra_vertical_space_for_br_tag.html



28 Mei 2020:

Saya telah memperbarui halaman demo; sekarang menunjukkan semua teknik di atas:

https://burtonsys.com/a_little_extra_vertical_space_for_br_tag.html


2

Michael dan yoda keduanya benar. Yang dapat Anda lakukan adalah menggunakan <p>tag, yang, sebagai tag blok, menggunakan margin bawah untuk mengimbangi blok berikut, sehingga Anda dapat melakukan sesuatu yang mirip dengan ini untuk mendapatkan jarak yang lebih besar:

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

Alternatif lain adalah dengan menggunakan <hr>tag blok , yang dengannya Anda dapat secara eksplisit menentukan ketinggian spasi.


1
Terima kasih atas jawaban Anda, tetapi saya telah menyatakan bahwa saya tidak dapat mengubah tata letak ini sekarang. Tentu saja, saya akan mengubahnya menjadi sesuatu yang lebih waras ketika itu mungkin, tetapi sekarang - maaf.
n1313

1

<br />akan mengambil ruang sebanyak baris diisi teks Anda <p>, Anda tidak dapat mengubahnya. Jika Anda ingin yang lebih besar, itu berarti Anda ingin memisahkan ke dalam paragraf, jadi tambahkan yang lain <p>. Jangan lupa menjadi yang paling semantik yang Anda bisa;)


1

Anda juga dapat menggunakan properti "blok-kutipan" di CSS. Itu akan membuatnya jadi tidak memengaruhi baris individual Anda, tetapi memungkinkan Anda untuk mengatur parameter hanya jeda antara paragraf atau "blokir kutipan".

UPDATE:
Saya berdiri dikoreksi. "blockquote" sebenarnya adalah properti html. Anda menggunakannya seperti <p> ​​dan </ p> di sekitar pekerjaan Anda. Anda kemudian dapat mengatur parameter untuk kutipan blok Anda dalam css seperti

blockquote { margin-top: 20px }

Semoga ini membantu. Ini mirip dengan pengaturan parameter pada br dan mungkin atau mungkin tidak kompatibel lintas browser.


Ini adalah pertama kalinya saya mendengar tentang properti ini. Bisakah Anda menjelaskan ini dengan lebih detail?
n1313

Saya berdiri dikoreksi. "blockquote" sebenarnya adalah properti html. Anda menggunakannya seperti <p> ​​dan </ p> di sekitar pekerjaan Anda. Anda kemudian dapat mengatur parameter untuk kutipan blok Anda di css seperti blockquote {margin-top: 20px} dll dll dll
Jonn

1

Anda tampaknya tidak dapat menyesuaikan ketinggian BR, tetapi Anda dapat membuatnya menghilang dengan andal menggunakan tampilan: tidak ada

Datang di halaman ini saat mencari solusi untuk hal berikut:

Saya memiliki situasi di mana gateway pembayaran pihak ke-3 (Worldpay) hanya memungkinkan Anda menyesuaikan halaman pembayaran mereka dengan maksimum 10 ribu CSS dan HTML (skrip tidak diizinkan) yang disuntikkan ke tubuh templat mereka, dan setelah beberapa BR, tag FONT dll. Ditambah dengan DTD mereka yang memaksa IE7 / 8 ke mode Quirks, ini membuat penyesuaian lintas-browser sekeras yang didapat!

Mematikan BR membuat segalanya lebih konsisten ...


1

saya menggunakan metode ini, tetapi saya tidak tahu apakah cross-browser

================= Metode 1 ==================

br {
    display:none;
}

ATAU

================= Metode 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;
}

ATAU

================= Metode 3 =================

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

pilih untuk ditampilkan: tidak ada. itulah yang akhirnya saya lakukan!
Brian

1

Coba gunakan line-heightatribut CSS pada ptag Anda yang berisi brtag. Ingat Anda dapat idAnda ptag jika Anda ingin mengisolasi, meskipun mungkin lebih baik menggunakan divuntuk isolasi, IMO.


1

Maaf jika orang lain sudah mengatakan ini, tetapi solusi sederhananya adalah bermain-main dengan "garis-tinggi" Anda. Jika Anda mendapatkan terlalu banyak ruang saat menggunakan penghentian garis, itu hanya karena Anda mengatur ketinggian garis terlalu tinggi. Anda dapat memperbaikinya dalam CSS (tetapi tahu itu akan mempengaruhi semua yang menggunakan properti itu) atau Anda bisa melakukan gaya inline untuk mengganti CSS.


Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka - Anda selalu dapat mengomentari posting Anda sendiri, dan setelah Anda memiliki reputasi yang cukup, Anda akan dapat mengomentari posting apa pun . - Dari Ulasan
JRodDynamite

Saya tidak setuju. Pertanyaan OPs adalah bagaimana untuk menyesuaikan ketinggian garis putus-putus. Anda tidak bisa, jadi Anda menyesuaikan ketinggian garis untuk mencapai efek yang diinginkan.
Daniel Siddall

1

Saya harus mengembangkan solusi untuk mengonversi HTML ke PDF, dan memusatkan teks pada sel tabel secara vertikal, tetapi tidak ada yang berhasil selain memasukkan teks biasa <br>

Jadi, berpikir di luar kotak, saya telah mengubah ukuran vertikal dengan menyesuaikan ukuran font (dalam pt).

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

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

Anda harus melakukan inline ini dan pada setiap
elemen tetapi itu harus bekerja pada sebagian besar browser Fiddle dengan ketinggian garis untuk mendapatkan efek yang diinginkan. Jika Anda membuatnya sejajar di setiap elemen, itu harus bekerja di sebagian besar browser dan email (tapi ini terlalu rumit untuk dibahas di sini).


1
Jadi mengapa memposting ini jika Anda tidak akan memberikan contoh? Seluruh ide dari situs ini adalah bahwa Anda lakukan membahasnya.
Paul

0

Ini berguna bagi saya ketika saya tidak bisa mendapatkan penspasian gaya untuk bekerja dari tag rentang:

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

0

Menggunakan <div>

<div>Content 1</div>Content 2

Ini memungkinkan untuk baris baru tanpa ruang vertikal.

Ini menjadi

<div>Content 1</div>Content 2


0

Menjawab pada tingkat yang lebih umum bagi siapa saja yang mendarat di sini karena mereka memperbaiki masalah dalam jarak yang disebabkan oleh <br>tag. Saya harus melakukan banyak reset untuk mendapatkan pixel yang mendekati sempurna.

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

Untuk masalah spesifik yang saya bahas, saya harus memiliki ruang khusus di antara garis-garis tersebut. Saya menambahkan margin ke atas dan bawah.

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

0

Saya membuatnya bekerja di IE7 dengan menggunakan kombo solusi, tetapi terutama membungkus Br di DIV seperti yang disarankan Nigel dan yang lainnya. Menambahkan Id dan jalankan di = "server" sehingga saya bisa menghapus BR ketika menghapus kotak centang dari deretan kotak centang.

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

0

Mungkin menggunakan dua tag br adalah solusi paling sederhana yang berfungsi dengan semua browser. Tapi ini berulang.

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

0

Bagaimana kalau hanya menambahkan paragraf alih-alih dari jeda baris seperti itu

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

Kemudian Anda dapat menentukan ketinggian baris atau padding atau apa pun untuk hal itu


Ya, saya mendefinisikan kelas "besar" untuk Situs dan <p>. "<br class=big>" menambahkan spasi di antara baris, dan "<p class = big>" menambahkan spasi sebelum paragraf: ‍‍‍‍‍‍ ‍‍ br.big {display: block; kandungan:""; margin-top: 0,5em; garis-tinggi: 190%; vertical-align: top;} ‍‍‍‍‍‍ ‍‍ p.big {margin-top: 1.5em} ‍‍‍‍‍‍ ‍‍ Tetapi masalah dengan tag <p> adalah bahwa tag itu ditata tidak konsisten oleh program email. Ketika teks email yang berisi istirahat paragraf "dikutip" dalam balasan email, jarak antar paragraf sering berubah secara drastis. Jadi saya terbiasa menggunakan jeda baris ganda (ctrl-enter in gmail), dalam email.
Dave Burton
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.