【发布时间】:2016-04-24 01:39:35
【问题描述】:
在卡片中垂直对齐内容的最佳方式是什么,同时仍然允许它们在悬停时进行动画处理,以显示不同的屏幕?
例如,如果我有卡片,每张卡片都有一个显示的正面和一个在悬停时淡入的背面:
<div class="items">
<div class="item">
<div class="front">
<i class="material-icons">build</i>
<span>Item 1</span>
</div>
<div class="back">hello there</div>
</div>
<div class="item">
<div class="front">
<i class="material-icons">build</i>
<span>Item 1</span>
</div>
<div class="back">hello there</div>
</div>
<div class="item">
<div class="front">
<i class="material-icons">build</i>
<span>Item 1</span>
</div>
<div class="back">hello there</div>
</div>
</div>
然后使用这个 css:
.item {
align-items: center;
cursor: pointer;
display: flex;
flex-direction: column;
justify-content: center;
height: 200px;
background-color: tomato;
margin: 0 auto 1rem auto;
width: 200px;
position: relative;
}
.item .material-icons {
display: block;
}
.back,
.front {
opacity: 0;
position: absolute;
text-align: center;
width: 100%;
-webkit-transition: opacity .25s ease-in-out;
-moz-transition: opacity .25s ease-in-out;
-ms-transition: opacity .25s ease-in-out;
-o-transition: opacity .25s ease-in-out;
transition: opacity .25s ease-in-out;
}
.front {
opacity: 1;
}
.item:hover .front {
opacity: 0;
}
.item:hover .back {
opacity: 1;
}
.material-icons {
font-size: 5em !important;
}
但是在使用绝对位置后,我的垂直居中不起作用,我很确定这可能不是最好的方法!
你可以在这里看到一个半工作版本: http://jsfiddle.net/kmturley/8o29y7pd/26/
谢谢!
【问题讨论】:
-
您是否注意到演示在 Chrome 和 Firefox 上的输出不同?但我不能说是对还是错。
标签: css css-transitions flexbox vertical-alignment