这是我参与更文挑战的第3天,活动详情查看: 更文挑战css
当鼠标滑过包含块时,元素总体翻转 180°,以实现正反面的切换。html
card
来包裹整个翻转区域须要让正面和反面重叠在一块儿,很容易想到外层 card
用相对定位,内层正反都使用绝对定位都相对于外层 card
,使其重叠,而后须要设置反面翻转 180°,翻转隐藏背面须要添加 backface-visibility:hidden
。markdown
注意:都是绝对定位元素后来居上,因此正面须要放到反面后面,或者直接设置正面 z-index
大于反面app
翻转效果实际上是一个 3D
效果,因此这里须要用到一个属性 transform-style
使得子元素可以表现出翻转效果,同时还要设置 transition
实现过渡动效。布局
transition
须要一个状态就是 hover
卡片时,卡片翻转也就是 card
翻转 180°post
若是想实现垂直翻转就修改 rotateY
为 rotateX
动画
若是想经过点击事件来触发翻转,那么在点击事件中添加刪除 card
的类便可ui
transition
过分backface-visibility:hidden
hover
翻转:卡片 hover
翻转 180°transform-style
使子元素 3D 空间呈现<div class="card-filp">
<div class="back"></div>
<div class="front"></div>
</div>
<style> .card-filp { height: 200px; width: 200px; position: relative; transform-style: preserve-3d; transition: 1s; } .front, .back { height: 100%; width: 100%; position: absolute; left: 0; top: 0; backface-visibility:hidden } .front { background: lightgreen; } .back { background: lightblue; } .back { transform: rotateY(180deg); } .card-filp:hover { transform: rotateY(180deg); } </style>
复制代码