在vue项目中使用stylus来实现移动端的1px
1.目录结构(vue项目,但是并不局限于vue)

2.首先定义一个mixin.styl文件
border-1px($color)
position: relative
&:after
display: blcok
position: absolute
left: 0
bottom: 0
width: 100%
border-top: 1px solid $color
content: ' '
3.再定义一个统一处理dpr的stylus文件,base.styl
//这里我们使用@media媒介查询来来对不同的dpr进行缩放
//刚才我们在app.vue里面的一个元素上添加了一个border-1px的类名,下面我们就通过这个类名选中该元素,然后对他的伪元素进行缩放,然后这样就实现了真正意义上的1px @media(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5)
.border-1px
&::after
-webkit-transform: scaley(0.7)
transform: scaley(0.7) @media(-webkit-min-device-pixel-ratio:2),(min-device-pixel-ratio:2)
.border-1px
&::after
-webkit-transform: scaley(0.5)
transform: scaley(0.5)
4.在定义一个index.styl文件统一管理我们的公共stylus文件
@import "./mixin"
@import "./base"
5.在全局中引入index.styl(这里我们使用vue的项目来举例,那就在main.js中引入)
//这里可以使用项目路径,如果嫌麻烦,可以去webpack进行路径的配置
import './common/stylus/index.styl'
6.在我们需要的使用的地方使用
//这里假设我们在app.vue中使用
<template>
<div id="index">
<v-header></v-header>
//还要在dom元素上加上我们处理dpr缩放的处理,也就是对伪类的缩放,怎么缩放呢,我们再给该元素加上border-1px这个特殊的类名,注意这里的border-1px和下面的border-1px不是一回事,下面的那个border-1px是一个stylus的方法,加上这个类名后接下来怎么处理呢,请看上base.styl的解释
<div class="tab border-1px">
<div class="tab-item">
<router-link :to="{path:'/test1'}">测试1</router-link>
</div>
<div class="tab-item">
<router-link :to="{path:'/test2'}">测试2</router-link>
</div>
<div class="tab-item">
<router-link :to="{path:'/test3'}">测试3</router-link>
</div>
</div>
<div class="content">
<router-view></router-view>
</div>
</div>
</template> <script>
import header from './components/header/header'
export default {
name: 'app',
data () {
return {}
},
components: {
'v-header': header
}
}
</script> <style scoped lang="stylus" rel="stylesheet/stylus">
// 引入我们写好的mixin.styl文件
@import './common/stylus/mixin.styl'
.tab
display: flex;
wdith:100%;
height:40px;
line-height:40px;
// 使用ximin.styl文件中定义好的border-1px并传入参数(你可以理解他为一个处理函数但是和函数的使用方式确不同,他会将这个方法中定义的属性扩展到我们使用的元素上;这里其实我们并没有实现1px的边框,因为还没有对伪类进行缩放,所以请看dom元素上的解释)
border-1px(rgba(7, 17, 27, 0.1))
.tab-item
flex:1;
text-align:center;
& > a
display:block;
font-size:14px;
color:rgb(77, 85, 93)
&.active
color:rgb(240, 20, 20) </style>
在vue项目中使用stylus来实现移动端的1px的更多相关文章
- vue-cli构建的vue项目中引入stylus文件
在写基于vue-cli的vue项目时,如果直接引入styl文件,会报错,需要安装stylus.stylus-loader依赖以及别名配置. 1.下载安装stylus.stylus-loader,推荐使 ...
- 前端学习笔记系列一:10整体移动vscode代码块、VSCode 使用 stylus,配置格式化设置、在vue项目中引入bootstrap
1.整体移动vscode代码块 凭借操作的经验我们能够轻松地知道将代码整体往右移只需选中代码按Tab键即可.其实往左移也很简单: 选中之后按下 shift+Tab键 即可. 2.VSCode 使用 s ...
- vue项目中使用iconMoon图标
前两篇文章写了一下如何在vue项目中使用vue-awesome和阿里的iconfont,这里介绍一下如何使用iconMoon图标 iconMoon和前两者相比可以生成自己的矢量图,这点是我喜欢的.至于 ...
- vue入坑教程(二)在vue项目中如何导入element以及sass
在项目中导入element以及sass.stylus等方便开发的工具以及UI框架 (1)如何在vue项目中导入elementUI框架 elementUI是饿了么团队开发出来基于vue的前端UI框架,其 ...
- vue 项目中实用的小技巧
# 在Vue 项目中引入Bootstrap 有时在vue项目中会根据需求引入Bootstrap,而Bootstrap又是依赖于jQuery的,在使用npm按照时,可能会出现一系列的错误 1.安装jQu ...
- 如何在VUE项目中添加ESLint
如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...
- 在vue项目中, mock数据
1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data.json 文件 2.在build目录下的 dev-server.js的文件作如下 ...
- 浅谈 Axios 在 Vue 项目中的使用
介绍 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 特性 它主要有如下特性: 浏览器端发起XMLHttpRequests请求 Node端发起http ...
- 去除vue项目中的#及其ie9兼容性
一.如何去除vue项目中访问地址的# vue2中在路由配置中添加mode(vue-cli创建的项目在src/router/index.js) export default new Router({ m ...
随机推荐
- openssh常用命令记录
command description date ssh [user@]hostname[:port] 登录远程机器 2017-03-21 scp <local_file> <use ...
- CodeForces 382C Arithmetic Progression (排序+分类讨论)
题意:给出一个长度为n的序列,表示有n张卡片,上面的数字,现在还有一张卡片,上面没有数字,问说可以写几种数字在这张卡片上面, 使得n+1张卡片上的数字可以排列成一个等差数列,有无限多种时输出-1. 析 ...
- /bin/bash: jar: command not found(转载)
转自:http://blog.csdn.net/zhangdaiscott/article/details/23138023 /bin/bash: jar: command not found 解决办 ...
- Python网咯爬虫 — Scrapy框架应用
Scrapy框架 Scrapy是一个高级的爬虫框架,它不仅包括了爬虫的特征,还可以方便地将爬虫数据保存到CSV.Json等文件中. Scrapy用途广泛,可以用于数据挖掘.监测 ...
- bzoj 4756: [Usaco2017 Jan]Promotion Counting【dfs+树状数组】
思路还是挺好玩的 首先简单粗暴的想法是dfs然后用离散化权值树状数组维护,但是这样有个问题就是这个全局的权值树状数组里并不一定都是当前点子树里的 第一反应是改树状数组,但是显然不太现实,但是可以这样想 ...
- bzoj 1660: [Usaco2006 Nov]Bad Hair Day 乱发节【单调栈】
开一个单调递减的单调栈,然后用sum数组维护每个点的答案,新加点的时候一边退栈一边把退掉的点的sum加进来 #include<iostream> #include<cstdio> ...
- 清北刷题10.23night
NOIP 模拟赛 张若天 年 ⽉ ⽇ 题⽬名称 监听 实验室 ⽂明 可执⾏⽂件名 monitor lab civilization 输⼊⽂件名 monitor.in lab.in civilizati ...
- Visual Studio Code 扩展工具集,记录
编码 提高效率及校验 Auto Close Tag 自动闭合标签 Auto Rename Tag 自动更改HTML/XML标签,不需要再进行二次修改,减少50%的工作量! Path Intellise ...
- [译]curl_multi_info_read
curl_multi_info_read - read multi stack informationals读取multi stack中的信息 SYNOPSIS#include <curl/cu ...
- Http请求1
package Test; import java.io.IOException; import java.io.InputStreamReader; import java.net.URISynta ...