HTML + CSS: Bagaimana cara memaksa konten div untuk tetap dalam satu baris?

258

Saya memiliki teks panjang di dalam divdengan didefinisikanwidth :

HTML:

<div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    border: 1px solid black;
    width: 70px;
}

Bagaimana saya bisa memaksa string untuk tetap dalam satu baris (yaitu harus dipotong di tengah "Overflow")?

Saya mencoba menggunakan overflow: hidden, tetapi tidak membantu.

Misha Moroshko
sumber
12
white-space: nowrapletakkan ini di tag gaya Anda.
Moshii

Jawaban:

523

Coba ini:

div {
    border: 1px solid black;
    width: 70px;
    overflow: hidden;
    white-space: nowrap;
}
Bazzz
sumber
71

Gunakan white-space:nowrapdanoverflow:hidden

http://jsfiddle.net/NXchy/8/

anothershrubery
sumber
34
Tambahkan text-overflow:ellipsis;ke atas untuk tampilan yang lebih baik.
tj-reses
dapatkah ini dicapai tanpa css?
nilon
51

dalam penggunaan css Anda white-space:nowrap;

Rob Agar
sumber
14

Kode HTML Anda: <div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    width: 100px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

Sekarang hasilnya harus:

Stack Overf ...
Bozlur Rahman
sumber
12

Semuanya melompat untuk yang ini !!! Saya juga membuat biola:

http://jsfiddle.net/audetwebdesign/kh4aR/

RobAgar punya poin untuk menunjukkan white-space:nowrapterlebih dahulu.

Beberapa hal di sini, Anda perlu overflow: hiddenjika Anda tidak ingin melihat karakter tambahan mencuat ke tata letak Anda.

Juga, seperti yang disebutkan, Anda dapat menggunakan white-space: pre(lihat EnderMB) dengan mengingat bahwa pretidak akan menciutkan ruang putih sedangkan white-space: nowrapakan.

Marc Audet
sumber
4

Cobalah ini. Ini menggunakan predaripada nowrapseperti yang saya asumsikan Anda ingin ini berjalan mirip <pre>tetapi keduanya akan bekerja dengan baik:

div {
    border: 1px solid black;
    max-width: 70px;
    white-space:pre;
}

http://jsfiddle.net/NXchy/11/

Mike B
sumber
4

Saya melompat ke sini mencari hal yang sama, tetapi tidak ada yang berhasil untuk saya.

Ada contoh di mana terlepas dari apa yang Anda lakukan, dan tergantung pada sistem (Oracle Designer: Oracle 11g - PL / SQL), divs akan selalu pergi ke baris berikutnya, dalam hal ini Anda harus menggunakan tag rentang sebagai gantinya.

Ini berhasil bagi saya.

<span float: left; white-space: nowrap; overflow: hidden; onmouseover="rollOverImageSectionFiveThreeOne(this)">
    <input type="radio" id="radio4" name="p_verify_type" value="SomeValue"  />
</span> 
Just Your Text || 
<span id="headerFiveThreeOneHelpText" float: left; white-space: nowrap; overflow: hidden;></span>
Dököll
sumber
Bantuan besar dalam hal ini, ini yang berhasil untuk saya, mungkin menghabiskan 30 menit untuk ini, lol. Anehnya, saya tidak menggunakan apa pun yang Anda sebutkan, css, javascript, bootstrap, dan beberapa css khusus.
edencorbin
3

tambahkan ini ke div Anda

white-space: nowrap;

http://jsfiddle.net/NXchy/1/

stephenmurdoch
sumber
1
Anda dapat menambahkan: overflow: otomatis untuk menampilkan scrollbar horizontal
Sarah West
1
div {
    display: flex;
    flex-direction: row; 
}

adalah solusi yang berhasil untuk saya. Dalam beberapa kasus dengan div-lists, ini diperlukan.

beberapa nilai arah alternatif adalah row-reverse, column, column-reverse, unset, initial, inherit yang melakukan hal-hal yang Anda harapkan

Pingger Shikkoken
sumber
0

Coba atur ketinggian agar blok tidak dapat tumbuh untuk mengakomodasi teks Anda, dan simpan overflow: hiddenparameternya

EDIT: Berikut adalah contoh dari apa yang Anda sukai jika Anda perlu menampilkan 2 baris tinggi:

div {
    border: 1px solid black;
    width: 70px;
    height: 2.2em;
    overflow: hidden;
}
Wouter Simons
sumber
Dalam kasus Anda, opsi nowrap mungkin lebih baik, tetapi saya meninggalkan jawaban saya karena saya kadang-kadang menemukan diri saya membutuhkan blok yang mungkin memiliki beberapa baris pembungkus sampai meluap seperti ini: jsfiddle.net/NXchy/7 (mengubah tautan dari versi Stephenmurdoch , terima kasih!)
Wouter Simons
Tidak perlu untuk ini, apa yang terjadi jika pengguna ingin memperbesar ukuran teks menggunakan ctrl- +? Menjaga ketinggian tetap fleksibel lebih baik.
Marc Audet
Jika pengguna mengubah ukuran teks dengan ctrl- + seharusnya berfungsi: jsfiddle.net/kpKW3
Wouter Simons
Menggunakan em's di heightmembuatnya tetap fleksibel, titik kunci diilustrasikan dengan baik di sini dalam contoh Anda.
Marc Audet