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