[英]Flexbox vertical align specific content within a wrapper?
我的CMS設置相當嚴格,有2列標題和內容,如下所示:
.wrapper { overflow: auto; border: 1px solid #ccc; text-align: center; display: -ms-flexbox; display: -webkit-flex; display: flex; -ms-flex-align: center; -webkit-align-items: center; -webkit-box-align: center; align-items: center; } .left, .right { float: left; width: 45%; padding: 5px; }
<div class="wrapper"> <div class="left"> <h3>Title (should be aligned to top)</h3> <div class="content"> left<br> left<br> left<br> left<br> </div> </div> <div class="right"> <h3>Title (should be aligned to top)</h3> <div class="content"> right </div> </div> </div>
我想讓每列的.content
垂直對齊到中間,但保持標題h3
垂直對齊到頂部。
通常我會使用flexbox實現垂直對齊:
.wrapper {
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-align: center;
-webkit-align-items: center;
-webkit-box-align: center;
align-items: center;
}
但當然這會影響.wrapper
所有元素。
有人會知道我可以“定位” .content
類並獲得相同效果的方式(記住我不能真正改變HTML)嗎?
這是一種黑客,但它有效:
從wrapper
移除align-items: center
,並left
和right
flex:1
到flex子項
使內left
和right
容器中的column flexbox
和中間的h3
和content
使用justify-content:center
使用margin-bottom:auto
將h3
推到頂部並允許content
保持在中間位置。
見下面的演示:
.wrapper { overflow: auto; border: 1px solid #ccc; text-align: center; display: -ms-flexbox; display: -webkit-flex; display: flex; } .left, .right { padding: 5px; display: flex; flex-direction: column; justify-content: center; flex: 1; } .left h3, .right h3 { margin-bottom: auto; } .content { margin-bottom: auto; }
<div class="wrapper"> <div class="left"> <h3> Title (should be aligned to top) </h3> <div class="content"> left <br>left <br>left <br>left <br> </div> </div> <div class="right"> <h3> Title (should be aligned to top) </h3> <div class="content"> right </div> </div> </div>
檢查這個小提琴
.wrapper {
overflow: auto;
border: 1px solid #ccc;
text-align: center;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-align: flex-start;
-webkit-align-items: flex-start;
-webkit-box-align: flex-start;
align-items: flex-start; // changed
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.