如何使用flexbox布局垂直居中旋转文本?我想要一些看起来像这样的东西:
这是我到目前为止所拥有的:
html, body { height: 100%; }
body { background-color: #efefef; }
body > div {
align-content: center;
background-color: white;
border: 1px solid black;
display: flex;
height: 100%;
width: 25px;
}
body > div > div {
flex: 1;
transform: rotate(-90deg);
}
<div>
<div>
Where did I go?
</div>
</div>
答案 0 :(得分:5)
添加white-space: nowrap
并使用以下方式水平和垂直居中
align-items: center;
justify-content: center;
(你不需要flex: 1
!)
同时删除浏览器边距并添加到box-sizing: border-box
以添加最后润色。
见下面的演示:
* {
box-sizing: border-box;
}
html,
body {
height: 100%;
margin: 0;
}
body {
background-color: #efefef;
}
body > div {
background-color: white;
border: 1px solid black;
display: flex;
height: 100%;
width: 25px;
align-items: center;
white-space: nowrap;
justify-content: center;
}
body > div > div {
transform: rotate(-90deg);
}
<div>
<div>
Where did I go?
</div>
</div>
答案 1 :(得分:2)
您可以通过更改代码中的一些内容来实现此目的:
white-space: nowrap;
。justify-content: center;
。align-content
更改为align-items
。
html, body { height: 100%; }
body { background-color: #efefef; }
body > div {
align-items: center;
justify-content: center;
background-color: white;
border: 1px solid black;
display: flex;
height: 100%;
width: 25px;
}
body > div > div {
white-space: nowrap;
transform: rotate(-90deg);
}
&#13;
<div>
<div>
Where did I go?
</div>
</div>
&#13;
*注意您也可以从内部div中移除flex: 1;
,因为它没有做任何事情。