近期學(xué)習(xí)c3,了解到兩面翻轉(zhuǎn)的盒子的兩種制作方式:
利用偽元素before、after,只創(chuàng)建一個(gè)div
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*先清掉默認(rèn)的樣式*/
body {
margin: 0;
padding: 0;
background-color: bisque;
}
/*給創(chuàng)建的div設(shè)置寬高和加上3D效果,且加上定位,方便后期的動(dòng)畫(huà)操作*/
.box {
width: 300px;
height: 300px;
margin: 100px auto;
position: relative;
transform-style: preserve-3d;
transition: all 5s;
}
/*給偽元素before和after設(shè)置寬高,以及定位,
*此處用上下左右都為0的方法,使得before和after兩個(gè)盒子緊貼父元素,達(dá)到這兩個(gè)盒子與父盒子同款同高
*也可以采用width=100% height=100%的方法
*/
.box::before,.box::after {
content: '';
display: block;
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
}
.box::before {
background: url("images/bg.png") right bottom;/*這里是設(shè)置背景圖*/
transform: translateZ(0px);/*利用偽元素的話,這里就必須要加上,但是根據(jù)瀏覽器的不同,這里給的值也就不同*/
}
.box::after {
background: url("images/bg.png") left bottom;
transform: translateZ(0px);/*利用偽元素的話,這里就必須要加上,但是根據(jù)瀏覽器的不同,這里給的值也就不同*/
}
.box:hover {
transform: rotateY(180deg);
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
進(jìn)一步優(yōu)化——不采用偽元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
margin: 0;
padding: 0;
background-color: salmon;
}
div {
width: 224px;
height: 224px;
position: relative;
}
img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transition: all 1s;
}
img:last-child {
backface-visibility: hidden;
}
div:hover img {
transform: rotateY(180deg);
}
</style>
</head>
<body>
<div>
<img src="images/hou.svg" alt="">
<img src="images/qian.svg" alt="">
</div>
</body>
</html>
一個(gè)盒子里面裝兩個(gè)同寬高的盒子,利用backface-visibility設(shè)置元素背面是否可見(jiàn)的屬性,達(dá)到兩面翻轉(zhuǎn)的效果