03.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <template>
  2. <div class="three">
  3. <div class="bg-green"></div>
  4. <div class="bg-line"></div>
  5. <div class="container">
  6. <div v-for="i in 16">
  7. <div class="bg"></div>
  8. <div class="row"></div>
  9. <div class="colums"></div>
  10. <css-grid-common-03 :ifShow="i|ifSHow" :index="i"/>
  11. </div>
  12. </div>
  13. </div>
  14. </template>
  15. <script>
  16. const { log: print } = console;
  17. export default {
  18. filters: {
  19. ifSHow: function (value) {
  20. let show = false;
  21. if (value < 6 || value === 9 || value === 13 || value === 17) {
  22. show = true;
  23. }
  24. return show;
  25. }
  26. }
  27. };
  28. </script>
  29. <style lang="less">
  30. .arrow{
  31. top: 0;
  32. right: 0;
  33. bottom: 0;
  34. left: 0;
  35. }
  36. .three {
  37. border: 4px solid #ddd;
  38. border-radius: 10px;
  39. padding: 100px 20px 20px 100px;
  40. position: relative;
  41. .bg-green {
  42. top: 90px;
  43. right: 10px;
  44. bottom: 10px;
  45. left: 90px;
  46. position: absolute;
  47. background-color: #69b251;
  48. }
  49. .bg-line {
  50. top: 89px;
  51. right: 19px;
  52. bottom: 19px;
  53. left: 89px;
  54. position: absolute;
  55. }
  56. .container {
  57. grid-template-columns: repeat(4, 1fr);
  58. grid-template-rows: repeat(4, 100px);
  59. margin: 0;
  60. & > div {
  61. background-color: rgba(105, 178, 81, 0) !important;
  62. min-height: 100px;
  63. position: relative;
  64. border: 2px solid black;
  65. box-sizing: border-box;
  66. .bg {
  67. @removing: 10px;
  68. position: absolute;
  69. top: @removing;
  70. left: @removing;
  71. right: @removing;
  72. bottom: @removing;
  73. background-color: white;
  74. z-index: 10;
  75. }
  76. .row {
  77. position: absolute;
  78. .arrow();
  79. z-index: 12;
  80. &:before {
  81. position: absolute;
  82. top: -4px;
  83. left: -30px;
  84. content: "";
  85. display: block;
  86. height: 4px;
  87. width: calc(100% + 40px);
  88. background-color: black;
  89. }
  90. &:after {
  91. position: absolute;
  92. bottom: -4px;
  93. left: -30px;
  94. content: "";
  95. display: block;
  96. height: 4px;
  97. width: calc(100% + 40px);
  98. background-color: black;
  99. }
  100. }
  101. .colums {
  102. position: absolute;
  103. .arrow();
  104. z-index: 12;
  105. &:before {
  106. position: absolute;
  107. left: -4px;
  108. top: -30px;
  109. content: "";
  110. display: block;
  111. width: 4px;
  112. height: calc(100% + 40px);
  113. background-color: black;
  114. }
  115. &:after {
  116. position: absolute;
  117. right: -4px;
  118. top: -30px;
  119. content: "";
  120. display: block;
  121. width: 4px;
  122. height: calc(100% + 40px);
  123. background-color: black;
  124. }
  125. }
  126. &:nth-child(1) {
  127. }
  128. }
  129. }
  130. }
  131. </style>