我一直在尝试将文字放在垂直方向,就像我们在ms-word表格中所做的一样,但到目前为止我只能做THIS ...我不满意因为它是一个框已旋转...是否有办法获得实际的垂直方向文字?
我只在演示中将旋转设置为305度,这不会使文本垂直。 270deg
但我只是让演示显示轮换。
答案 0 :(得分:94)
替代方法:http://www.thecssninja.com/css/real-text-rotation-with-css
p { writing-mode: tb-rl; }
答案 1 :(得分:75)
-webkit-transform: rotate(90deg);
其他答案是正确的,但它们导致了一些对齐问题。尝试不同的东西时,这个CSS片段代码对我来说非常合适。
.vertical{
writing-mode:tb-rl;
-webkit-transform:rotate(90deg);
-moz-transform:rotate(90deg);
-o-transform: rotate(90deg);
-ms-transform:rotate(90deg);
transform: rotate(90deg);
white-space:nowrap;
display:block;
bottom:0;
width:20px;
height:20px;
}
答案 2 :(得分:57)
我正在搜索实际的垂直文本而不是HTML中的旋转文本,如下所示。所以我可以通过使用以下方法来实现它。
的 HTML: - 强>
<p class="vericaltext">
Hi This is Vertical Text!
</p>
<强> CSS: - 强>
.vericaltext{
width:1px;
word-wrap: break-word;
font-family: monospace; /* this is just for good looks */
}
更新: - 如果您需要显示空白,请将以下属性添加到您的CSS中。
white-space: pre;
所以,css类应该是
.vericaltext{
width:1px;
word-wrap: break-word;
font-family: monospace; /* this is just for good looks */
white-space: pre;/* this is for displaying whitespaces */
}
<强> JSFiddle! Demo With Whitespace 强>
更新2 (28-JUN-2015)
由于white-space: pre;
似乎无法在Firefox上运行(针对此特定用途)(截至目前),只需将该行更改为
white-space: pre-wrap;
所以,css类应该是
.vericaltext{
width:1px;
word-wrap: break-word;
font-family: monospace; /* this is just for good looks */
white-space:pre-wrap; /* this is for displaying whitespaces including Moz-FF.*/
}
答案 3 :(得分:25)
将文字旋转90度:
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
此外,如果未设置为display:block。
,则无法旋转span标记答案 4 :(得分:9)
对于在firefox中使用下面另一个字符的垂直文本:
text-orientation: upright;
writing-mode: vertical-rl;
答案 5 :(得分:7)
尝试使用:
writing-mode: lr-tb;
答案 6 :(得分:3)
我是新手,对我帮助很大。只需更改宽度,高度,顶部和左侧以使其适合:
.vertical-text {
display: block;
position:absolute;
width: 0px;
height: 0px;
top: 0px;
left: 0px;
transform: rotate(90deg);
}
你也可以去here看另一种方法。作者这样做:
.vertical-text {
transform: rotate(90deg);
transform-origin: left top 0;
float: left;
}
答案 7 :(得分:2)
可以使用CSS3转换属性
.txtdiv{
transform:rotate(7deg);
-ms-transform:rotate(7deg); /* IE 9 */
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.93969262, M12=0.34202014, M21=-0.34202014, M22=0.93969262,sizingMethod='auto expand')"; /* IE6-8 */
-webkit-transform:rotate(7deg); /* Opera, Chrome, and Safari */
}
答案 8 :(得分:2)
添加课程
.rotate {
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
}
我每天都使用它,并且没有任何问题。
答案 9 :(得分:2)
#myDiv{
text-align: center;
}
#mySpan{
writing-mode: vertical-lr;
transform: rotate(180deg);
}
<div id="myDiv">
<span id="mySpan"> Here We gooooo !!! </span>
</div>
答案 10 :(得分:2)
要以垂直方式显示文字(自上而下),我们只需使用:
writing-mode: vertical-lr;
transform: rotate(180deg);
#myDiv{
text-align: center;
}
#mySpan{
writing-mode: vertical-lr;
transform: rotate(180deg);
}
<div id="myDiv">
<span id="mySpan"> Here We gooooo !!! </span>
</div>
请注意,我们可以添加此项以确保浏览器兼容性:
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
我们还可以在Mozilla docs.
上阅读有关writing-mode
属性的更多信息
答案 11 :(得分:2)
旋转是要走的路 - 但请注意,并非所有浏览器都支持这种方式。如果你想获得一个跨浏览器的解决方案,你将不得不为此生成图片。
答案 12 :(得分:2)
以下是一些SVG代码示例,我用它将三行垂直文本放入表格列标题中。通过一些调整可以实现其他角度。我相信大多数浏览器最近都支持SVG。
<svg height="150" width="40">
<text font-weight="bold" x="-150" y="10" transform="rotate(-90 0 0)">Jane Doe</text>
<text x="-150" y="25" transform="rotate(-90 0 0)">0/0 0/0</text>
<text x="-150" y="40" transform="rotate(-90 0 0)">2015-06-06</text>
Sorry, your browser does not support inline SVG.
</svg>
答案 13 :(得分:1)
最佳解决方案是使用writing-mode
writing-mode: vertical-rl;
https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode
它定义文本行是水平放置还是垂直放置以及块进展的方向。
它具有良好的浏览器支持,但不适用于IE8(如果你关心IE) http://caniuse.com/#feat=css-writing-mode
答案 14 :(得分:1)
text-orientation CSS属性设置一行中文本字符的方向。它只影响垂直模式下的文本(当书写模式不是水平tb时)。这对于控制使用垂直脚本的语言的显示以及制作垂直表标题很有用。
writing-mode: vertical-rl;
text-orientation: mixed;
您还可以在此处查看所有语法
/* Keyword values */
text-orientation: mixed;
text-orientation: upright;
text-orientation: sideways-right;
text-orientation: sideways;
text-orientation: use-glyph-orientation;
/* Global values */
text-orientation: inherit;
text-orientation: initial;
text-orientation: unset;
答案 15 :(得分:1)
如果您想要
S
T
A
R
T
然后关注https://www.w3.org/International/articles/vertical-text/#upright-latin
示例:
div.vertical-sentence{
-ms-writing-mode: tb-rl; /* for IE */
-webkit-writing-mode: vertical-rl; /* for Webkit */
writing-mode: vertical-rl;
}
.rotate-characters-back-to-horizontal{
-webkit-text-orientation: upright; /* for Webkit */
text-orientation: upright;
}
<div class="vertical-sentence">
<p><span class="rotate-characters-back-to-horizontal" lang="en">Whatever</span></p>
<p><span class="rotate-characters-back-to-horizontal" lang="fr">Latin</span></p>
<p><span class="rotate-characters-back-to-horizontal" lang="hi">वर्डप्रेस </span></p>
</div>
请注意,在我的示例中,印地语带有重音符号,并且将被渲染为单个字符。这是我面对此解决方案的唯一问题。
答案 16 :(得分:1)
我已经设法找到了一个有效的解决方案:
(我在middleItem类div中有一个标题)
.middleItem > .title{
width: 5px;
height: auto;
word-break:break-all;
font-size: 150%;
}
答案 17 :(得分:1)
这也有效:
transform: rotate(90deg);
答案 18 :(得分:0)
尝试使用SVG文件,它似乎具有更好的浏览器兼容性,并且不会破坏您的响应式设计。
我尝试了CSS变换,并且在变换原点上遇到了很多麻烦;并最终得到一个SVG文件。花了大约10分钟,我也可以用CSS控制它。
如果您没有Adobe Illustrator,可以使用Inkscape制作SVG。
答案 19 :(得分:0)
h1{word-break:break-all;display:block;width:40px;}
注意:支持浏览器 - IE浏览器(8,9,10,11) - Firefox浏览器(38,39,40,41,42,43,44) - Chrome浏览器(44,45,46,47,48) - Safari浏览器(8,9) - Opera浏览器(不支持) - Android浏览器(44)
答案 20 :(得分:0)
您可以使用以下CSS属性实现相同的目的:
writing-mode: vertical-rl;
text-orientation: upright;
答案 21 :(得分:0)
您可以尝试这样
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
答案 22 :(得分:0)
.vertical-text {
transform: rotate(90deg);
transform-origin: left top 0;
float: left;
}
答案 23 :(得分:0)
<!DOCTYPE html>
<html>
<style>
h2 {
margin: 0 0 0 0;
transform: rotate(270deg);
transform-origin: top left;
color: #852c98;
position: absolute;
top: 200px;
}
</style>
<body>
<h2>It’s all in the curd</h2>
</body>
</html>
答案 24 :(得分:0)
您可以使用自动换行:break-word来获取垂直文本 使用以下代码段
HTML:
<div class='verticalText mydiv'>Here is your text</div>
的CSS:
.verticalText {
word-wrap: break-word;
font-size: 18px;
}
.mydiv {
height: 300px;
width: 10px;
}
答案 25 :(得分:0)
您也可以这样做...
.p{
writing-mode: vertical-rl;
text-orientation: upright;
}
答案 26 :(得分:-1)
<style>
#text_orientation{
writing-mode:tb-rl;
transform: rotate(90deg);
white-space:nowrap;
display:block;
bottom:0;
width:20px;
height:20px;
}
</style>
</head>
<body>
<p id="text_orientation">Welcome</p>
</body>
答案 27 :(得分:-2)
这有点hacky但是跨浏览器解决方案,不需要css
<div>
<div>h</div>
<div>e</div>
<div>l</div>
<div>l</div>
<div>o</div>
<div>