【问题标题】:css, table with vertical headerscss,带有垂直标题的表格
【发布时间】:2015-06-07 08:11:20
【问题描述】:

我正在尝试在 HTML 中构建一个表头垂直的表。 我在那里找到了我正在寻找的东西: http://codepen.io/chriscoyier/pen/Fapif

但我无法重现它,我真的不明白为什么。

我的代码是:

<html>
    <head>
        <style type="text/css">

        .table-header-rotated {
          border-collapse: collapse;
          .csstransforms & td {
             width: 30px;
          }
          .no-csstransforms & th {
             padding: 5px 10px;
          }
          td {
             text-align: center;
             padding: 10px 5px;
             border: 1px solid #ccc;
          }
          .csstransforms & th.rotate {
             height: 140px;
             white-space: nowrap;
             // Firefox needs the extra DIV for some reason, otherwise the text disappears if you rotate 
             > div {
                transform: 
                  // Magic Numbers
                  translate(25px, 51px)
                  // 45 is really 360-45
                  rotate(315deg);
                width: 30px;
             }
             > div > span {
                border-bottom: 1px solid #ccc;
                padding: 5px 10px;
             }
          }
          th.row-header {
             padding: 0 10px;
             border-bottom: 1px solid #ccc;
          }
        }

        </style>
    </head>
    <body>
<table class="table table-header-rotated">
  <thead>
    <tr>
      <!-- First column header is not rotated -->
      <th></th>
      <!-- Following headers are rotated -->
      <th class="rotate"><div><span>Column header 1</span></div></th>
        <th class="rotate"><div><span>Column header 2</span></div></th>
        <th class="rotate"><div><span>Column header 3</span></div></th>
        <th class="rotate"><div><span>Column header 4</span></div></th>
        <th class="rotate"><div><span>Column header 5</span></div></th>
        <th class="rotate"><div><span>Column header 6</span></div></th>
    </tr> 
  </thead>
  <tbody>
    <tr>
      <th class="row-header">Row header 1</th>
      <td><input checked="checked" name="column1[]" type="radio" value="row1-column1"></td>
      <td><input checked="checked" name="column2[]" type="radio" value="row1-column2"></td>
      <td><input name="column3[]" type="radio" value="row1-column3"></td>
      <td><input name="column4[]" type="radio" value="row1-column4"></td>
      <td><input name="column5[]" type="radio" value="row1-column5"></td>
      <td><input name="column6[]" type="radio" value="row1-column6"></td>
    </tr>
    <tr>
      <th class="row-header">Row header 2</th>
      <td><input name="column1[]" type="radio" value="row2-column1"></td>
      <td><input name="column2[]" type="radio" value="row2-column2"></td>
      <td><input checked="checked" name="column3[]" type="radio" value="row2-column3"></td>
      <td><input checked="checked" name="column4[]" type="radio" value="row2-column4"></td>
      <td><input name="column5[]" type="radio" value="row2-column5"></td>
      <td><input name="column6[]" type="radio" value="row2-column6"></td>
    </tr>
    <tr>
      <th class="row-header">Row header 3</th>
      <td><input name="column1[]" type="radio" value="row3-column1"></td>
      <td><input name="column2[]" type="radio" value="row3-column2"></td>
      <td><input name="column3[]" type="radio" value="row3-column3"></td>
      <td><input name="column4[]" type="radio" value="row3-column4"></td>
      <td><input checked="checked" name="column5[]" type="radio" value="row3-column5"></td>
      <td><input checked="checked" name="column6[]" type="radio" value="row3-column6"></td>
    </tr>
  </tbody>
</table>

</body>
</html>

这里有一个 jsfiddle:https://jsfiddle.net/n00tevvs/

【问题讨论】:

    标签: html css html-table vertical-alignment


    【解决方案1】:

    这会起作用,应用它

    th.rotate {
      /* Something you can count on */
      height: 140px;
      white-space: nowrap;
    }
    
    th.rotate > div {
      transform: 
        /* Magic Numbers */
        translate(25px, 51px)
        /* 45 is really 360 - 45 */
        rotate(315deg);
      width: 30px;
    }
    th.rotate > div > span {
      border-bottom: 1px solid #ccc;
      padding: 5px 10px;
    }
    /* These aren't needed and will be weird if transforms don't work */
    .csstransforms & th.rotate {
      height: 140px;
      white-space: nowrap;
    }
    

    【讨论】:

      【解决方案2】:

      CSS

      .table-header-rotated {
        border-collapse: collapse;
      }
      .table-header-rotated td {
        width: 30px;
      }
       .table-header-rotated th {
        padding: 5px 10px;
      }
      .table-header-rotated td {
        text-align: center;
        padding: 10px 5px;
        border: 1px solid #ccc;
      }
       .table-header-rotated th.rotate {
        height: 140px;
        white-space: nowrap;
      }
       .table-header-rotated th.rotate > div {
        -webkit-transform: translate(25px, 51px) rotate(315deg);
            -ms-transform: translate(25px, 51px) rotate(315deg);
                transform: translate(25px, 51px) rotate(315deg);
        width: 30px;
      }
       .table-header-rotated th.rotate > div > span {
        border-bottom: 1px solid #ccc;
        padding: 5px 10px;
      }
      .table-header-rotated th.row-header {
        padding: 0 10px;
        border-bottom: 1px solid #ccc;
      }
      

      DEMO

      检查天气你有 SASS 代码或普通 CSS 代码。

      【讨论】:

        猜你喜欢
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 2018-11-18
        • 2022-10-20
        • 2016-10-11
        • 1970-01-01
        • 2023-03-27
        • 2018-10-11
        相关资源
        最近更新 更多