我得到了以下标记:
$scope.$on('$destroy', $scope.myPopover.destroy);

.row {
display: flex;
align-items: stretch;
margin: -16px;
background: #ddd;
}
.row .col {
display: flex;
flex-direction: column;
justify-content: center;
flex: 1;
margin: 16px;
background: #fff;
}
.header, .content, .footer {
padding: 16px;
background: red;
}

不幸的是,第二个标题并未垂直对齐顶部。有没有办法用flexbox存档?我需要" .header"要对齐顶部和" .content"在盒子的其他部分居中。
问候!
答案 0 :(得分:0)
不,不是真的,没有另一个包装器,它是一个flex-container。
因为flexbox在某种程度上是基于操纵边距,所以没有方法(AFAIK,虽然我有兴趣知道是否有)到align-self
和然后flex:1
将一个子元素放到除中心以外的其他地方。
我会这样做:在“content”div中添加一个包装器,给它display:flex
填充标题下面的剩余空间,然后用{{justify-content:center
创建包装器.col {
height: 150px;
width: 80%;
margin: 1em auto;
border: 1px solid grey;
display: flex;
flex-direction: column;
}
.header {
background: lightblue;
}
.content {
background: orange;
}
.flexy {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
background: plum;
}
1}}。
这似乎是最合乎逻辑的方法
<div class="col">
<div class="header">Header #2</div>
<div class="flexy">
<div class="content">Lorem Ipsum
<br />Dolor</div>
</div>
</div>
AJAX
答案 1 :(得分:0)
Flexbox通过margin: auto;
打开各种机会,这是其中之一。沿着柔性轴(在这种情况下为垂直)将margin
设置为auto
将吸收任何额外的空间,然后将其在弹性项目之间进行分割。最后,可以在不创建div汤的情况下垂直居中。
.row {
display: flex;
align-items: stretch;
margin: -16px;
background: #ddd;
}
.row .col {
display: flex;
flex-direction: column;
flex: 1;
margin: 16px;
background: #fff;
}
.header, .content, .footer {
padding: 16px;
background: red;
}
.content {
margin-top: auto;
margin-bottom: auto;
}
<div class="row">
<div class="col">
<div class="header">Header #1</div>
<div class="content">Lorem Ipsum<br />Dolor<br />Sit Amet</div>
<div class="footer">Footer</div>
</div>
<div class="col">
<div class="header">Header #2</div>
<div class="content">Lorem Ipsum<br />Dolor</div>
</div>
</div>