Card01.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <script lang="ts" setup>
  2. defineProps({
  3. title: {type: String, default: null},
  4. })
  5. import header from "@/assets/images/card/header01.png";
  6. </script>
  7. <template>
  8. <div class="card-one">
  9. <div class="card-one-header">
  10. <img :src="header" alt=""/>
  11. <div class="card-one-header-main">
  12. <slot name="header">
  13. <span class="title" v-html="title"></span>
  14. </slot>
  15. <slot name="sec_header">
  16. </slot>
  17. </div>
  18. </div>
  19. <div class="card-one-body">
  20. <slot></slot>
  21. </div>
  22. </div>
  23. </template>
  24. <style lang="scss" scoped>
  25. .card-one {
  26. color: #fff;
  27. .card-one-header {
  28. position: relative;
  29. height: 2.85rem;
  30. line-height: 2.85rem;
  31. font-size: 1.2rem;
  32. font-weight: 600;
  33. padding-left: 6%;
  34. img {
  35. position: absolute;
  36. width: 100%;
  37. height: 100%;
  38. top: 0;
  39. left: 0;
  40. }
  41. .card-one-header-main {
  42. position: relative;
  43. }
  44. }
  45. .card-one-body {
  46. width: 100%;
  47. height: calc(100% - 2.85rem);
  48. padding: 10px;
  49. position: relative;
  50. background-color: rgba(3, 37, 77, 0.8);
  51. border: 1px transparent solid;
  52. }
  53. }
  54. .card-one + .card-one {
  55. margin-top: 10px;
  56. }
  57. .card-one.merge + .card-one.merge {
  58. margin-top: 0;
  59. }
  60. </style>