2010-07-31 10 views
31

Mam tabelę użytkowników, gdzie każdy wiersz zawiera ich nazwiska, adres e-mail i tym podobne. Dla niektórych użytkowników ten wiersz ma jedną linię tekstu wysoką, dla niektórych dwóch itd. Ale chciałbym, aby każdy wiersz tabeli był wysoki na jedną linię tekstu, obcinając resztę.Jak ograniczyć komórkę tabeli do jednego wiersza tekstu za pomocą CSS?

Widziałem te dwa pytania:

Faktycznie moje pytanie jest dokładnie podobna do pierwszej, ale ponieważ link jest martwy nie mogę studiować to. Obie odpowiedzi mówią, że używają white-space: nowrap. Jednak to nie działa, być może brakuje mi czegoś.

Ponieważ nie mogę pokazać ci kodu, reprodukowane problemu:

<style type="text/css"> 
td { 
    white-space: nowrap; 
    overflow: hidden; 
    width: 125px; 
    height: 25px; 
} 
</style> 

<div style="width:500px"> 
<table> 
    <tr> 
     <td>lorem ipsum here... blablablablablablablablablabla</td> 
     <td>lorem ipsum here... blablablablablablablablablabla</td> 
     <td>lorem ipsum here... blablablablablablablablablabla</td> 
     <td>lorem ipsum here... blablablablablablablablablabla</td> 
    </tr> 
</table> 
</div> 

Bez white-space tabela jest 500px szerokości, a tekst zajmuje więcej niż jedną linię.

Ale white-space: nowrap powoduje, że przeglądarka po prostu ignoruje dyrektywę width i zwiększa szerokość tabeli, aż wszystkie dane mieszczą się w jednej linii.

Co robię źle?

+0

Nie w tym przykładzie, ale na mojej prawdziwej stronie internetowej tak. W każdym razie nie sądzę, aby brak typu dokumentu był związany z tym problemem. – Tomaka17

Odpowiedz

21

Przepełnienie zadziała tylko wtedy, gdy wie, od czego zacząć, biorąc pod uwagę, że nadleciał. Trzeba ustawić szerokość i wysokość atrybut <td>

Take 2

spróbuj dodać table-layout: fixed; width:500px; do stylu stołu.

UPDATE 3

potwierdził to działało: http://jsfiddle.net/e3Eqn/

+0

Próbowałem już tego przed zadaniem pytania i to też nie działa.Zmodyfikowalem to pytanie, aby je dodac – Tomaka17

+0

@ Tomaka17, zredagowałem moją odpowiedź, aby dołączyć dodatkowe instrukcje. –

+0

Czy jest jakiś sposób, aby powiedzieć "przepełnienie to rozmiar elementu, gdyby ten element nie był w nim"? – Claudiu

6

Dodaj poniższe linie do arkusza stylów:

table{ 
    width: 500px; table-layout:fixed; 
} 

musisz dodać szerokość tabeli w celu zapewnienia, że ​​następna nieruchomość będzie pasować elementy do określonego rozmiaru. Właściwość layoutu tabeli zmusza przeglądarkę do korzystania z ustalonego układu w obrębie 500 pikseli, które podano.

+0

Dzięki, daję ci +1 Jednak zaznaczam odpowiedź Mike'a Sherov jako zaakceptowaną, ponieważ dowiedziałem się o istnieniu przepełnienia tekstu dzięki niemu – Tomaka17

+0

+1. To było całkiem blisko. –

27

Dodaj poniższe linie do arkusza stylów:

table { white-space: nowrap; }

2

<table border="1" style="width:200px"> 
 
<tr> 
 
    <td>Column 1</td><td>Column 2</td> 
 
</tr> 
 
<tr> 
 
    <td nowrap="nowrap"> 
 
    
 
\t \t Single line cell just do it</td> 
 
    <td> 
 
\t 
 
\t \t multiple lines here just do it</div></td> 
 
</tr> 
 
</table>

proste i użyteczne. użyj powyższego kodu dla

Powiązane problemy