Header.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <template>
  2. <nav class="navbar">
  3. <div class="container">
  4. <div class="navbar-translate">
  5. <a class="navbar-brand">众测</a>
  6. <button
  7. class="navbar-toggler"
  8. type="button"
  9. data-toggle="collapse"
  10. aria-expanded="false"
  11. aria-label="Toggle navigation"
  12. >
  13. <span class="navbar-toggler-icon"></span>
  14. <span class="navbar-toggler-icon"></span>
  15. <span class="navbar-toggler-icon"></span>
  16. </button>
  17. </div>
  18. <div class="collapse navbar-collapse">
  19. <ul class="navbar-nav ml-auto">
  20. <li class="dropdown nav-item">
  21. <router-link to="/home">
  22. <a class="dropdown-toggle nav-link" data-toggle="dropdown">
  23. <img class="icon" src="@/assets/img/home_icon.svg">
  24. <span>首页</span>
  25. </a>
  26. </router-link>
  27. </li>
  28. <li class="dropdown nav-item">
  29. <router-link to="/square">
  30. <a class="dropdown-toggle nav-link" data-toggle="dropdown">
  31. <img class="icon" src="@/assets/img/square_icon.svg">
  32. <span>任务广场</span>
  33. </a>
  34. </router-link>
  35. </li>
  36. <li class="dropdown nav-item">
  37. <router-link to="/mine">
  38. <a class="dropdown-toggle nav-link" data-toggle="dropdown">
  39. <img class="icon" src="@/assets/img/mine_icon.svg">
  40. <span>我的众测</span>
  41. </a>
  42. </router-link>
  43. <div class="dropdown-menu dropdown-with-icons">
  44. <a href="./sections.html#headers" class="dropdown-item">
  45. <i class="material-icons"></i> Headers
  46. </a>
  47. <a href="./sections.html#features" class="dropdown-item">
  48. <i class="material-icons"></i> Features
  49. </a>
  50. </div>
  51. </li>
  52. </ul>
  53. </div>
  54. </div>
  55. </nav>
  56. </template>
  57. <script>
  58. export default {
  59. name: "header-container"
  60. };
  61. </script>
  62. <style lang="less" scoped>
  63. .navbar {
  64. background-color: #fff !important;
  65. box-shadow: none;
  66. padding-top: 10px;
  67. padding-bottom: 10px;
  68. color: #000;
  69. transition: all 0.15s ease 0s;
  70. display: flex;
  71. flex-wrap: wrap;
  72. align-items: center;
  73. justify-content: space-between;
  74. }
  75. @media (max-width: 991px) {
  76. [class*="navbar-expand-"] > .container {
  77. padding-left: 15px;
  78. padding-right: 15px;
  79. }
  80. }
  81. .navbar > .container {
  82. display: flex;
  83. flex-wrap: wrap;
  84. align-items: center;
  85. justify-content: space-between;
  86. flex: 1;
  87. }
  88. .navbar .navbar-brand {
  89. position: relative;
  90. color: inherit;
  91. font-size: 1.8rem;
  92. line-height: 30px;
  93. padding: 10px 0;
  94. margin-right: 1rem;
  95. display: inline-block;
  96. white-space: nowrap;
  97. }
  98. @media (max-width: 991px) {
  99. .navbar .navbar-translate {
  100. width: 100%;
  101. position: relative;
  102. display: flex;
  103. -ms-flex-pack: justify !important;
  104. justify-content: space-between !important;
  105. -ms-flex-align: center;
  106. align-items: center;
  107. transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
  108. }
  109. }
  110. .navbar-collapse {
  111. flex-basis: 100%;
  112. flex-grow: 1;
  113. align-items: center;
  114. }
  115. @media (max-width: 991px) {
  116. .navbar-collapse {
  117. position: fixed;
  118. display: block;
  119. top: 0;
  120. height: 100vh;
  121. width: 230px;
  122. right: 0;
  123. margin-right: 0 !important;
  124. z-index: 1032;
  125. visibility: visible;
  126. background-color: #999;
  127. overflow-y: visible;
  128. border-top: none;
  129. text-align: left;
  130. padding-right: 0;
  131. padding-left: 0;
  132. max-height: none !important;
  133. -webkit-transform: translate3d(230px, 0, 0);
  134. transform: translate3d(230px, 0, 0);
  135. transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
  136. }
  137. }
  138. @media (min-width: 992px) {
  139. .navbar-collapse {
  140. display: flex !important;
  141. flex-basis: auto;
  142. }
  143. }
  144. [type="reset"],
  145. [type="submit"],
  146. button,
  147. html [type="button"] {
  148. -webkit-appearance: button;
  149. }
  150. .navbar-toggler {
  151. padding: 0.25rem 0.75rem;
  152. font-size: 1.25rem;
  153. line-height: 1;
  154. background-color: transparent;
  155. border: 1px solid transparent;
  156. border-radius: 0.25rem;
  157. outline: none;
  158. }
  159. .navbar-toggler:not(:disabled):not(.disabled) {
  160. cursor: pointer;
  161. }
  162. @media (min-width: 992px) {
  163. .navbar-toggler {
  164. display: none;
  165. }
  166. }
  167. @media (max-width: 991px) {
  168. .navbar.navbar-transparent .navbar-toggler .navbar-toggler-icon {
  169. background-color: #fff;
  170. }
  171. }
  172. .navbar .navbar-toggler .navbar-toggler-icon + .navbar-toggler-icon {
  173. margin-top: 4px;
  174. }
  175. .navbar .navbar-toggler .navbar-toggler-icon {
  176. width: 22px;
  177. height: 2px;
  178. vertical-align: middle;
  179. outline: 0;
  180. display: block;
  181. border-radius: 1px;
  182. }
  183. .navbar .navbar-toggler .navbar-toggler-icon {
  184. background-color: #555;
  185. }
  186. .navbar-toggler-icon {
  187. display: inline-block;
  188. width: 1.5em;
  189. height: 1.5em;
  190. vertical-align: middle;
  191. content: "";
  192. background: no-repeat 50%;
  193. background-size: 100% 100%;
  194. }
  195. .navbar-nav {
  196. display: flex;
  197. flex-direction: column;
  198. padding-left: 0;
  199. margin-bottom: 0;
  200. list-style: none;
  201. }
  202. @media (min-width: 991px) {
  203. .navbar .navbar-nav {
  204. align-items: center;
  205. }
  206. }
  207. @media (min-width: 992px) {
  208. .navbar-nav {
  209. flex-direction: row;
  210. }
  211. }
  212. .ml-auto,
  213. .mx-auto {
  214. margin-left: auto !important;
  215. }
  216. .collapsing,
  217. .dropdown,
  218. .dropup {
  219. position: relative;
  220. }
  221. .dropdown-menu {
  222. position: absolute;
  223. top: 100%;
  224. left: 0;
  225. z-index: 1000;
  226. float: left;
  227. min-width: 10rem;
  228. padding: 0.5rem 0;
  229. margin: 0.125rem 0 0;
  230. font-size: 1rem;
  231. color: #212529;
  232. text-align: left;
  233. list-style: none;
  234. background-color: #fff;
  235. background-clip: padding-box;
  236. border: 1px solid rgba(0, 0, 0, 0.15);
  237. border-radius: 0.25rem;
  238. box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2),
  239. 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  240. display: none;
  241. padding: 0.3125rem 0;
  242. border: 0;
  243. opacity: 0;
  244. transform: scale(0);
  245. transform-origin: 0 0;
  246. will-change: transform, opacity;
  247. transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
  248. opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  249. box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
  250. }
  251. .navbar-nav .dropdown-menu {
  252. float: none;
  253. }
  254. @media (min-width: 992px) {
  255. .navbar-nav .dropdown-menu {
  256. position: absolute;
  257. }
  258. }
  259. @media (min-width: 992px) {
  260. .navbar-nav .nav-link {
  261. padding-right: 0.5rem;
  262. padding-left: 0.5rem;
  263. }
  264. }
  265. .navbar .navbar-nav .nav-item .nav-link {
  266. padding: 15px;
  267. text-align: center;
  268. height: 20px;
  269. vertical-align: middle;
  270. color: inherit;
  271. display: block;
  272. }
  273. .nav-link > span {
  274. /* font-size: 1.2rem; */
  275. height: 100%;
  276. vertical-align: middle;
  277. display: inline-block;
  278. line-height: 20px;
  279. }
  280. </style>