这个vue项目是紧跟着之前的项目跟我一起做一个vue的小项目(一)来的。

我继续后面的开发(写的比较粗糙,边学边记录)

下图是header头部的样式



header组件内容如下

  1. //header.vue
  2. <template>
  3. <div class="header">
  4. <div class="header-left">返回</div>
  5. <div class="header-input">输入城市/游玩主题</div>
  6. <div class="header-right">城市</div>
  7. </div>
  8. </template>
  9. <script>
  10. export default {
  11. // 1rem = html font-size=50px
  12. name: 'HomeHeader'
  13. }
  14. </script>
  15. <style lang="stylus" scoped>
  16. .header
  17. line-height:0.86rem
  18. background:#00bcd4
  19. color:#fff
  20. display:flex
  21. .header-left
  22. width:0.64rem
  23. float:left
  24. .header-input
  25. margin-top: 0.12rem;
  26. line-height: 0.64rem;
  27. -webkit-box-flex: 1;
  28. -ms-flex: 1;
  29. margin-bottom: 0.12rem;
  30. flex: 1;
  31. background: #fff;
  32. padding-left: 0.1rem;
  33. border-radius: 0.1rem;
  34. color: #ccc;
  35. .header-right
  36. width:1.24rem
  37. float:right
  38. text-align:center
  39. </style>

接下来我们要做的是添加图标,我们可以选择图标,添加到购物车



下载添加到travel中的项目图标到本地



添加iconfont相关的文件到文件夹



修改iconfon.css的内容为

  1. @font-face {font-family: "iconfont";
  2. src: url('./iconfont/iconfont.eot?t=1562396347977'); /* IE9 */
  3. src: url('./iconfont/iconfont.eot?t=1562396347977#iefix') format('embedded-opentype'), /* IE6-IE8 */
  4. url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAANYAAsAAAAAB2AAAAMMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDHAqCGIIFATYCJAMQCwoABCAFhG0HSxt6BsieA+7mkoxkJIXVVo+ZzBwP/439um9mUE2SRKN7I1lSPZ2QSFAqJUGphLKaN+75/6tLf6IwrArR8RSmIjq2ZPtIfrJ8sAWnItDabAUerxONQAm7DJ05P34+z+X4GpbA/EC5jLVsjG1HvQDjgAIdc5IVSAFxICCezWBfXE+gXp96cRu9wwshRRF0C8SDrkqQ0vIoihavFapHxhbxLlFtek3Pgbf88/GXK1JIqrJgo72rHgXaf0DMhcYr47AyTxk/nQPaJDLGgULcjLrOoDIyDql3fpNgCqhVK/EDYuUx1///WLhhYaiy94+XiGpBbiOYIJr5AbGoVpdjEKhd5Ejwg5hrfaKsXeBZwOihDPQdjRzd/qKcHq8hO9btmyiiOyeK1V17T8qvXi1+/XrJy5eLXrwoBE0+8oU8V9q579SJwkU7dh8/WeTLPPExXrB09/XKnUXL9x6q2pVefx6+90xrjzy4HS76XhjO+mv3n549Bm/Tz+fPP9GFfF5RnEdQC+CTfKHN6PEXSuSbVAFCmY98M5Xr7a2b8zjaPpo9AtDc//ZqZ3/NWaQv9PxboC/jXRsYAJXx+B9oSu38CFmoHYA8kZr+hu84mkjecZzd/C8lvYDvXvUe7sp4AuwTf5fi1eIvXbyyqrjSwFyKLYtFXm7RD/HsFfWhla86QbtPp9B0rc4l1OqqkdToRVarnyj0cVRpMIFqtZZRb0zf5AYdOCRKHUbNCIRWl5A0+0TWapYo9I+o0u0LqrUGQr39yJ+zwWDoaV2cSIIoeCyKdZkFaWQVaUX+fKJafok3pTlzMeGm7sdOm6Mb7yNBwk8xwAypLiEoppwFcK/YjPj9DBuceYksbJoQRqPdTsdeZJNZANKs4wiJQCiwMVGYTsYE0bS+kNZ7/3yEyuIn4TOkDu9iBGfSm8ecbBwriD5VcBXprVxiClG5CAKFURwTgPWKVoSfH4MZ4628CJlgo+0IGRrZw1p0rcp2eU3gG26AesETS6TIUaJK9ZUU1Cw9yWSWabFsiXMWbqCW39+gsHAQAA==') format('woff2'),
  5. url('./iconfont/iconfont.woff?t=1562396347977') format('woff'),
  6. url('./iconfont/iconfont.ttf?t=1562396347977') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
  7. url('./iconfont/iconfont.svg?t=1562396347977#iconfont') format('svg'); /* iOS 4.1- */
  8. }
  9. .iconfont {
  10. font-family: "iconfont" !important;
  11. font-size: 16px;
  12. font-style: normal;
  13. -webkit-font-smoothing: antialiased;
  14. -moz-osx-font-smoothing: grayscale;
  15. }
  16. /* .iconfanhui:before {
  17. content: "\e624";
  18. }
  19. .iconsousuo:before {
  20. content: "\e632";
  21. }
  22. .iconarrow-full-down:before {
  23. content: "\e600";
  24. }
  25. */

在main.js中添加

  1. import './assets/styles/iconfont.css'

iconfont图标在页面中的应用

  1. //header.vue
  2. <template>
  3. <div class="header">
  4. <div class="header-left">
  5. <div class="iconfont back-icon"></div>
  6. </div>
  7. <div class="header-input">
  8. <span class="iconfont"></span>
  9. 输入城市/游玩主题</div>
  10. <div class="header-right">
  11. 城市
  12. <span class="iconfont arrow-icon"></span>
  13. </div>
  14. </div>
  15. </template>
  16. <script>
  17. export default {
  18. // 1rem = html font-size=50px
  19. name: 'HomeHeader'
  20. }
  21. </script>
  22. <style lang="stylus" scoped>
  23. .header
  24. line-height:0.86rem
  25. background:#00bcd4
  26. color:#fff
  27. display:flex
  28. .header-left
  29. width:0.64rem
  30. float:left
  31. .back-icon
  32. text-align:center
  33. font-size:0.4rem
  34. .header-input
  35. margin-top: 0.12rem;
  36. line-height: 0.64rem;
  37. -webkit-box-flex: 1;
  38. -ms-flex: 1;
  39. margin-bottom: 0.12rem;
  40. flex: 1;
  41. background: #fff;
  42. padding-left: 0.1rem;
  43. border-radius: 0.1rem;
  44. color: #ccc;
  45. .header-right
  46. width:1.24rem
  47. float:right
  48. text-align:center
  49. .arrow-icon
  50. margin-left:-.04rem
  51. font-size:.24rem
  52. </style>

页面效果



提取公共颜色的css

  1. //src\assets\styles\varibles.styl
  2. $bgColor = #00bcd4

在header组件中引用$bgColor和引入@import '../../../assets/styles/varibles.styl'

修改@import '../../../assets/styles/varibles.styl'长度,一般使用@代表找到src目录

修改引用文件长度为@import '~@/assets/styles/varibles.styl'

修改配置文件



修改header.vue中的别名为@import '~styles/varibles.styl'

修改main.js中的文件

  1. // The Vue build version to load with the `import` command
  2. // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
  3. import Vue from 'vue'
  4. import App from './App'
  5. import router from './router'
  6. import 'styles/reset.css'
  7. import 'styles/border.css'
  8. import fastClick from 'fastclick'
  9. import 'styles/iconfont.css'
  10. // 1像素边框
  11. Vue.config.productionTip = false
  12. fastClick.attach(document.body)
  13. /* eslint-disable no-new */
  14. new Vue({
  15. el: '#app',
  16. router,
  17. components: { App },
  18. template: '<App/>'
  19. })

我们运行项目发现效果ok

本篇博客内容要点:1.如何使用iconfont 2.如何通过webpack配置对代码进行简化3.如何使用style定义变量并在css中使用变量

未完待续

跟我一起做一个vue的小项目(二)的更多相关文章

  1. 跟我一起做一个vue的小项目(八)

    接下来我们进行的是城市选择页面的路由配置 添加city.vue,使其点击城市,然后跳转到city页面 //router.js import Vue from 'vue' import Router f ...

  2. 跟我一起做一个vue的小项目(七)

    先看下我们所做项目的效果 这些数据都是我们在data中定义的,不是从后端数据中请求的.那么 接下来我们使用axios渲染数据 npm install axios --save 每个组件里面的数据都不相 ...

  3. 跟我一起做一个vue的小项目(五)

    接下来我们要做的是热门推荐页面,我们写一个推荐组件 使用的方法也是前端data中的数据渲染到页面上面,这里对文字过长取省略号的方法不成功使用了一个小技巧 使用了min-width:0 我们来看完整的代 ...

  4. 跟我一起做一个vue的小项目(APPvue2.5完结篇)

    先放一下这个完结项目的整体效果 下面跟我我一起进行下面项目的进行吧~~~ 接下来我们进行的是实现header的渐隐渐显效果,并且点击返回要回到首页 我们先看效果 在处理详情页向下移动过程中,heade ...

  5. 跟我一起做一个vue的小项目(四)

    接下来我们进行的是轮播页面下面的导航页的开发 我们需要的是实现轮播页下面的图标,并且实现轮播效果 这个话,其实基本思路先是渲染出小图标,然后,我们要对页数进行判断,如果图标的个数展示的就是8个,那个这 ...

  6. 跟我一起做一个vue的小项目(十一)

    接下来我们进行的是详情页动态路由及banner布局 先看页面的效果 下面是代码部分 <template> <div> <div class="banner&qu ...

  7. 跟我一起做一个vue的小项目(十)

    接下来我们对城市列表页面进行优化,除了对数据优化,也会进行节流处理 //src\pages\city\components\Alphabet.vue <template> <ul c ...

  8. 跟我一起做一个vue的小项目(三)

    接下来我们进行轮播的开发 安装插件,选用2.6.7的稳定版本 npm install vue-awesome-swiper@2.6.7 --save 根据其github上面的用法,我们在全局引用,在m ...

  9. 跟我一起做一个vue的小项目(九)

    接下来我们进行的就是城市列表页面数据额动态渲染. 也是在mock数据,进行动态渲染 //city.json { "ret": true, "data":{ &q ...

随机推荐

  1. 10_springmvc JSON数据交互

    一.JSON数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便.比如:webservice接口,传输json数据. 二.springmvc进行数据交互 ...

  2. DOM节点的创建、插入、删除

    值得注意的是:节点的创建.插入以及删除都是操作父级容器.(1)创建var newDiv = documnet.createElement('div'); ——创建的元素只能操作一次 (2)插入/追加a ...

  3. html--设置复选按钮和单选按钮

  4. windows pip 安装 转载

    经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的 ...

  5. IDEA启动springboot项目一直build

    启动main方法后,项目一直在不断的build,期间截了两张一闪而过的提示 我用的是Run Dashboard面板,不论是通过删除configuration,rebuild,删除IDEA缓存都没有效果 ...

  6. 为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字)

    为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字) 在PyData Seattle 2017中,Jake Vanderplas介绍了Python的发展历程以及最新动态.在这里我们把 ...

  7. 在线Online表单来了!JeecgBoot 2.1 版本发布——基于SpringBoot+AntDesign的快速开发平台

    项目介绍 Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台! 采用前后端分离架构:SpringBoot,Ant-Design-Vue,Mybatis,Shiro,JWT. ...

  8. 密码学笔记(2)——RSA密码

    上一篇笔记中讲述了大量的代数知识,这一篇中我们看看如何将这些代数知识应用到RSA密码体制中. 一.公钥密码学简介 在经典密码学的研究模型中,我们根据已选择的秘钥K得到一条加密规则$e_{k}$和一条解 ...

  9. 02_Spring Bean的装配模式_基于XML配置方式

    一.三种实例化Bean的方式 1.使用类构造器实例化(默认无参数) <bean id="bean1" class="com.demo1.Bean1"> ...

  10. <每日一题>题目6:二分查找

    #二分查找 ''' 1.end问题 2.44对应的end<start 找不到情况 3.返回值递归的情况 4,611,aim太大的情况 ''' l = [2,3,5,10,15,16,18,22, ...