层叠阴影卡片

  1. <!--
  2. * @Author: hhn
  3. * @Date: 2020-09-01 15:14:35
  4. * @lastEditTime: Do not edit
  5. * @Description: In User Settings Edit
  6. * @FilePath: \codehub\study\studied\html\cascade.html
  7. -->
  8. <!DOCTYPE html>
  9. <html lang="en">
  10. <head>
  11. <meta charset="utf-8">
  12. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  13. <meta name="divport" content="width=device-width, initial-scale=1">
  14. <title>层叠阴影卡片</title>
  15. <style>
  16. .cascade {
  17. position: relative;
  18. z-index: 10;
  19. min-height: 200px;
  20. box-shadow: 0 10px 40px -10px rgba(0, 64, 128, .2);
  21. z-index: 10;
  22. background: #fff;
  23. }
  24. .cascade div {
  25. border-radius: 8px;
  26. box-shadow: inherit;
  27. background: inherit;
  28. position: absolute;
  29. }
  30. .cascade div:nth-child(1) {
  31. width: 100%;
  32. height: 100%;
  33. z-index: 11;
  34. bottom: 0;
  35. left: 0;
  36. background: inherit;
  37. }
  38. .cascade div:nth-child(2) {
  39. width: calc(100% - 20px);
  40. height: 30px;
  41. bottom: -15px;
  42. left: 10px;
  43. z-index: 9;
  44. }
  45. .cascade div:nth-child(3) {
  46. width: calc(100% - 40px);
  47. height: 30px;
  48. bottom: -30px;
  49. left: 20px;
  50. z-index: 8;
  51. }
  52. .cascade div:nth-child(4) {
  53. width: calc(100% - 60px);
  54. height: 30px;
  55. bottom: -45px;
  56. left: 30px;
  57. z-index: 7;
  58. }
  59. </style>
  60. </head>
  61. <body>
  62. <div class="cascade">
  63. <div>555</div>
  64. <div></div>
  65. <div></div>
  66. <div></div>
  67. </div>
  68. </body>
  69. </html>

image.png

卡片翻转

主要利用的CSS3的perspective结合transform:ratateY()属性完成。当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。需要注意的是:perspective 属性只影响 3D 转换元素。

实现思路就是将两个要展示的div利用定位重叠在一起,其中一个首先围绕Y轴旋转一定角度,还要加上一个关键属性backface-visibility:hidden (该属性定义当元素不面向屏幕时是否可见)。如果不加上这个属性的话,那么就会始终只能看到一张卡片了。
点击查看【juejin】