当前位置: 首页 > 面试题库 >

如何在具有自动高度/没有文本溢出的表格标题中显示垂直文本?

邬令
2023-03-14
问题内容

我想使用CSS transform属性将旋转的文本显示为表格标题。标题行应根据需要调整其高度,但我的问题是,如何使表头根据需要增长?


问题答案:

如果您使用伪元素和垂直填充,则基本上可以画一个
方形框或 <td> :

.verticalTableHeader {
    text-align:center;
    white-space:nowrap;
    transform-origin:50% 50%;
    transform: rotate(90deg);

}
.verticalTableHeader:before {
    content:'';
    padding-top:110%;/* takes width as reference, + 10% for faking some extra padding */
    display:inline-block;
    vertical-align:middle;
}

If you want to keep <td> ith a small width, table-layout:fixed + width
might help. http://jsfiddle.net/qjzwG/320/

.verticalTableHeader {
    text-align:center;
    white-space:nowrap;
    transform: rotate(90deg);

}
.verticalTableHeader p {
    margin:0 -100% ;
    display:inline-block;
}
.verticalTableHeader p:before{
    content:'';
    width:0;
    padding-top:110%;/* takes width as reference, + 10% for faking some extra padding */
    display:inline-block;
    vertical-align:middle;
}
table {
    text-align:center;
    table-layout : fixed;
    width:150px
}

If you want table to still be able to grow from it’s content but not from
width of <th> , using a wrapper with a hudge negative margin opposite to
dir/direction of document might do : apparently, the closest to your needs
, http://jsfiddle.net/qjzwG/320/

<table border="1">
    <tr>
      <th class="verticalTableHeader"><p>First</p></th>
      <th class="verticalTableHeader"><p>Second-long-header</p></th>
      <th class="verticalTableHeader"><p>Third</p></th>
    </tr>



.verticalTableHeader {
    text-align:center;
    white-space:nowrap;
    transform: rotate(90deg);
}
.verticalTableHeader p {
    margin:0 -999px;/* virtually reduce space needed on width to very little */
    display:inline-block;
}
.verticalTableHeader p:before {
    content:'';
    width:0;
    padding-top:110%;
    /* takes width as reference, + 10% for faking some extra padding */
    display:inline-block;
    vertical-align:middle;
}
table {
    text-align:center;
}

来自演示和基础的HTML:

<table border="1">
    <tr>
      <th class="verticalTableHeader">First</th>
      <th class="verticalTableHeader">Second</th>
      <th class="verticalTableHeader">Third</th>
    </tr>
    <tr>
      <td>foo</td>
      <td>foo</td>
      <td>foo</td>
    </tr>
    <tr>
      <td>foo</td>
      <td>foo</td>
      <td>foo</td>
    </tr>
    <tr>
      <td>foo</td>
      <td>foo</td>
      <td>foo</td>
    </tr>
</table>

对于较旧的IE,您需要使用书写模式(CSS)



 类似资料:
  • 问题内容: 我的表上有很多行。我想设置表格的高度,例如500px,这样,如果表格的高度大于该高度,则会出现一个垂直滚动条。我尝试在上使用CSS 属性,但是它不起作用。 问题答案: 尝试使用CSS属性。还有单独的属性来定义水平溢出()和垂直溢出()的行为。 由于只需要垂直滚动,请尝试以下操作: 编辑: 显然,元素不尊重该属性。这似乎是因为默认情况下元素未呈现为(它们实际上具有自己的显示类型)。您可以

  • 问题内容: 我希望在JLabel中垂直显示文本,第一个字母在底部,最后一个字母在顶部。这可能吗? 问题答案: 我找到了以下页面:http : //www.java2s.com/Tutorial/Java/0240__Swing/VerticalLabelUI.htm。 我不知道您是否希望字母彼此“站立”或全部旋转。

  • 问题内容: 无论div元素有多高,我如何在h1标签内垂直居中放置h1标签?即如果用户更改他的浏览器高度,我希望h1根据新的高度在中心垂直对齐。 谢谢。 问题答案: 我遇到过的最好的解决方案是利用属性并将wrapper元素设置为,以允许对元素的使用居中: HTML CSS 经过测试 Windows XP Professional 2002版Service Pack 3 Internet Explor

  • 问题内容: 如何设置100%的宽度并仅在垂直滚动条中放置一些高度? 我希望避免增加一些额外的div,我要的是简单的表像这样,当我试图改变显示table-layout,position和CSS表更事情不是100%的宽度仅与PX固定宽度的工作好。 问题答案: 为了使元素可滚动,我们需要更改其在页面上的显示方式,即用于将其显示为块级元素。 由于我们更改了的属性,因此我们也应该更改 element的属性,

  • 问题内容: line-height属性通常负责垂直对齐,但不涉及输入。有没有一种方法可以自动使文本居中而不用填充? 问题答案: 在Opera 9.62,Mozilla 3.0.4,Safari 3.2(适用于Windows)中,如果您在输入字段的同一行中放置一些文本或至少一个空格,则它会有所帮助。 (在输入语句后想象一个&nbsp) IE 7会忽略我尝试的所有CSS hack。我建议仅将填充用于I