CSS3是網頁設計中非常重要的一部分,通過它可以實現各種炫酷的效果。其中一個很受歡迎的效果就是基于CSS3實現的禮盒效果。
.gift-box { position: relative; margin: 0 auto; width: 100px; height: 100px; perspective: 1000px; } .gift-box .lid { position: absolute; top: 0; left: 0; width: 100%; height: 50%; background-color: red; transform-origin: top center; transform-style: preserve-3d; transition: transform 0.5s; } .gift-box .bottom { position: absolute; bottom: 0; left: 0; width: 100%; height: 50%; background-color: green; transform-origin: bottom center; transform-style: preserve-3d; transition: transform 0.5s; } .gift-box .lid:hover { transform: rotateX(-90deg); } .gift-box .bottom:hover { transform: rotateX(90deg); } .gift-box .ribbon { position: absolute; top: 40%; left: 0; right: 0; margin: 0 auto; width: 50%; height: 20px; background-color: yellow; transform-style: preserve-3d; } .gift-box .ribbon::before { content: ""; position: absolute; top: -10px; left: 0; bottom: -10px; right: 0; margin: auto; width: 20px; height: 20px; border-style: solid; border-width: 10px 0 10px 10px; border-color: transparent transparent transparent yellow; transform: rotateY(-45deg); } .gift-box .ribbon::after { content: ""; position: absolute; top: -10px; left: 0; bottom: -10px; right: 0; margin: auto; width: 20px; height: 20px; border-style: solid; border-width: 10px 10px 10px 0; border-color: transparent yellow transparent transparent; transform: rotateY(45deg); }
代碼中,我們首先定義了一個名為gift-box的div作為禮盒的容器,然后分別定義了lid和bottom兩個元素作為禮盒的蓋子和底部。我們給這兩個元素設置了position:absolute屬性,然后通過transform和transition屬性實現了蓋子和底部的翻轉效果。
接著,我們又定義了一個ribbon元素作為禮盒的絲帶,通過transform屬性實現了絲帶的3D效果。其中,我們通過::before和::after偽元素來實現了絲帶的兩端效果。
最后,我們將所有元素都組合在了gift-box的div里面,實現了禮盒的效果。通過這段代碼,我們可以了解到CSS3的一些高級特性,例如transform、transition和偽元素等。這些特性可以讓我們實現各種炫酷的效果,提升網頁的視覺體驗。
上一篇css3禁止點擊事件
下一篇css3知乎