path2.css 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. .path-box {
  2. width: 100%;
  3. height: 100%;
  4. --color: #0094ff;
  5. --fs: 16px;
  6. --pt: 5px;
  7. --minW: 80px; }
  8. .path-box .carousel {
  9. height: 100%;
  10. display: flex;
  11. flex-direction: column;
  12. justify-content: center;
  13. align-items: center; }
  14. .path-box .carousel .carousel-inner {
  15. width: 89%;
  16. height: auto; }
  17. .path-box .carousel .carousel-control {
  18. width: 4.5%; }
  19. .path-box .carousel .carousel-control.carousel-control-prev {
  20. background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 0.2)); }
  21. .path-box .carousel .carousel-control.carousel-control-next {
  22. background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.01)); }
  23. .path-box .round-box {
  24. position: relative;
  25. width: 100%;
  26. height: auto;
  27. display: flex;
  28. justify-content: center;
  29. padding-bottom: 20px;
  30. --nodeW: 50px; }
  31. .path-box .round-box .line-v {
  32. height: calc(100% - 15px - var(--nodeW));
  33. width: 10px;
  34. background-color: var(--color);
  35. position: absolute;
  36. top: var(--nodeW);
  37. left: calc(50% - 4px);
  38. z-index: 0; }
  39. .path-box .round-box .line-v:before {
  40. content: "";
  41. position: absolute;
  42. border-left: 10px solid transparent;
  43. border-right: 10px solid transparent;
  44. border-top: 20px solid var(--color);
  45. left: -5px;
  46. bottom: -15px; }
  47. .path-box .round-box .round-node {
  48. position: relative;
  49. width: var(--nodeW);
  50. height: var(--nodeW);
  51. border-radius: 50%;
  52. color: #fff;
  53. border: 1px solid var(--color);
  54. background: var(--color);
  55. display: flex;
  56. justify-content: center;
  57. align-items: center;
  58. z-index: 1; }
  59. .path-box .round-box .round-node.start-node {
  60. width: auto;
  61. height: calc(var(--nodeW) - 10px);
  62. white-space: nowrap;
  63. padding: 5px 20px;
  64. border-radius: 4px; }
  65. .path-box .round-box .round-node.start-node:before {
  66. border: none; }
  67. .path-box .round-box .sfb-box {
  68. width: 42%;
  69. min-height: 100px;
  70. border: 2px solid var(--color);
  71. border-radius: 5px;
  72. padding: 0;
  73. margin-top: 10px;
  74. --w: calc(4%);
  75. --sw: 170px;
  76. --margin: calc(var(--w)); }
  77. .path-box .round-box .sfb-box:before {
  78. content: "";
  79. position: absolute;
  80. background: var(--color);
  81. width: var(--w);
  82. height: 10px;
  83. top: calc(var(--nodeW)/2 - 5px); }
  84. .path-box .round-box .sfb-box .sfb-title {
  85. width: 100%;
  86. text-align: center;
  87. font-size: calc(var(--fs) * 1.2);
  88. padding: var(--pt) 0;
  89. font-weight: 600;
  90. border-bottom: 1px solid var(--color);
  91. color: #fff;
  92. background: var(--color);
  93. border-bottom: 1px solid var(--color); }
  94. .path-box .round-box .sfb-box .sbf-body {
  95. padding: var(--pt) 5px;
  96. font-size: var(--fs); }
  97. .path-box .round-box .sfb-box .sbf-body .sf-box {
  98. width: 100%;
  99. border: 1px solid var(--color);
  100. border-radius: 3px;
  101. margin: 5px 0;
  102. display: flex; }
  103. .path-box .round-box .sfb-box .sbf-body .sf-box .sf-name {
  104. width: auto;
  105. max-width: var(--minW);
  106. padding: 3px 5px;
  107. background: var(--color);
  108. color: #eee;
  109. overflow: hidden;
  110. text-overflow: ellipsis;
  111. white-space: nowrap;
  112. /* flex-wrap: wrap;
  113. display: flex;
  114. justify-content: center;
  115. align-items: center;*/ }
  116. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box {
  117. width: calc(100% - var(--minW));
  118. display: flex;
  119. justify-content: center;
  120. align-items: center;
  121. flex-wrap: wrap; }
  122. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .node {
  123. --line: 12px;
  124. position: relative;
  125. width: var(--line);
  126. height: var(--line);
  127. border-radius: 50%;
  128. border: 2px solid var(--color);
  129. margin: 0 1px; }
  130. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .node.end {
  131. background: var(--color); }
  132. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .arrow {
  133. display: flex;
  134. justify-content: center;
  135. align-items: center;
  136. position: relative;
  137. width: 10px;
  138. height: 4px;
  139. background: var(--color);
  140. margin-right: 3px; }
  141. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .arrow:before {
  142. content: "";
  143. position: absolute;
  144. border-top: 4px solid transparent;
  145. border-bottom: 4px solid transparent;
  146. border-left: 7px solid var(--color);
  147. right: -3px; }
  148. .path-box .round-box .sfb-box.left {
  149. margin-right: calc(var(--margin) - 5px); }
  150. .path-box .round-box .sfb-box.left:before {
  151. right: calc(50% + var(--nodeW)/2 - 2px); }
  152. .path-box .round-box .sfb-box.right {
  153. margin-left: calc(var(--margin) - 5px); }
  154. .path-box .round-box .sfb-box.right:before {
  155. left: calc(50% + var(--nodeW)/2 - 2px); }
  156. .path-box .round-box:first-child {
  157. padding-bottom: 40px; }
  158. .path-box .round-box:first-child .line-v {
  159. height: calc(100% - 15px - var(--nodeW) + 10px);
  160. top: calc(var(--nodeW) - 10px); }
  161. .path-box .round-box.start {
  162. --color: #049e9a; }
  163. .path-box .round-box.end {
  164. --color: #FF3366; }