Search code examples
htmlcsswidthcss-tables

HTML adaptable table (width, height)


I know there's a CSS solution to set up the width of a table. For example:

table {width: 100%; height:300px}

will adapt the width of the table taking the 100% of the screen but, if I insert height: 100% it doesn't work. I want to create a table (or more tables) that fits to the screen dimensions (for smartphone, pc, ecc..). Is there any solution?


Solution

  • just use width: 100%; and height: 100vh;

    <table>
      <tr>
        <th>Company</th>
        <th>Contact</th>
        <th>Country</th>
      </tr>
      <tr>
        <td>Alfreds Futterkiste</td>
        <td>Maria Anders</td>
        <td>Germany</td>
      </tr>
      <tr>
        <td>Centro comercial Moctezuma</td>
        <td>Francisco Chang</td>
        <td>Mexico</td>
      </tr>
      <tr>
        <td>Ernst Handel</td>
        <td>Roland Mendel</td>
        <td>Austria</td>
      </tr>
      <tr>
        <td>Island Trading</td>
        <td>Helen Bennett</td>
        <td>UK</td>
      </tr>
      <tr>
        <td>Laughing Bacchus Winecellars</td>
        <td>Yoshi Tannamuri</td>
        <td>Canada</td>
      </tr>
      <tr>
        <td>Magazzini Alimentari Riuniti</td>
        <td>Giovanni Rovelli</td>
        <td>Italy</td>
      </tr>
    </table>
    

    CSS:

    html, body {
      margin: 0px;
      padding: 0px;
    }
    table {
        font-family: arial, sans-serif;
        border-collapse: collapse;
        width: 100%;
        height: 100vh;
    
    }
    
    td, th {
        border: 1px solid #dddddd;
        text-align: left;
        padding: 8px;
    }
    
    tr:nth-child(even) {
        background-color: #dddddd;
    }
    

    see Example: https://codepen.io/miladfm/pen/MGPdOL