【问题标题】:HTML adaptable table (width, height)HTML 自适应表格(宽、高)
【发布时间】:2018-05-18 01:10:55
【问题描述】:

我知道有一个 CSS 解决方案可以设置表格的宽度。例如:

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

将调整占屏幕 100% 的表格的宽度,但是,如果我插入 height: 100% 它将不起作用。 我想创建一个适合屏幕尺寸的表格(或更多表格)(适用于智能手机、电脑、ecc..)。 有什么解决办法吗?

【问题讨论】:

  • 您还必须将height: 100% 添加到其父元素中,例如<body> 和<html>。

标签: html css width css-tables


【解决方案1】:

只需使用width: 100%; 和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;
}

参见示例:https://codepen.io/miladfm/pen/MGPdOL

【讨论】:

  • 谢谢!但是现在,如果我想要两张占据屏幕 100% 的表格(一张向上和一张向下),我该怎么办?我想我必须在每个表中插入 height:50vh 所以表占一个和另一个占 50%,我不确定。
【解决方案2】:

使用height: 100vh 可能对你有用

【讨论】:

    【解决方案3】:

    不需要使用表格,你可以编写 HTML 表现为表格:

    <section style="display: table;">
     <header style="display: table-row;">
    <div style="display: table-cell;"></div>
    <div style="display: table-cell;"></div>
    <div style="display: table-cell;"></div>
    </header>
       <div style="display: table-row;">
       <div style="display: table-cell;"></div>
       <div style="display: table-cell;"></div>
       <div style="display: table-cell;"></div>
       </div>
    </section>
    

    并使用 CSS 设置样式:

    display: table                /* <table>     */
    display: table-cell           /* <td>        */
    display: table-row            /* <tr>        */
    display: table-column         /* <col>       */
    display: table-column-group   /* <colgroup>  */
    display: table-footer-group   /* <tfoot>     */
    display: table-header-group   /* <thead>     */
    

    您可能偶尔会听到:表格是无语义的。这不是真的 - 它们在语义上表示表格数据。在这种情况下,表格是正确的选择。 参考link

    【讨论】:

    • 这样做会自动设置100%的高度吗?
    • 不,它不会,但它会让您灵活地设置代码样式。
    【解决方案4】:

    参见下面的代码:(您也可以将margin: 0 添加到body 以防止margin)

    body{
    height:100%;
    }
    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;
    }
    <body>
    
    <h2>HTML Table</h2>
    
    <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>
    
    </body>

    【讨论】:

    • 谢谢!但是现在,如果我想要两张占据屏幕 100% 的表格(一张向上和一张向下),我该怎么办?我想我必须在每个表中插入 height:50vh 所以表占一个 50%,另一个占 50%,我不确定。
    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    相关资源
    最近更新 更多