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,7 +64,18 @@ module.exports = { | ||
64 | limit: 10000, | 64 | limit: 10000, |
65 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') | 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 | node: { | 81 | node: { |
webintroduce/index.html
@@ -2,8 +2,9 @@ | @@ -2,8 +2,9 @@ | ||
2 | <html> | 2 | <html> |
3 | <head> | 3 | <head> |
4 | <meta charset="utf-8"> | 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 | </head> | 8 | </head> |
8 | <body> | 9 | <body> |
9 | <div id="app"></div> | 10 | <div id="app"></div> |
webintroduce/package-lock.json
@@ -4963,8 +4963,7 @@ | @@ -4963,8 +4963,7 @@ | ||
4963 | }, | 4963 | }, |
4964 | "js-yaml": { | 4964 | "js-yaml": { |
4965 | "version": "3.7.0", | 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 | "dev": true, | 4967 | "dev": true, |
4969 | "requires": { | 4968 | "requires": { |
4970 | "argparse": "^1.0.7", | 4969 | "argparse": "^1.0.7", |
@@ -9513,6 +9512,18 @@ | @@ -9513,6 +9512,18 @@ | ||
9513 | "mkdirp": "~0.5.1", | 9512 | "mkdirp": "~0.5.1", |
9514 | "sax": "~1.2.1", | 9513 | "sax": "~1.2.1", |
9515 | "whet.extend": "~0.9.9" | 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 | "tapable": { | 9529 | "tapable": { |
webintroduce/package.json
@@ -31,6 +31,7 @@ | @@ -31,6 +31,7 @@ | ||
31 | "friendly-errors-webpack-plugin": "^1.6.1", | 31 | "friendly-errors-webpack-plugin": "^1.6.1", |
32 | "html-webpack-plugin": "^2.30.1", | 32 | "html-webpack-plugin": "^2.30.1", |
33 | "node-notifier": "^5.1.2", | 33 | "node-notifier": "^5.1.2", |
34 | + "node-sass": "^4.11.0", | ||
34 | "optimize-css-assets-webpack-plugin": "^3.2.0", | 35 | "optimize-css-assets-webpack-plugin": "^3.2.0", |
35 | "ora": "^1.2.0", | 36 | "ora": "^1.2.0", |
36 | "portfinder": "^1.0.13", | 37 | "portfinder": "^1.0.13", |
@@ -38,6 +39,7 @@ | @@ -38,6 +39,7 @@ | ||
38 | "postcss-loader": "^2.0.8", | 39 | "postcss-loader": "^2.0.8", |
39 | "postcss-url": "^7.2.1", | 40 | "postcss-url": "^7.2.1", |
40 | "rimraf": "^2.6.0", | 41 | "rimraf": "^2.6.0", |
42 | + "sass-loader": "^7.1.0", | ||
41 | "semver": "^5.3.0", | 43 | "semver": "^5.3.0", |
42 | "shelljs": "^0.7.6", | 44 | "shelljs": "^0.7.6", |
43 | "uglifyjs-webpack-plugin": "^1.1.1", | 45 | "uglifyjs-webpack-plugin": "^1.1.1", |
webintroduce/src/App.vue
1 | <template> | 1 | <template> |
2 | <div id="app"> | 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 | </div> | 9 | </div> |
6 | </template> | 10 | </template> |
7 | 11 | ||
8 | <script> | 12 | <script> |
13 | +import VHeader from './components/VHeader' | ||
14 | +import VFooter from './components/VFooter' | ||
9 | export default { | 15 | export default { |
10 | - name: 'App' | 16 | + name: 'App', |
17 | + components:{ | ||
18 | + VHeader, | ||
19 | + VFooter | ||
20 | + } | ||
11 | } | 21 | } |
12 | </script> | 22 | </script> |
13 | 23 | ||
14 | <style> | 24 | <style> |
15 | #app { | 25 | #app { |
26 | + display: flex; | ||
27 | + flex-flow: column; | ||
28 | + min-height: 100vh; | ||
16 | font-family: 'Avenir', Helvetica, Arial, sans-serif; | 29 | font-family: 'Avenir', Helvetica, Arial, sans-serif; |
17 | -webkit-font-smoothing: antialiased; | 30 | -webkit-font-smoothing: antialiased; |
18 | -moz-osx-font-smoothing: grayscale; | 31 | -moz-osx-font-smoothing: grayscale; |
19 | text-align: center; | 32 | text-align: center; |
20 | color: #2c3e50; | 33 | color: #2c3e50; |
21 | - margin-top: 60px; | ||
22 | } | 34 | } |
35 | + .main-wrap{ | ||
36 | + flex: 1; | ||
37 | + } | ||
23 | </style> | 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
@@ -4,6 +4,7 @@ import Vue from 'vue' | @@ -4,6 +4,7 @@ import Vue from 'vue' | ||
4 | import App from './App' | 4 | import App from './App' |
5 | import router from './router' | 5 | import router from './router' |
6 | 6 | ||
7 | +require ('./assets/css/reset.css') | ||
7 | Vue.config.productionTip = false | 8 | Vue.config.productionTip = false |
8 | 9 | ||
9 | /* eslint-disable no-new */ | 10 | /* eslint-disable no-new */ |
webintroduce/src/router/index.js
1 | import Vue from 'vue' | 1 | import Vue from 'vue' |
2 | import Router from 'vue-router' | 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 | Vue.use(Router) | 6 | Vue.use(Router) |
6 | 7 | ||
7 | export default new Router({ | 8 | export default new Router({ |
9 | + linkExactActiveClass:'navActive', | ||
8 | routes: [ | 10 | routes: [ |
9 | { | 11 | { |
10 | path: '/', | 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