Prevent text from overlap table td width

86,053

Solution 1

Well, there's max-width, max-height, and overflow in CSS.

So

td.whatever
{
    max-width: 150px;
    max-height: 150px;
    overflow: hidden;
}

would restrict the maximum width and height to 150px, and it can be anything from less than 150 up to 150, and anything that doesn't fit inside that will be clipped off and hidden from view.

Overflow's default (overflow: visible;) is to simply allow anything that won't fit inside its specified container to just spill over outside of it. If you only want to limit it horizontally and don't want to hide anything, word-wrap may help:

td.whatever
{
    max-width: 150px;
    word-wrap: break-word;
}

word-wrap will break words whenever it needs to, even if it's not at the end of a word. You can also just use height and width to specify a fixed size if you don't want the table to expand or shrink at all.

Solution 2

You could use word-wrap:break-word;, so overlong words get wrapped.

Solution 3

td.whatever_class{
    max-width: 100px;
}

replace 100px with however wide you want. 1000px is a good width for websites as it will fit on nearly all monitors people have today, so if you had 20 columns then make it 50px for example.

Solution 4

You need to specify BOTH the max-width and display styles (because the display attribute is set funny because it's a td, not a normal element) e.g.

td{
    max-width: 100px;
    display: inline-block;
}

Solution 5

There is also nice solution with property max-width: 0px; so it will be responsible to full width of table.

Share:
86,053
daniel
Author by

daniel

Updated on October 24, 2020

Comments

  • daniel
    daniel over 3 years

    How can I restrict the table <td> entry to expanding over the entire screen when the entry is too long?