<style lang="css"> @import 'highlight.js/styles/color-brewer.css'; @import 'assets/styles/common.css'; @import 'assets/styles/fonts/style.css'; html, body { margin: 0; padding: 0; height: 100%; } #app { height: 100%; } body { font-family: 'Helvetica Neue',Helvetica,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',SimSun,sans-serif; overflow: auto; font-weight: 400; -webkit-font-smoothing: antialiased; } a { color: #4078c0; text-decoration: none; } button, input, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; } .hljs { line-height: 1.8; font-family: Menlo, Monaco, Consolas, Courier, monospace; font-size: 12px; padding: 18px 24px; background-color: #f9fafc; border: solid 1px #eaeefb; margin-bottom: 25px; border-radius: 2px; -webkit-font-smoothing: auto; } .main-cnt { margin-top: -80px; padding: 80px 0 120px; box-sizing: border-box; min-height: 100%; } .container, .page-container { width: 1140px; margin: 0 auto; } .page-container { padding-top: 55px; h2 { font-size: 28px; color: #1f2d3d; margin: 0; } h3 { font-size: 22px; } h2, h3, h4, h5 { font-weight: normal; color: #1f2f3d; &:hover a { opacity: .4; } a { float: left; margin-left: -20px; opacity: 0; cursor: pointer; &:hover { opacity: .4; } } } p { font-size: 14px; color: #5e6d82; } } .demo { margin: 20px 0; } @media (max-width: 1140px) { .container, .page-container { width: 100%; } } </style> <template> <div id="app"> <main-header></main-header> <div class="main-cnt"> <router-view></router-view> </div> <main-footer></main-footer> </div> </template> <script> export default { name: 'app', methods: { renderAnchorHref() { const anchors = document.querySelectorAll('h2 a,h3 a'); const basePath = location.href.split('#').splice(0, 2).join('#'); [].slice.call(anchors).forEach(a => { const href = a.getAttribute('href'); a.href = basePath + href; }); }, goAnchor() { if (location.href.match(/#/g).length > 1) { const auchor = location.href.match(/#[^#]+$/g); if (!auchor || auchor.length !== 1) return; const elm = document.querySelector(auchor[0]); if (!elm) return; setTimeout(_ => { document.documentElement.scrollTop = document.body.scrollTop = elm.offsetTop; }, 50); } } }, mounted() { this.renderAnchorHref(); this.goAnchor(); }, created() { window.addEventListener('hashchange', () => { if (location.href.match(/#/g).length < 2) { document.documentElement.scrollTop = document.body.scrollTop = 0; this.renderAnchorHref(); } else { this.goAnchor(); } }); } }; </script>