HTML表格中的垂直(旋转)文本

Flo*_*enn 119 html css text-rendering text-styling

是否有(便携式)方法将HTML表格单元格中的文本旋转90°?

(我有一个包含许多列和大量文本的表格,所以我想垂直写它以节省空间.)

Álv*_*lez 105

.box_rotate {
     -moz-transform: rotate(7.5deg);  /* FF3.5+ */
       -o-transform: rotate(7.5deg);  /* Opera 10.5 */
  -webkit-transform: rotate(7.5deg);  /* Saf3.1+, Chrome */
             filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0.083);  /* IE6,IE7 */
         -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0.083)"; /* IE8 */
    }
Run Code Online (Sandbox Code Playgroud)
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vitae porta lectus. Suspendisse dolor mauris, scelerisque ut diam vitae, dictum ultricies est. Cras sit amet erat porttitor arcu lacinia ultricies. Morbi sodales, nisl vitae imperdiet consequat, purus nunc maximus nulla, et pharetra dolor ex non dolor.</div>
<div class="box_rotate">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vitae porta lectus. Suspendisse dolor mauris, scelerisque ut diam vitae, dictum ultricies est. Cras sit amet erat porttitor arcu lacinia ultricies. Morbi sodales, nisl vitae imperdiet consequat, purus nunc maximus nulla, et pharetra dolor ex non dolor.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vitae porta lectus. Suspendisse dolor mauris, scelerisque ut diam vitae, dictum ultricies est. Cras sit amet erat porttitor arcu lacinia ultricies. Morbi sodales, nisl vitae imperdiet consequat, purus nunc maximus nulla, et pharetra dolor ex non dolor.</div>
Run Code Online (Sandbox Code Playgroud)

取自http://css3please.com/

截至2017年,上述网站已简化规则集以删除旧版Internet Explorer过滤器,并在现在的标准transform属性中更多地依赖:

.box_rotate {
  -webkit-transform: rotate(7.5deg);  /* Chrome, Opera 15+, Safari 3.1+ */
      -ms-transform: rotate(7.5deg);  /* IE 9 */
          transform: rotate(7.5deg);  /* Firefox 16+, IE 10+, Opera */
}
Run Code Online (Sandbox Code Playgroud)
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vitae porta lectus. Suspendisse dolor mauris, scelerisque ut diam vitae, dictum ultricies est. Cras sit amet erat porttitor arcu lacinia ultricies. Morbi sodales, nisl vitae imperdiet consequat, purus nunc maximus nulla, et pharetra dolor ex non dolor.</div>
<div class="box_rotate">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vitae porta lectus. Suspendisse dolor mauris, scelerisque ut diam vitae, dictum ultricies est. Cras sit amet erat porttitor arcu lacinia ultricies. Morbi sodales, nisl vitae imperdiet consequat, purus nunc maximus nulla, et pharetra dolor ex non dolor.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vitae porta lectus. Suspendisse dolor mauris, scelerisque ut diam vitae, dictum ultricies est. Cras sit amet erat porttitor arcu lacinia ultricies. Morbi sodales, nisl vitae imperdiet consequat, purus nunc maximus nulla, et pharetra dolor ex non dolor.</div>
Run Code Online (Sandbox Code Playgroud)

  • 但是有一个问题,在必要时旋转后,标题列的表格不会增加,所以它看起来很瞥见(在FF中试过):( (8认同)
  • 是的,在firefox中(不知道其他浏览器)或者<tr>被旋转而列的其余部分没有调整OR,你可以在<tr>中放一个<div>并试验设置<tr>位置到RELATIVE,包含<div>到ABSOLUTE,它是-moz-transform-origin:0 50%; 这将纠正其立场.要获得正确的宽度和高度,您可能需要使用jquery或其他东西将<tr>的_width_和height设置为<div>的_height_和width(分别). (3认同)
  • 仅当您有方形单元格时才有效,因此不会节省任何水平空间 (2认同)

Nat*_*ong 35

替代解决方案?

而不是旋转文本,是否可以将其写成"从上到下?"

像这样:

S  
O  
M  
E  

T  
E  
X  
T  
Run Code Online (Sandbox Code Playgroud)

我认为这会容易得多 - 你可以分开一串文字并在每个角色后插入一个换行符.

这可以通过浏览器中的JavaScript来完成,如下所示:

"SOME TEXT".split("").join("\n")
Run Code Online (Sandbox Code Playgroud)

...或者您可以在服务器端执行此操作,因此它不依赖于客户端的JS功能.(我认为这是"便携式"的意思吗?)

用户也不必将他/她的头部侧向阅读.:)

更新

这个线程是用jQuery做的.


小智 14

在原来的答案和我之前在IE8系列上的答案中引用了一个引用它,就在分号附近.Yikes和BAAAAD!下面的代码正确设置了旋转并且有效.您必须在IE中浮动才能应用过滤器.

<div style="
    float: left; 
    position: relative;
    -moz-transform: rotate(270deg);  /* FF3.5+ */        
    -o-transform: rotate(270deg);  /* Opera 10.5 */   
    -webkit-transform: rotate(270deg);  /* Saf3.1+, Chrome */              
    filter:  progid:DXImageTransform.Microsoft.BasicImage(rotation=3);  /* IE6,IE7 */          
    -ms-filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); /* IE8 */           
"
>Count & Value</div>;

  • +1指出浮动的必要性,以便在IE中工作. (5认同)