HTML'de metni nasıl sararsınız?


185

(Diyelim ) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagenişliğini aşan metinler nasıl sarılabilir?div200px

CSS, jQuery gibi her türlü çözüme açıkım.

Yanıtlar:


240

Bunu dene:

div {
    width: 200px;
    word-wrap: break-word;
}

1
Yanlış mı yoksa kelime kaydırma CSS3'e uygun mu?
Gab Royer

13
CSS3, ancak IE5.5 -> 9 dahil olmak üzere neredeyse tüm ana tarayıcılarda çalışıyor - caniuse.com/#search=word-wrap
Jon Hadley

32
Ne zaman word-wrap: break-word; çalışmıyor word-break deneyin: break-all; / * bu bir katil * /
redochka

@redochka Ama word-break: break-all;normal metinde kullandığınızda , ortadaki sözcükleri kırar, bu çirkin ... Her iki davranışın bir karışımı olamaz mı?
pawamoy

5
Önemli: Öyle word-break: break-allve değil word-wrap: break-all.
Yapması

58

Bootstrap 3'te, beyaz boşluğun 'nowrap' olarak ayarlanmadığından emin olun.

div {
  width: 200px;
  word-break: break-all;
  white-space: normal;
}

Harika. Bir Twitter Bootstrap 3 panel gövdesinde word-break: break-all kullanmayı denedim ama hiç çalışmadı. Beyaz boşluk eklemek: düzeltme normaldi.
coolboyjules

5
Güzel, white-space: normal;işe yaramadan önce de ihtiyacım vardı.
radbyx

56

Bunun gibi yumuşak bir kısa çizgi kullanabilirsiniz:

aaaaaaaaaaaaaaa­aaaaaaaaaaaaaaa

Bu şu şekilde görünecektir:

aaaaaaaaaaaaaaa-
aaaaaaaaaaaaaaa

içeren kutu yeterince büyük değilse veya

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Öyleyse.


18
Ama nereye koyacağınızı nasıl bileceksiniz ­?
Kostas

Bunları bölünebilecekleri uzun sözlere koydunuz. Hatta bu bilgileri uygun bir sözlükten otomatik olarak alabilirsiniz.
Kim Stebel

4
Peki örnekteki gibi anlamsızlığa ne dersiniz? O çevirmek uygun mudur aaaaaa...aaaaaiçine a­a­a­a­a­a­a...a­a­a­a?
Kostas

19
Tam aradığım şey. Ben ;-)
w00t

3
kaydırılacak sözcük bir aşırı.long.java.package.name veya birçok noktalı benzer bir dize ise bu iyi çalışır. sonra & utangaç ekleyebilirsiniz; her noktadan sonra.
dokaspar

28
   div {
    // set a width
    word-wrap: break-word
}

' word-wrap' Çözümü yalnızca IE'de ve tarayıcılarda desteklenir CSS3.

En iyi çapraz tarayıcı çözümü, uzun dizeleri bulmak ve düzenli aralıklarla içine yerleştirmek için sunucu tarafı dilini (php veya ne olursa olsun) html varlık kullanmaktır ​ Bu varlık uzun kelimeleri güzelce kırar ve tüm tarayıcılarda çalışır.

Örneğin

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa​aaaaaaaaaaaaaaaaaaaaaaaaaaaaa

8
ama sonra metni kopyalayıp bir yere yapıştırmak çalıştığınızda orta rastgele Unicode karakter olacak "düzenli aralıklarla html varlık # 8203 yılında içlerinde yer"
user102008

9

Kelimede boşluk yoksa (uzun bir URL gibi) IE, Firefox, chrome, safari ve opera üzerinde çalışan tek kişi:

div{
    width: 200px;  
    word-break: break-all;
}

Bunu kurşun geçirmez buldum.


9

Bu benim için çalıştı

word-wrap: normal;
word-break: break-all;
white-space: normal;
display: block;
height: auto;
margin: 3px auto;
line-height: 1.4;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;

6

Başka bir seçenek de kullanıyor:

div
{
   white-space: pre-line;
}

Bu, tüm div öğelerinizi CSS1'i destekleyen tüm tarayıcılarda ayarlayacaktır (IE 8'e kadar yaygın olarak kullanılan tüm tarayıcılar)


Eğer bir varsa <pre>elemanı kelime kaydırmayı, bu işler ve olmasını istediğiniz word-breakveya word-wrapyoktur.
Pluto

4

Çapraz Tarayıcı

.wrap
{
    white-space: pre-wrap; /* css-3 */    
    white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
    white-space: -pre-wrap; /* Opera 4-6 */    
    white-space: -o-pre-wrap; /* Opera 7 */    
    word-wrap: break-word; /* Internet Explorer 5.5+ */
}

2

Bu CSS'yi paragrafa ekleyin.

style="width:420px; 
min-height:15px; 
height:auto!important; 
color:#666; padding: 1%; 
font-size: 14px; 
font-weight: normal;
word-wrap: break-word; 
text-align: left" 

2
Bir text-overflow:ellipsissonraki adamı seviyorum , ama bu soruya doğru bir cevap değil. Kelime sarmayı arıyor, taşmayı kesmiyor.
Spudley

1

CSS Hilelerinden Örnek :

div {
    -ms-word-break: break-all;

    /* Be VERY careful with this, breaks normal words wh_erever */
    word-break: break-all;

    /* Non standard for webkit */
    word-break: break-word;

    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    hyphens: auto;
}

Daha fazla örnek burada .


0

Benim için çalışan bir sunucu tarafı çözümü: $message = wordwrap($message, 50, "<br>", true);nerede $messageparçalanacak kelime / karakter içeren bir dize değişkeni. 50, herhangi bir segmentin maksimum uzunluğudur ve "<br>"her (50) karakterde eklemek istediğiniz metindir.


4
Karakter genişliği, gerekli maksimum 200 pikselden 50 kat fazla ise bu çözüm çalışmaz. Sadece tarayıcınızın yakınlaştırma işlevini kullanın ve sonunda kırıldığını göreceksiniz ...
dokaspar

0

Bunu dene

div{
  display: block;
  display: -webkit-box;
  height: 20px;
  margin: 3px auto;
  font-size: 14px;
  line-height: 1.4;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

özellik metin taşması: üç nokta ekleme ... ve çizgi-kelepçe satır sayısını gösterir.


0

HTML gövdesinde şunları deneyin:

<table>
    <tr>
        <td>
            <div style="word-wrap: break-word; width: 800px">
                Hello world, how are you? More text here to see if it wraps after a long while of writing and it does on Firefox but I have not tested it on Chrome yet. It also works wonders if you have a medium to long paragraph. Just avoid writing in the CSS file that the words have to break-all, that's a small tip.
            </div>
        </td>
    </tr>
</table>

CSS gövdesinde şunları deneyin:

background-size: auto;

table-layout: fixed;


0

Bootstrap kullandım. Html kodum benziyor ..

<div class="container mt-3" style="width: 100%;">
  <div class="row">
    <div class="col-sm-12 wrap-text">
      <h6>
        text content
      </h6>
    </div>
  </div>
</div>

CSS

.wrap-text {
     text-align:justify;
}

Bootstrap text-justifysınıf var, bu yüzden kullanabilirsiniz yerine.wrap-text
barbsan



-2

word-wrap:break-wordGerekli genişlikle birlikte özelliği kullanın . Temel olarak, genişliği yüzde olarak değil piksel olarak koyun .

width: 200px;
word-wrap: break-word;

14
Bu yukarıdaki cevapla aynıdır. Neden rahatsız oluyorsun?
trgraglia
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.