最终我想要得到这样的东西(忘记周围的白色边框是由于剪切造成的):
此元素必须位于以下标记内,我无法轻易更改:
<div style="position:absolute;top:15px;right:15px;bottom:15px;left:15px">
<div style="display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;height:100%;">
<div style="position:relative;-webkit-flex:1;-ms-flex:1;flex:1;width:100%;height:100%;">
<div style="position:absolute;top:0;left:0;right:0;bottom:0;">
<!-- place elements here -->
</div>
</div>
</div>
</div>
<div class="split-container">
<div class="split-heading">
<h3>Heading</h3>
</div>
<div class="split-content">
<p>Content</p>
</div>
</div>
.split-container {
display: flex;
height: 100%;
}
.split-heading {
background-color: rgb(198,89,17);
color: #fff;
padding: 0 5px; /* Add padding to the sides */
}
.split-heading > h3 {
transform: rotate(-90deg);
transform-origin: bottom right;
}
.split-content {
flex-grow: 100;
background-color: rgb(244,176,132);
color: #fff;
}
https://codepen.io/thothal/pen/qBwxEKO
如果您将 css 更改为:
.split-heading {
background-color: rgb(198, 89, 17);
color: #fff;
padding: 0 5px; /* Add padding to the sides */
display: flex;
align-items: center;
}
.split-heading > h3 {
writing-mode: sideways-lr;
text-align: center;
}
.split-content {
flex-grow: 100;
background-color: rgb(244, 176, 132);
color: #fff;
display: flex;
align-items: center;
}
基本上:使用align-items: center为元素添加flex显示,这样你就可以将div中的元素垂直居中。
writing-mode
属性垂直显示文本,然后将其旋转 180 度,以翻转它。display: flex
、align-items: center
添加到 split-heading
类以使其居中。display: flex
、justify-content: center
添加到 split-content
类以使其居中。.split-container {
display: flex;
height: 100%;
}
.split-heading {
background-color: rgb(198,89,17);
color: #fff;
padding: 0 5px; /* Add padding to the sides */
display: flex;
align-items: center;
}
.split-heading > h3 {
transform: rotate(180deg);
writing-mode: vertical-lr;
margin: 0px;
text-align: center;
}
.split-content {
flex-grow: 100;
background-color: rgb(244,176,132);
color: #fff;
display: flex;
align-items: center;
}
<div style="position:absolute;top:15px;right:15px;bottom:15px;left:15px">
<div style="display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;height:100%;">
<div style="position:relative;-webkit-flex:1;-ms-flex:1;flex:1;width:100%;height:100%;">
<div style="position:absolute;top:0;left:0;right:0;bottom:0;">
<div class="split-container">
<div class="split-heading">
<h3>Heading</h3>
</div>
<div class="split-content">
<p>Content</p>
</div>
</div>
</div>
</div>
</div>
</div>