這是我參與更文挑戰的第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>
複製代碼