Tablo hücresindeki metnin kaydırılmasını önleme


285

Tablo hücresindeki metnin kaydırılmasını nasıl engelleyebileceğimi bilen var mı? Bu bir tablonun başlığı için, ve başlık altındaki verilerden çok daha uzun, ama sadece bir satırda görüntülemek gerekiyor. Sütun çok genişse sorun değil.

(Basitleştirilmiş) tablomun HTML'si şuna benzer:

<table>
  <thead>
    <tr>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
    </tr>
  </tbody>
</table>

Başlığın kendisi, thsayfadaki javascript ile ilgili nedenlerden dolayı etiketin içindeki bir div içine sarılır .

Tablo, başlıklar birden çok satıra sarılmış olarak çıkıyor. Bu, tarayıcı yatay kaydırmadan kaçınmaya çalıştığından, yalnızca tablo yeterince geniş olduğunda gerçekleşir. Benim durumumda yatay kaydırma istiyorum.

Herhangi bir fikir?

Yanıtlar:


486

Şu şekilde white-spacekullanılan mülke bir göz atın :

th {
    white-space: nowrap;
}

Bu, içeriğini <th>bir satırda görüntülenmeye zorlar .

Bağlantılı sayfadan, aşağıdakiler için çeşitli seçenekler şunlardır white-space:

normal
Bu değer, kullanıcı aracılarını beyaz boşluk dizilerini daraltmaya ve satır kutularını doldurmak için gerektiği gibi satırları kesmeye yönlendirir.

pre
Bu değer, kullanıcı aracılarının beyaz boşluk dizilerini daralmasını önler. Satırlar yalnızca korunmuş yeni satır karakterlerinde kesilir.

nowrap
Bu değer, 'normal' için olduğu gibi beyaz boşluğu daraltır, ancak metindeki satır sonlarını bastırır.

ön sarma
Bu değer, kullanıcı aracılarının beyaz boşluk dizilerini daralmasını önler. Satırlar korunmuş yeni satır karakterlerinde ve gerektiğinde satır kutularını doldurmak için kesilir.

pre-line
Bu değer, kullanıcı aracılarını beyaz boşluk dizilerini daraltmaya yönlendirir. Satırlar korunmuş yeni satır karakterlerinde ve gerektiğinde satır kutularını doldurmak için kesilir.


8
aynı hücredeki giriş alanı ve düğme için çalışmaz. rastgele yerleştirir.
Doomsknight

16
Tabletable-layout:fixed;Bunun çalışması için elemanın olması gerekir .
daniloquio

@Doomsknight Giriş hücresinde ve aynı hücrede bulunan başka bir öğeyle bunu başarmanın bir yolunu buldunuz mu?
loveNoHate

beyaz boşluk: ön; -28.04 olarak - ve 28.04
Brent

1
@Doomsknight Bir onay kutusuyla aynı sorunu yaşadım ve CSS'yi güncelleyerek çözdüminput { display: inline; }
Programster


22

Bunu yapmanın en az iki yolu vardır:

"Td" etiketi içinde nowrap niteliğini kullanın:

<th nowrap="nowrap">Really long column heading</th>

Kelimeleriniz arasında kırılmaz boşluklar kullanın:

<th>Really&nbsp;long&nbsp;column&nbsp;heading</th>

6
Not nowrapkaldırıldı. w3.org/TR/html401/struct/tables.html#h-11.2.6 . Bunun yerine stil sayfalarını kullanın.
wisbucky

6

Kısa çizgide metin kaydırmayı önlemeye ihtiyaç duyan bu soruya geldim.

Ben böyle yaptım:

<td><nobr>Table Text</nobr></td>

Referans:

Tüm tarayıcılarda tire işaretlerinde satır kesmeyi önleme


Bu nobryanıtta kabul edilen cevapta belirtildiği gibi etiketin standart dışı olduğunu belirtmek gerekir : stackoverflow.com/a/8755071/4257
08'de pkaeding

Oldukça doğru. Puanınız iyi karşılandı. Tüm bu yorumları okudum, ilgili yorumcuların deneyimini kaydettim ve bir karar çağrısı yaptım. Kısa çizgi biraz zor. (Not: Yorumunuzda bağladığınız soru
cevabımda bağladığım

Evet, aynı soru olması gerekiyordu. Birisinin gelecekte bu cevabı bulması ve bağlantılı referansı okuma zahmetine girmemesi durumunda uyarının buraya gönderildiğinden emin olmak istedim.
15'te

1

Reaksiyon / Malzeme Kullanıcı Arayüzü ile Kullanım İçin

React'ta inşa ederken bunun Malzeme UI için nasıl çalıştığını merak ediyorsanız, bunu <TableHead>Bileşeninize nasıl ekleyeceğiniz aşağıda açıklanmıştır :

<TableHead style={{ whiteSpace: 'nowrap'}}>
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.