• 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相关的点

  • 相关阅读:
    第10组 Beta冲刺(2/5)
    第10组 Beta冲刺(1/5)
    第10组 Alpha事后诸葛亮
    3月7-第十次机试课记录
    3月5-第九次机试课记录
    3月2-第八次机试课记录
    3月1-第六次机试课记录
    2月28-第五次机试课记录
    STL
    2月27-第四次机试课记录
  • 原文地址:https://www.cnblogs.com/qingsui/p/13259267.html
Copyright © 2020-2023  润新知