Commit 0dd14040ec40ad62e75f348f91a7acbedcea0e2b
1 parent
2521f09e
路由 favicon scss stick-footer reset.css 懒加载
Showing
15 changed files
with
284 additions
and
125 deletions
webintroduce/build/webpack.base.conf.js
... | ... | @@ -64,7 +64,18 @@ module.exports = { |
64 | 64 | limit: 10000, |
65 | 65 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') |
66 | 66 | } |
67 | + }, | |
68 | + { | |
69 | + test: /\.scss$/, | |
70 | + use: [{ | |
71 | + loader: "style-loader" // creates style nodes from JS strings | |
72 | + }, { | |
73 | + loader: "css-loader" // translates CSS into CommonJS | |
74 | + }, { | |
75 | + loader: "sass-loader" // compiles Sass to CSS | |
76 | + }] | |
67 | 77 | } |
78 | + | |
68 | 79 | ] |
69 | 80 | }, |
70 | 81 | node: { | ... | ... |
webintroduce/index.html
... | ... | @@ -2,8 +2,9 @@ |
2 | 2 | <html> |
3 | 3 | <head> |
4 | 4 | <meta charset="utf-8"> |
5 | - <meta name="viewport" content="width=device-width,initial-scale=1.0"> | |
6 | - <title>webintroduce</title> | |
5 | + <!--<meta name="viewport" content="width=device-width,initial-scale=1.0">--> | |
6 | + <link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico"> | |
7 | + <title>任你停官网</title> | |
7 | 8 | </head> |
8 | 9 | <body> |
9 | 10 | <div id="app"></div> | ... | ... |
webintroduce/package-lock.json
... | ... | @@ -4963,8 +4963,7 @@ |
4963 | 4963 | }, |
4964 | 4964 | "js-yaml": { |
4965 | 4965 | "version": "3.7.0", |
4966 | - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", | |
4967 | - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", | |
4966 | + "resolved": "", | |
4968 | 4967 | "dev": true, |
4969 | 4968 | "requires": { |
4970 | 4969 | "argparse": "^1.0.7", |
... | ... | @@ -9513,6 +9512,18 @@ |
9513 | 9512 | "mkdirp": "~0.5.1", |
9514 | 9513 | "sax": "~1.2.1", |
9515 | 9514 | "whet.extend": "~0.9.9" |
9515 | + }, | |
9516 | + "dependencies": { | |
9517 | + "js-yaml": { | |
9518 | + "version": "3.7.0", | |
9519 | + "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.7.0.tgz", | |
9520 | + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", | |
9521 | + "dev": true, | |
9522 | + "requires": { | |
9523 | + "argparse": "^1.0.7", | |
9524 | + "esprima": "^2.6.0" | |
9525 | + } | |
9526 | + } | |
9516 | 9527 | } |
9517 | 9528 | }, |
9518 | 9529 | "tapable": { | ... | ... |
webintroduce/package.json
... | ... | @@ -31,6 +31,7 @@ |
31 | 31 | "friendly-errors-webpack-plugin": "^1.6.1", |
32 | 32 | "html-webpack-plugin": "^2.30.1", |
33 | 33 | "node-notifier": "^5.1.2", |
34 | + "node-sass": "^4.11.0", | |
34 | 35 | "optimize-css-assets-webpack-plugin": "^3.2.0", |
35 | 36 | "ora": "^1.2.0", |
36 | 37 | "portfinder": "^1.0.13", |
... | ... | @@ -38,6 +39,7 @@ |
38 | 39 | "postcss-loader": "^2.0.8", |
39 | 40 | "postcss-url": "^7.2.1", |
40 | 41 | "rimraf": "^2.6.0", |
42 | + "sass-loader": "^7.1.0", | |
41 | 43 | "semver": "^5.3.0", |
42 | 44 | "shelljs": "^0.7.6", |
43 | 45 | "uglifyjs-webpack-plugin": "^1.1.1", | ... | ... |
webintroduce/src/App.vue
1 | 1 | <template> |
2 | 2 | <div id="app"> |
3 | - <img src="./assets/logo.png"> | |
4 | - <router-view/> | |
3 | + <VHeader></VHeader> | |
4 | + <div class="main-wrap"> | |
5 | + <router-view/> | |
6 | + </div> | |
7 | + | |
8 | + <VFooter></VFooter> | |
5 | 9 | </div> |
6 | 10 | </template> |
7 | 11 | |
8 | 12 | <script> |
13 | +import VHeader from './components/VHeader' | |
14 | +import VFooter from './components/VFooter' | |
9 | 15 | export default { |
10 | - name: 'App' | |
16 | + name: 'App', | |
17 | + components:{ | |
18 | + VHeader, | |
19 | + VFooter | |
20 | + } | |
11 | 21 | } |
12 | 22 | </script> |
13 | 23 | |
14 | 24 | <style> |
15 | 25 | #app { |
26 | + display: flex; | |
27 | + flex-flow: column; | |
28 | + min-height: 100vh; | |
16 | 29 | font-family: 'Avenir', Helvetica, Arial, sans-serif; |
17 | 30 | -webkit-font-smoothing: antialiased; |
18 | 31 | -moz-osx-font-smoothing: grayscale; |
19 | 32 | text-align: center; |
20 | 33 | color: #2c3e50; |
21 | - margin-top: 60px; | |
22 | 34 | } |
35 | + .main-wrap{ | |
36 | + flex: 1; | |
37 | + } | |
23 | 38 | </style> | ... | ... |
webintroduce/src/assets/css/reset.css
0 → 100644
1 | +/* http://meyerweb.com/eric/tools/css/reset/ | |
2 | + v4.0 | 20180602 | |
3 | + License: none (public domain) | |
4 | +*/ | |
5 | + | |
6 | +html, body, div, span, applet, object, iframe, | |
7 | +h1, h2, h3, h4, h5, h6, p, blockquote, pre, | |
8 | +a, abbr, acronym, address, big, cite, code, | |
9 | +del, dfn, em, img, ins, kbd, q, s, samp, | |
10 | +small, strike, strong, sub, sup, tt, var, | |
11 | +b, u, i, center, | |
12 | +dl, dt, dd, ol, ul, li, | |
13 | +fieldset, form, label, legend, | |
14 | +table, caption, tbody, tfoot, thead, tr, th, td, | |
15 | +article, aside, canvas, details, embed, | |
16 | +figure, figcaption, footer, header, hgroup, | |
17 | +main, menu, nav, output, ruby, section, summary, | |
18 | +time, mark, audio, video { | |
19 | + margin: 0; | |
20 | + padding: 0; | |
21 | + border: 0; | |
22 | + font-size: 100%; | |
23 | + font: inherit; | |
24 | + vertical-align: baseline; | |
25 | +} | |
26 | + | |
27 | +/* HTML5 display-role reset for older browsers */ | |
28 | +article, aside, details, figcaption, figure, | |
29 | +footer, header, hgroup, main, menu, nav, section { | |
30 | + display: block; | |
31 | +} | |
32 | + | |
33 | +/* HTML5 hidden-attribute fix for newer browsers */ | |
34 | +*[hidden] { | |
35 | + display: none; | |
36 | +} | |
37 | + | |
38 | +body { | |
39 | + line-height: 1; | |
40 | +} | |
41 | + | |
42 | +/*html, body {*/ | |
43 | +/*width: 100%;*/ | |
44 | +/*height: 100%;*/ | |
45 | +/*background: url("../assets/img/bg.jpg") no-repeat;*/ | |
46 | +/*background-size: 100% 100%;*/ | |
47 | +/*overflow: hidden;*/ | |
48 | +/*}*/ | |
49 | + | |
50 | +html, body{ | |
51 | + height: 100%;width: 100%; | |
52 | + font-family: "Microsoft YaHei"; | |
53 | + color: #fff; | |
54 | + user-select: none; | |
55 | + -webkit-user-select: none; | |
56 | + -ms-user-select: none; | |
57 | + -o-user-select: none; | |
58 | + -moz-user-select: none; | |
59 | +} | |
60 | +body{ | |
61 | + | |
62 | + overflow: hidden; | |
63 | + font-size: 14px; | |
64 | + /*默认颜色*/ | |
65 | +} | |
66 | + | |
67 | +html { | |
68 | + box-sizing: border-box; | |
69 | +} | |
70 | +*, *:before, *:after { | |
71 | + box-sizing: inherit; | |
72 | +} | |
73 | + | |
74 | +ol, ul { | |
75 | + list-style: none; | |
76 | +} | |
77 | + | |
78 | +blockquote, q { | |
79 | + quotes: none; | |
80 | +} | |
81 | + | |
82 | +blockquote:before, blockquote:after, | |
83 | +q:before, q:after { | |
84 | + content: ''; | |
85 | + content: none; | |
86 | +} | |
87 | + | |
88 | +table { | |
89 | + border-collapse: collapse; | |
90 | + border-spacing: 0; | |
91 | +} | |
92 | + | |
93 | +/*清除浮动*/ | |
94 | +.clearfix:before, | |
95 | +.clearfix:after { | |
96 | + content: " "; | |
97 | + display: inline-block; | |
98 | + height: 0; | |
99 | + clear: both; | |
100 | + visibility: hidden; | |
101 | +} | |
102 | + | |
103 | +.clearfix { | |
104 | + *zoom: 1; | |
105 | +} | |
106 | + | |
107 | +/*隐藏*/ | |
108 | +.dn { | |
109 | + display: none; | |
110 | +} | |
111 | + | |
112 | +.margin0-12 { | |
113 | + margin: 0 12px; | |
114 | +} | |
115 | + | |
116 | +.margin12-0 { | |
117 | + margin: 12px 0; | |
118 | +} | |
119 | +.flexfm{ | |
120 | + flex: 1; | |
121 | +} | |
122 | + | |
123 | +.pos-rel{ | |
124 | + position: relative; | |
125 | +} | |
126 | +.pos-abs{ | |
127 | + position: absolute; | |
128 | +} | |
129 | + | |
130 | + | |
131 | + | |
132 | + | |
133 | + | |
134 | +/*自定义导航选中样式*/ | |
135 | +.navActive{ | |
136 | + background-color: #f00; | |
137 | +} | ... | ... |
webintroduce/src/assets/logo.png deleted
6.69 KB
webintroduce/src/components/HelloWorld.vue deleted
1 | -<template> | |
2 | - <div class="hello"> | |
3 | - <h1>{{ msg }}</h1> | |
4 | - <h2>Essential Links</h2> | |
5 | - <ul> | |
6 | - <li> | |
7 | - <a | |
8 | - href="https://vuejs.org" | |
9 | - target="_blank" | |
10 | - > | |
11 | - Core Docs | |
12 | - </a> | |
13 | - </li> | |
14 | - <li> | |
15 | - <a | |
16 | - href="https://forum.vuejs.org" | |
17 | - target="_blank" | |
18 | - > | |
19 | - Forum | |
20 | - </a> | |
21 | - </li> | |
22 | - <li> | |
23 | - <a | |
24 | - href="https://chat.vuejs.org" | |
25 | - target="_blank" | |
26 | - > | |
27 | - Community Chat | |
28 | - </a> | |
29 | - </li> | |
30 | - <li> | |
31 | - <a | |
32 | - href="https://twitter.com/vuejs" | |
33 | - target="_blank" | |
34 | - > | |
35 | ||
36 | - </a> | |
37 | - </li> | |
38 | - <br> | |
39 | - <li> | |
40 | - <a | |
41 | - href="http://vuejs-templates.github.io/webpack/" | |
42 | - target="_blank" | |
43 | - > | |
44 | - Docs for This Template | |
45 | - </a> | |
46 | - </li> | |
47 | - </ul> | |
48 | - <h2>Ecosystem</h2> | |
49 | - <ul> | |
50 | - <li> | |
51 | - <a | |
52 | - href="http://router.vuejs.org/" | |
53 | - target="_blank" | |
54 | - > | |
55 | - vue-router | |
56 | - </a> | |
57 | - </li> | |
58 | - <li> | |
59 | - <a | |
60 | - href="http://vuex.vuejs.org/" | |
61 | - target="_blank" | |
62 | - > | |
63 | - vuex | |
64 | - </a> | |
65 | - </li> | |
66 | - <li> | |
67 | - <a | |
68 | - href="http://vue-loader.vuejs.org/" | |
69 | - target="_blank" | |
70 | - > | |
71 | - vue-loader | |
72 | - </a> | |
73 | - </li> | |
74 | - <li> | |
75 | - <a | |
76 | - href="https://github.com/vuejs/awesome-vue" | |
77 | - target="_blank" | |
78 | - > | |
79 | - awesome-vue | |
80 | - </a> | |
81 | - </li> | |
82 | - </ul> | |
83 | - </div> | |
84 | -</template> | |
85 | - | |
86 | -<script> | |
87 | -export default { | |
88 | - name: 'HelloWorld', | |
89 | - data () { | |
90 | - return { | |
91 | - msg: 'Welcome to Your Vue.js App' | |
92 | - } | |
93 | - } | |
94 | -} | |
95 | -</script> | |
96 | - | |
97 | -<!-- Add "scoped" attribute to limit CSS to this component only --> | |
98 | -<style scoped> | |
99 | -h1, h2 { | |
100 | - font-weight: normal; | |
101 | -} | |
102 | -ul { | |
103 | - list-style-type: none; | |
104 | - padding: 0; | |
105 | -} | |
106 | -li { | |
107 | - display: inline-block; | |
108 | - margin: 0 10px; | |
109 | -} | |
110 | -a { | |
111 | - color: #42b983; | |
112 | -} | |
113 | -</style> |
webintroduce/src/components/VFooter.vue
0 → 100644
webintroduce/src/components/VHeader.vue
0 → 100644
1 | +<template> | |
2 | + <div class="header-wrap"> | |
3 | + <ul> | |
4 | + <router-link | |
5 | + :to="{path:link.linkPath}" | |
6 | + tag="li" v-for="(link,index) in navLinks" | |
7 | + :key="index" | |
8 | + @click="navChange(index)" | |
9 | + exact=""> | |
10 | + {{link.name}} | |
11 | + </router-link> | |
12 | + </ul> | |
13 | + </div> | |
14 | +</template> | |
15 | + | |
16 | +<script> | |
17 | +export default { | |
18 | + name: 'VHeader', | |
19 | + data() { | |
20 | + return { | |
21 | + navLinks: [ | |
22 | + {name:'首页',linkPath:'/home'}, | |
23 | + {name:'解决方案',linkPath:'/solution'} | |
24 | + ] | |
25 | + } | |
26 | + }, | |
27 | + methods:{ | |
28 | + navChange(index) { | |
29 | + | |
30 | + } | |
31 | + } | |
32 | +} | |
33 | +</script> | |
34 | + | |
35 | +<style scoped lang="scss"> | |
36 | +.header-wrap{ | |
37 | + height: 100px; | |
38 | + background-color: burlywood; | |
39 | +} | |
40 | +</style> | ... | ... |
webintroduce/src/main.js
webintroduce/src/router/index.js
1 | 1 | import Vue from 'vue' |
2 | 2 | import Router from 'vue-router' |
3 | -import HelloWorld from '@/components/HelloWorld' | |
3 | +import VHome from '../views/VHome' | |
4 | +const VSolution = () => import('../views/VSolution') | |
4 | 5 | |
5 | 6 | Vue.use(Router) |
6 | 7 | |
7 | 8 | export default new Router({ |
9 | + linkExactActiveClass:'navActive', | |
8 | 10 | routes: [ |
9 | 11 | { |
10 | 12 | path: '/', |
11 | - name: 'HelloWorld', | |
12 | - component: HelloWorld | |
13 | - } | |
13 | + name: 'VHome', | |
14 | + component: VHome | |
15 | + }, | |
16 | + { | |
17 | + path: '/home', | |
18 | + name: 'VHome', | |
19 | + component: VHome | |
20 | + }, | |
21 | + { | |
22 | + path: '/solution', | |
23 | + name: 'VSolution', | |
24 | + component: VSolution | |
25 | + }, | |
14 | 26 | ] |
15 | 27 | }) | ... | ... |
webintroduce/src/views/VHome.vue
0 → 100644
webintroduce/src/views/VSolution.vue
0 → 100644
webintroduce/static/favicon.ico
0 → 100644
No preview for this file type