How to fix height of TR?

前端 未结 7 636
情深已故
情深已故 2020-11-27 02:50

Is it possible to fix the height of a row (tr) on a table?

The problem appears when I shrink the window of the browser, some rows start playing around, and I can not

相关标签:
7条回答
  • 2020-11-27 03:26

    That is because the words are wrapping and are going on new lines hence stretching the TR. This should fix your problem:

    overflow:hidden;
    

    Put that in the TR styles Although it should work, why not just let it stretch o0

    PS. i aint tested it so dont hate XD

    0 讨论(0)
  • 2020-11-27 03:31

    Putting div inside a td made it work for me.

    <table width="100%">
        <tr><td><div style="font-size:2px; height:2px; vertical-align:middle;">&nbsp;</div></td></tr>
    
    0 讨论(0)
  • 2020-11-27 03:34

    I had to do this to get the result that I wanted:

    <td style="font-size:3px; float:left; height:5px; vertical-align:middle;" colspan="7"><div style="font-size:3px; height:5px; vertical-align:middle;"><b><hr></b></div></td>
    

    It refused to work with only the cell or the div and needed both.

    0 讨论(0)
  • 2020-11-27 03:41

    Try putting the height into one of the cells, like this:

    <table class="tableContainer" cellspacing="10px">
     <tr>
      <td style="height:15px;">NHS Number</td>
      <td>&#160;</td>
    

    Note however, that you won't be able to make the cell smaller than the content requires it to be. In that case you would have to make the text smaller first.

    0 讨论(0)
  • 2020-11-27 03:42

    Tables are iffy (at least, in IE) when it comes to fixing heights and not wrapping text. I think you'll find that the only solution is to put the text inside a div element, like so:

    td.container > div {
        width: 100%;
        height: 100%;
        overflow:hidden;
    }
    td.container {
        height: 20px;
    }
    <table>
        <tr>
            <td class="container">
                <div>This is a long line of text designed not to wrap 
                     when the container becomes too small.</div>
            </td>
        </tr>
    </table>

    This way, the div's height is that of the containing cell and the text cannot grow the div, keeping the cell/row the same height no matter what the window size is.

    0 讨论(0)
  • 2020-11-27 03:46

    Setting the td height to less than the natural height of its content

    Since table cells want to be at least big enough to encase their content, if the content has no apparent height, the cells can be arbitrarily resized.

    By resizing the cells, we can control the row height.

    One way to do this, is to set the content with an absolute position within the relative cell, and set the height of the cell, and the left and top of the content.

    table {
      width: 100%;
    }
    td {
      border: 1px solid #999;
    }
    .set-height td {
      position: relative;
      overflow: hidden;
      height: 3em;
    }
    .set-height p {
      position: absolute;
      margin: 0;
      top: 0;
    }
    /* table layout fixed */
    .layout-fixed {
      table-layout: fixed;
    }
    /* td width */
    .td-width td:first-child {
      width: 33%;
    }
    <table><tbody>
      <tr class="set-height">
        <td><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></td>
        <td>Foo</td></tr><tr><td>Bar</td><td>Baz</td></tr><tr><td>Qux</td>
        <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</td>
      </tr>
    </tbody></table>
    <h3>With <code>table-layout: fixed</code> applied:</h3>
    <table class="layout-fixed"><tbody>
      <tr class="set-height">
        <td><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></td>
        <td>Foo</td></tr><tr><td>Bar</td><td>Baz</td></tr><tr><td>Qux</td>
        <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</td>
      </tr>
    </tbody></table>
    <h3>With <code>&lt;td&gt; width</code> applied:</h3>
    <table class="td-width"><tbody>
      <tr class="set-height">
        <td><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></td>
        <td>Foo</td></tr><tr><td>Bar</td><td>Baz</td></tr><tr><td>Qux</td>
        <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</td>
      </tr>
    </tbody></table>

    The table-layout property

    The second table in the snippet above has table-layout: fixed applied, which causes cells to be given equal width, regardless of their content, within the parent.

    According to caniuse.com, there are no significant compatibility issues regarding the use of table-layout as of Sept 12, 2019.

    Or simply apply width to specific cells as in the third table.

    These methods allow the cell containing the effectively sizeless content created by applying position: absolute to be given some arbitrary girth.

    Much more simply...

    I really should have thought of this from the start; we can manipulate block level table cell content in all the usual ways, and without completely destroying the content's natural size with position: absolute, we can leave the table to figure out what the width should be.

    table {
      width: 100%;
    }
    td {
      border: 1px solid #999;
    }
    table p {
      margin: 0;
    }
    .cap-height p {
      max-height: 3em;
      overflow: hidden;
    }
    <table><tbody>
      <tr class="cap-height">
        <td><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></td>
        <td>Foo</td>
      </tr>
      <tr class="cap-height">
        <td><p>Bar</p></td>
        <td>Baz</td>
      </tr>
      <tr>
        <td>Qux</td>
        <td><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></td>
      </tr>
    </tbody></table>

    0 讨论(0)
提交回复
热议问题