如何在表格列标题处垂直旋转文本

3

我在我的网页上使用了这个数据表格。这是我放置代码的fiddle链接。我想要,第一个数字和第二个数字列应该垂直旋转。我已经做到了。但是问题是旋转后,列标题和列不能保持在一起。此外,我希望垂直旋转文本的列尽可能地更窄。但是,即使我在该列的标题处设置了20像素的宽度,我也无法做到。另一件事是,在IE8中,旋转文本的div看起来不同(填充/边距问题)。根据我的问题,我只应该写关于我放置旋转文本的问题/失败。但是,我在这里写了多个问题。那是因为,在我放置旋转文本到列标题之后,所有的问题都出现了(我给出的插件js也有点责任,因为它阻止了正确修改列的宽度)。我相信,如果我能以适当的方式放置垂直旋转的文本(考虑到IE8),并正确修改表格的宽度,就不会再存在问题了。那么,我如何正确地将垂直旋转的文本放置在列标题中
一些代码:

<table id="example" class="dataTable display" cellspacing="0" width="100%">
  <thead>
    <tr>
      <th class="rank">Rank</th>
      <th class="wider">User Inserted Title Name</th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
      <th class="rotate">
        <div>Fisrt Number Second Number</div>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>1</td>
      <td>System Architect and Analyser</td>
      <td>1</td>
      <td>4</td>
      <td>6</td>
      <td>20</td>
      <td>5</td>
      <td>1</td>
      <td>4</td>
      <td>6</td>
      <td>20</td>
      <td>5</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Accountant</td>
      <td>4</td>
      <td>13</td>
      <td>7</td>
      <td>11</td>
      <td>8</td>
      <td>1</td>
      <td>4</td>
      <td>6</td>
      <td>20</td>
      <td>5</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Junior Technical Author</td>
      <td>5</td>
      <td>26</td>
      <td>9</td>
      <td>3</td>
      <td>19</td>
      <td>1</td>
      <td>4</td>
      <td>6</td>
      <td>20</td>
      <td>5</td>
    </tr>
  </tbody>
</table>

1个回答

6

仅旋转 div,而不是表头。每个 th 行应该像这样: <th><div class="rotate">第一个数字 第二个数字</div></th>

并且调整旋转的 CSS 代码为:

.rotate {
             filter:  progid:DXImageTransform.Microsoft.BasicImage(rotation=0.083);  /* IE6,IE7 */
         -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0.083)"; /* IE8 */
     -moz-transform: rotate(-90.0deg);  /* FF3.5+ */
      -ms-transform: rotate(-90.0deg);  /* IE9+ */
       -o-transform: rotate(-90.0deg);  /* Opera 10.5 */
  -webkit-transform: rotate(-90.0deg);  /* Safari 3.1+, Chrome */
          transform: rotate(-90.0deg);  /* Standard */
}

这里 是一个更新的代码片段。


谢谢,看起来很不错!除此之外,你能告诉我为什么我不能修改表格列的宽度吗?这是 jsfiddle 的链接:http://jsfiddle.net/fxju7/7/ 我想让垂直文本显示在两行,并且它们的列尽可能地窄。我已经将这些列的宽度设置为20像素。但是,它没有起作用! - user1896653
.rotate 的底部有一个 width:150px,它将其设置为那么宽。 - The_DemoCorgin
不,这个宽度帮助我将这些文本分成两行。如果我不给它,文本将会被放置在3或4行。但是,我需要这些文本在2行中。这就是为什么我给出了宽度:150px,实际上在垂直文本方面起到了高度的作用。我想你可能无法理解我的评论。现在,我正在尝试让它变得简单。我想要<th class="rotateContent"></th>列的宽度为20px,<th class="wider">用户插入的标题名称</th>列的宽度为120px。但是,无论我通过CSS应用了什么宽度,宽度都保持不变! - user1896653
如果您在旋转底部更改了宽度,宽度将会发生变化。我理解您的评论。如果您不想更改它,我会尝试找到另一种方法。 - The_DemoCorgin
1
这里应该是你要找的内容。另外加一层 div,并设置 overflow:visible,使其能够显示完整的文本而不会被挤压。 - The_DemoCorgin
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接