首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文本从上到下垂直对齐HTML5 CSS3

将文本从上到下垂直对齐HTML5 CSS3
EN

Stack Overflow用户
提问于 2016-06-02 04:36:16
回答 3查看 1.4K关注 0票数 4

我有一个多语言的网页。要求将页面上的按钮上的标签颠倒显示。我使用的CSS如下:

HTML:

代码语言:javascript
复制
<button class="btn btn-primary topdown-button">
    <div>お客様</div>
</button>
<button class="btn btn-primary topdown-button">
    <div>Basic 2</div>
</button>

CSS:

代码语言:javascript
复制
.topdown-button{    
    max-height: 150px;
    min-height: 150px;
    width: 60px;
    border: 3px solid navy;
    vertical-align: top;
    display:block;
}
.topdown-button div{  
    text-transform: uppercase;
    vertical-align:top;
    font-size:18px;
    min-height: 148px;
    position:relative;
    text-align:left;
    -ms-writing-mode: tb-rl;   
    -webkit-writing-mode: vertical-rl; 
    -o-writing-mode: vertical-rl;        
    writing-mode: vertical-rl;
    text-transform:uppercase;    
    font-size-adjust:0.5;
}

输出是这样的:

日语字符是按照愿望完美地显示的,但字母和数字却不是,我希望BASIC2像日语字符一样

代码语言:javascript
复制
B
A
S
I
C
2

我怎样才能做到这一点?

编辑用于解释:我使用相同的逻辑来转换我的文本,但是如果你看一下日语字符,它们就能顺利地转换,而普通的字母表字符倾向于“旋转”,我不希望英语字符的旋转,为什么它们不能显示相同的日语字符。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-02 06:03:05

使用text-orientation: upright;,这将解决问题。

代码语言:javascript
复制
.topdown-button{    
    max-height: 150px;
    min-height: 150px;
    width: 60px;
    border: 3px solid navy;
    vertical-align: top;
    display:block;
}
.topdown-button div{  
    text-transform: uppercase;
    vertical-align:top;
    font-size:18px;
    min-height: 148px;
    position:relative;
    text-align:left;
    -ms-writing-mode: tb-rl;   
    -webkit-writing-mode: vertical-rl; 
    -o-writing-mode: vertical-rl;        
    writing-mode: vertical-rl;
    text-transform:uppercase;    
    font-size-adjust:0.5;
    text-orientation: upright;
}
代码语言:javascript
复制
<button class="btn btn-primary topdown-button">
    <div>お客様</div>
</button>
<button class="btn btn-primary topdown-button">
    <div>Basic 2</div>
</button>

票数 3
EN

Stack Overflow用户

发布于 2016-06-02 04:44:53

已更新

下面的示例跨浏览器工作,而https://developer.mozilla.org/en-US/docs/Web/CSS/text-orientation (还没有)这样做。

最简单的方法是使用<br>、手动添加或使用脚本。

代码语言:javascript
复制
var elems = document.querySelectorAll('.test div');
for (var i = 0; i < elems.length; i++) {
  elems[i].innerHTML = elems[i].textContent.split('').join('<br>')
}
代码语言:javascript
复制
.topdown-button{    
    max-height: 150px;
    min-height: 150px;
    width: 60px;
    border: 3px solid navy;
    vertical-align: top;
    display: inline-block;
}
.topdown-button div{  
    text-transform: uppercase;
    vertical-align:top;
    font-size:18px;
    min-height: 148px;
    position:relative;
    text-align:center;
    text-transform:uppercase;    
    font-size-adjust:0.5;
}

.divider{
    border-top: 1px solid;
    padding: 10px 0;
    margin-top: 10px;
}
代码语言:javascript
复制
<button class="btn btn-primary topdown-button">
  <div>お<br>客<br>様</div>
</button>
<button class="btn btn-primary topdown-button">
  <div>B<br>a<br>s<br>i<br>c<br>2</div>
</button>

<div class="divider">Sample using script</div>

<button class="btn btn-primary topdown-button test">
  <div>お客様</div>
</button>
<button class="btn btn-primary topdown-button test">
  <div>Basic2</div>
</button>  

2:nd替代,使用word-break

代码语言:javascript
复制
.topdown-button{    
    max-height: 150px;
    min-height: 150px;
    width: 60px;
    border: 3px solid navy;
    vertical-align: top;
    display:block;
    text-align: center;
}
.topdown-button div{  
    text-transform: uppercase;
    font-size:18px;
    min-height: 148px;
    position:relative;
    text-align:center;
    margin: 0 auto;
    word-break: break-all;
    width: 12px;
}
代码语言:javascript
复制
<button class="btn btn-primary topdown-button">
    <div>お客様</div>
</button>
<button class="btn btn-primary topdown-button">
    <div>Basic2</div>
</button>

票数 3
EN

Stack Overflow用户

发布于 2016-06-02 13:46:13

您可以使用柔性盒使您的css看起来更干净。看这个钢笔

代码语言:javascript
复制
<button class="btn btn-primary topdown-button">
    <div>お</div>
    <div>客</div>
    <div>様</div>
</button>
<button class="btn btn-primary topdown-button">
    <div>B</div>
    <div>A</div>
    <div>S</div>
    <div>I</div>
    <div>C</div>
    <br>
    <div>2</div>
</button>

CSS

代码语言:javascript
复制
.topdown-button{    
    max-height: 150px;
    min-height: 150px;
    width: 60px;
    border: 3px solid navy;
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.topdown-button div{  
    text-transform: uppercase;
    font-size:18px;
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37582744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档