【问题标题】:How can I display vertical text in a table with fixed height?如何在固定高度的表格中显示垂直文本?
【发布时间】:2013-10-06 16:27:04
【问题描述】:

我想在表格的标题上显示垂直文本;标题具有固定的高度。我也想隐藏溢出。

我的html是:

<table border='1px solid black'>
 <thead>
  <tr style='font-weight:bold; color:blue'>
   <td width="60"> Data </td>
   <td width="35"> Voto </td>
   <td width="50"> Tipo </td>
   <td width="10"> I </td>
   <th style="color:red; height:200px; vertical-align:bottom" width="20">
    <span>
      <div style="width:100%;height:100%;overflow:hidden;"> Hi everybody </div>
    </span>
   </th>
   <td> Annotazioni </td>
  </tr>
 </thead>
</table>

还有我的 CSS:

table
    {
        border-collapse:collapse;
        table-layout: fixed;
        width: 400px;
    }      

th span {

      writing-mode: tb-rl;
      filter: flipv fliph;
      -webkit-transform:rotate(-90deg); 
      white-space:nowrap; 
      display:block;
    }

我有一个问题:它只显示了垂直文本的几个字母。为什么?

在这里你可以看得更清楚:Example

非常感谢您的帮助!

【问题讨论】:

  • 你试过vertical-align:middle吗?
  • 不一样...文本居中,但我仍然只看到几个字母。
  • 始终添加不带前缀的前缀属性:因此,您的示例在 Firefox 中不起作用。如果您在 WebKit 之后添加transform: rotate(-90deg); ,则可以使用。当 WebKit 浏览器删除此属性的前缀时,它仍然可以工作。

标签: html css


【解决方案1】:

这似乎是一个奇怪的表格布局,我不确定用例。因此,我不确定它需要有多灵活,但将其添加到 th span 可以修复您的示例:

width: 200px;
text-align: center;
margin-left: -90px;

另外,将vertical-align: middle; 添加到其包含的th

http://jsfiddle.net/m7nfU/22/

【讨论】:

  • +1 我认为这是一个更好的解决方案 =)
  • 在我看来它仍然不适用于 Chrome。如果我想将标题的高度降低到 100px,我必须在 th 标签中设置 height:100px 并在 CSS 中设置 width 100px。像这样:jsfiddle.net/m7nfU/25。然后发生了一件奇怪的事情......
【解决方案2】:

删除包含“大家好”的 div 上的 overflow: hidden,它隐藏了其余的字母。

<th style="color:red; height:200px; vertical-align:bottom" width="20">
     <span>
        <div style="width:100%;height:100%;">Hi everybody</div>
     </span>
</th>

然后将vertical-align: middle 添加到父&lt;th&gt;,我还必须添加负边距以使“大家好”以匹配中心,因为文本字符串从centre origin 开始。

小提琴http://jsfiddle.net/m7nfU/24/

【讨论】:

  • 我想说这里唯一的问题是您添加的负边距是基于文本字符串的长度。
  • 我在标签中修改了你的建议设置 height:50 px 但它不起作用:jsfiddle.net/m7nfU/26
  • 你用的是什么浏览器?如果字符串的长度比&lt;td&gt; 的大小长,它会总是 溢出,尽管overflow:hidden。如果您希望您的文本相对于 div 的高度大小,您将需要使用 JavaScript。
  • 实际上隐藏超出单元格尺寸的文本似乎是可能的,例如:jsfiddle.net/m7nfU/27。但是这里还有其他问题,就像你可以在这里看到的:jsfiddle.net/m7nfU/25。 PS:我用的是Chrome
  • 嗯,你能把它调整成你想要的样子吗? :x
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-28
  • 2015-05-26
  • 2016-09-20
  • 1970-01-01
  • 2014-10-14
  • 2021-11-30
  • 1970-01-01
相关资源
最近更新 更多