2010-07-28 12 views
16

w td z table mam bardzo długie pojedyncze słowo „pneumonoultramicroscopicsilicovolcanoconiosis” i chcę, aby zmniejszyć szerokość table ale nie robić z tego powodu długiego słowa w jednym z td mogę przerwać to słowo dając <br />, ale czy istnieje jakiś sposób CSS, aby złamać to słowo w zależności od dostępnego miejsca. bez podawania linii przerwać lub edytować niczego w HTML.Jak złamać długie pojedyncze słowo w <td> przy użyciu CSS?

Odpowiedz

4
td span{display:block;width:your_max_width_here.px} 

<td><span>Pneumonoultramicroscopicsilicovolcanoconiosis</span></td> 
+0

+1 th za to rozwiązanie. czy jest jakakolwiek inna możliwość dzięki czystej tabeli CSS bcoz jest generowana automatycznie przez CMS, więc nie mogę dodać '' –

+0

@ metal-gear-solid Więc najpierw zapełnij swoją wartość rozszerzeniem max-width w swoim źródle danych przed wyświetleniem go w html. –

28

Spróbuj wykonać następujące czynności:

word-wrap: break-word; 
white-space: normal; 

word-wrap jest CSS3 (jednak to działa w IE). Możesz jednak nie być w stanie uruchomić go w starszych przeglądarkach.

+1

Wierzę, że wsparcie dla 'word-wrap' idzie aż do IE5! –

+0

@adam tak, to brzmi dobrze :) –

+11

@BenRowe, należy dodać 'table {table-layout: fixed}'. Lub spróbuj tego: 'td {word-wrap: break-word; word-break: break-all} ' – hiway

4

Spróbuj wpisać następujący kod słowa break, jeśli nie ma wolnego miejsca.

word-wrap: break-word; 
word-break: break-all; 
11

następujące prace dla mnie:

word-wrap: break-word; 
    word-break: break-all; 
    white-space: normal; 
0

następujący kod powinien działać;

td {word-break: break-all} 
3

spróbować mojego kodu -

ze stołem ciała

table>tbody>tr>th{ 
    word-wrap: break-word; 
    word-break: break-all; 
    white-space: normal; 
} 

Bez ciała Tabela

table>tr>th{ 
    word-wrap: break-word; 
    word-break: break-all; 
    white-space: normal; 
} 
2

Próbowałem różnych kombinacji rozwiązań znaleźć tutaj oraz w inne strony, ale nigdy nie zadziałało zgodnie z oczekiwaniami - krótkie słowa w Rozdzielili się, nawet jeśli mieli miejsce na linii poniżej i wyglądało to głupio.

Wreszcie znalazłem ten kompromis:

table { 
    table-layout: fixed; 
    overflow-wrap: break-word; 
    word-wrap: break-word; /* IE */ 
} 

Jeśli chcesz leczyć swoje wiersze jednakowo, to działa najlepiej.

0

Znalazłem, gdy mieszanka zawartości w komórce, niektóre długie pojedyncze słowa miesza się z innymi krótkimi słowami, że word-break: break-word; działa najlepiej. Jeśli to będzie możliwe, złamie się białe spacje. Chociaż wydaje się, że nie jest to obsługiwane w IE11. Jeśli ustawisz break-all na jedną z wymienionych właściwości, zawsze będzie się ona łamać w obrębie słowa (chyba, że ​​ma to szczęście być na spacji).

Powiązane problemy