【问题标题】:how to rotate text vertically at table column header如何在表格列标题处垂直旋转文本
【发布时间】:2014-06-20 20:35:29
【问题描述】:

我在我的网页上使用了这个data table。这是我放置代码的fiddle 链接。我想,第一个数字第二个数字列应该垂直旋转。我已经成功了。但是,问题是制作后,列标题和列不能在一起。 除此之外,我希望垂直旋转文本的列尽可能薄。但是,虽然我在该列的标题处设置了 20px 宽度,但我无法做到这一点。另一件事是,在 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>

【问题讨论】:

    标签: html css rotatetransform


    【解决方案1】:

    仅旋转 div 而不是表头。每个 th 行应如下所示:&lt;th &gt;&lt;div class="rotate"&gt;Fisrt Number Second Number&lt;/div&gt;&lt;/th&gt;

    并将旋转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 */
    }
    

    Here 是一个更新的小提琴

    【讨论】:

    • 谢谢,看起来很棒!除此之外,你能告诉我为什么我不能修改表格列的宽度吗?这是小提琴:jsfiddle.net/fxju7/7我希望垂直文本将在两行中,并且它们的列将尽可能薄。我已经把那些列的宽度设为 20px。但是,它没有用!
    • .rotate 的底部有width:150px,它设置得那么宽
    • 不,宽度可以帮助我将这些文本分成两行。如果我不给它,文本将被放置 3 或 4 行。但是,我需要两行。这就是为什么,我给出了 width: 150px ,它实际上是垂直文本的高度。我想,你无法理解我的评论。现在,我试图让它变得简单。我想要, 列的宽度为 20 像素,用户插入的标题名称 列的宽度为 120 像素。但是,无论我通过 css 应用什么宽度,宽度都保持不变!
    • 如果你改变了旋转底部的宽度,宽度也会改变。我明白你的评论。如果你不想改变,我会尝试另一种方式。
    • Here 应该是您正在寻找的。另一层divoverflow:visible 允许它显示全文而不被挤压。
    猜你喜欢
    • 2014-10-08
    • 2011-10-27
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    相关资源
    最近更新 更多