index.less 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. .app-page {
  2. display: flex;
  3. height: 100%;
  4. &__sidebar {
  5. height: 100%;
  6. overflow-y: auto;
  7. -webkit-overflow-scrolling: touch;
  8. }
  9. &__wrapper {
  10. flex: 1;
  11. display: flex;
  12. flex-direction: column;
  13. background-color: #e7ebed;
  14. overflow: hidden;
  15. }
  16. &__wrapper &__header {
  17. .icon-fold-expand {
  18. margin-right: 10px;
  19. [class^='g-icon']::before {
  20. font-size: 20px;
  21. cursor: pointer;
  22. }
  23. .g-icon--expand::before {
  24. content: var(--icon-expand);
  25. }
  26. .g-icon--fold::before {
  27. content: var(--icon-fold);
  28. }
  29. }
  30. }
  31. &__wrapper &__main {
  32. min-height: 100%;
  33. }
  34. &__wrapper &__tabs {
  35. flex: 1;
  36. overflow: hidden;
  37. }
  38. &__wrapper &__teleport {
  39. position: absolute;
  40. left: 0;
  41. top: 0;
  42. width: 100%;
  43. /* teleport 为空时隐藏元素 */
  44. &:empty {
  45. display: none;
  46. }
  47. }
  48. /* teleport 非空时隐藏兄弟元素 */
  49. &__wrapper &__teleport:not(:empty)+&__main {
  50. opacity: 0;
  51. visibility: hidden;
  52. }
  53. .view-enter-from,
  54. .view-leave-to {
  55. transform: translateX(20px);
  56. opacity: 0;
  57. }
  58. .view-enter-active,
  59. .view-leave-active {
  60. pointer-events: none;
  61. will-change: opacity, transform;
  62. transition: opacity 200ms, transform 200ms;
  63. }
  64. }