zoukankan      html  css  js  c++  java
  • vue项目中scss样式管理

    最近有报一个全栈课程,里面内容比较新颖,其中对scss样式管理的理念让我十分喜欢,各种操作让项目更加具有条理性。

    1.@mixin 

    在一个可以全局适用的scss文件中,姑且叫global.scss,写入:

    @mixin center(){
     display:flex;
     justify-content:center;
     align-items:center;
    }
    

     用css的眼光看,这是一个弹性布局,使其中的元素居中对齐,交叉轴方向也是居中对齐。是项目中很常用的代码,这里将其放入global.scss,并在main.js引入。

    那么,在组件中也需要引入global.scss文件!style 加入lang="scss"时,可以直接用scss语法来写样式。

    使用这里的mixin里面的方案可以使用:

    @include center;
    

    那么,使用@include center;的当前元素将适用其中的规则!

    2.字体大小管理

    在不同浏览器中默认的字体像素各有不同,为了统一项目在不同浏览器显示的效果,可以手动将其统一,使用rem与px的比例管理

    在global.scss中:

    $fontSize:37.5;
    
    @function px2rem($px){
     @return ($px/$fontSize)+rem
    }
    

      那么,在组件中引入global.scss文件时,ps:在组件style标签中引入scss文件语句:

    @import "@/styles/common/global.scss"
    

      直接使用函数名加参数统一规格:

    .container{
     span{
       font-size:px2rem(16)
     }
    }
    

      在页面中的像素便是16像素,不会根据浏览器变化而变化!

     还可以使用transform:scale(0.5)来缩小字体,这适应于大多数情况,需要注意的是,transform需要将对象转换为行内块才生效!

    3.抛出样式作为组件参数使用

    有些组件库可以根据传递给属性的样式值修改样式体现,比如element-ui的滑块:

    <el-tooltip :content="'Switch value: ' + value" placement="top">
      <el-switch
        v-model="value"
        active-color="#13ce66"
        inactive-color="#ff4949"
        active-value="100"
        inactive-value="0">
      </el-switch>
    </el-tooltip>
    

      这里的active-color、inactive-color时可以在项目全局上进行统一的。

    可以使用scss文件global.scss全局文件抛出该值作为参数使用:

    :export{
     activeColor:#13CE66;
     inactiveColor:#ff4949;
    }
    

      在组件中引入global.scss,注意是在script的标签里面!!

    <script>
     import  switch from "@/styles/common/global.scss"
     export default{.....}
    </script>
    

    在computed里返回switch:

    computed:{
     switch(){
       return switch;
     }
    }

    现在可以将滑块元素的颜色替换成我们统一管理的样式:

    <el-tooltip :content="'Switch value: ' + value" placement="top">
      <el-switch
        v-model="value"
        :active-color="switch.activeColor"
        :inactive-color="switch.inactiveColor"
        active-value="100"
        inactive-value="0">
      </el-switch>
    </el-tooltip>
    

      ,被:export抛出的样式可以直接被存放在switch里,作为变量被读取了!

    4.改变svg的深浅

    在项目中有遇到一个需求:清空输入内容后的小×是个svg图片,需要在鼠标hover的时候让其颜色变深,这里的做法是:

    图片颜色是浅灰色,这里设置的值是0-1的取值范围,0为纯黑色

    -webkit-filter:contrast(0.6)
    

      设置svg的样式颜色可以了解更多-webkit-filter相关的点

  • 相关阅读:
    rabbitMQ和对应的erlang版本匹配
    Jfinal文件上传基础路径问题,windows下会以项目根路径为基础路径
    Linux常用命令-vim
    nginx配置https
    mysql创建表时,设置timestamp DEFAULT NULL报错1067
    Linux命令yum和rpm
    git reset命令使用
    jfinal定时任务插件jfinal-quartz
    quartz配置参数org.quartz.jobStore.misfireThreshold含义解释
    多层级树形结构数据库存储方式
  • 原文地址:https://www.cnblogs.com/qingsui/p/13259267.html
Copyright © 2011-2022 走看看