在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 ...
随机推荐
- POJ 3294 UVA 11107 Life Forms 后缀数组
相同的题目,输出格式有区别. 给定n个字符串,求最长的子串,使得它同时出现在一半以上的串中. 不熟悉后缀数组的童鞋建议先去看一看如何用后缀数组计算两个字符串的最长公共子串 Ural1517 这道题的思 ...
- 洛谷P2827 蚯蚓——思路题
题目:https://www.luogu.org/problemnew/show/P2827 思路... 用优先队列模拟做的话,时间主要消耗在每次的排序上: 能不能不要每次排序呢? 关注先后被砍的两条 ...
- sql数据库如何在数据库里面把其中一个数据库的表复制到另一个数据库里面
在sqlserver数据库里面,我们肯定有这样一个情况,假如我用的是SQL2008,如何把数据库里面的整个表以及表内数据复制到另外一个表中.那应该如何操作??有两种方法,我们一起来看一下 复制表结构: ...
- 为npm设置代理,解决网络问题
为npm设置代理,解决网络问题 npm config set proxy=http://127.0.0.1:1080
- CAS和Oauth2的区别
CAS是单点登陆(SSO) Oauth2是对某种资源进行授权访问
- 数据结构之顺序队列(C实现)
一.队列是什么 队列是一种可以实现“先进先出”的存储结构. 队列通常可以分为两种类型: 一.顺序队列,采用顺序存储,当长度确定时使用. 顺序队列又有两种情况: ①使用数组存储队列的称为静态顺序队列. ...
- Bryce1010 Acm模板
目录 STL标准模板库 STL简介 STL pair STL set STL vector STL string STL stack STL queue STL map upper_bound和low ...
- Android 性能优化(23)*性能工具之「Heap Viewer, Memory Monitor, Allocation Tracker」Memory Profilers
Memory Profilers In this document Memory Monitor Heap Viewer Allocation Tracker You should also read ...
- 全面学习ORACLE Scheduler特性(9)创建Chains
五.使用Chains 今天要来认识一位新同学:CHAIN(注意不要敲成CHINA).CHAIN可以被视做一组Programs的复合,举个简单的例子:运行PROGRAM:A以及PROGRAM:B,如果成 ...
- MongoDB学习笔记~复杂条件拼接和正则的使用
在大叔lind框架里有日志组件logger,而在日志实现方式上有file,mongodb,sql,json等方式,对分布式日志处理上大叔推荐使用mongodb进行存储,除了它的高效写入,灵活的结构外, ...