sass常用语法,vue中的应用sass
常用语法:
1,变量定义:
$border:1px solid #ccc;
$warning:#ff9900;
2,混入:
返回一段样式,可以加入变量
@mixin ellipsis(){
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
混入的使用
@include mixinName
3,继承:
继承一个选择器所有的样式
用法 :
@extend selectorName
4,嵌套
选择器嵌套,秒懂:
.box3 {
background: red;
div {
font-size:20px;
}
}
属性嵌套:
.box3 {
background: darken($warning, 30%);//这里是颜色函数,很少用
div {
font: {
size: 20px;
weight: 600;
}
}
}
5,引用:
@import "./../assets/test.scss";
安装:
cnpm i -D -S sass-loader node-sass
配置:
目录:build/webpack.base.conf.js
在rules添加
{
test: /\.sass$/,
loaders: ['style', 'css', 'sass']
}
值得一提的是sass/scss文件,sass不使用{},靠缩进,规范不好用,推荐使用.scss
实例:
test.scss
$border:1px solid #ccc;
$warning:#ff9900;
@mixin ellipsis(){
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
@mixin ellipsis_clamp2() {
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
test.vue
/* eslint-disable */
<template>
<div>
<div class="box">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse vitae aliquam nihil nemo! Fugit harum, nisi provident temporibus, saepe, assumenda sequi esse ut reprehenderit sit repellendus at? Excepturi, aspernatur sed.
</div>
<div class="box1">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse vitae aliquam nihil nemo! Fugit harum, nisi provident temporibus, saepe, assumenda sequi esse ut reprehenderit sit repellendus at? Excepturi, aspernatur sed.
</div>
<div class="box3">
<div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eaque cum corporis quia ipsa tenetur suscipit possimus vero ipsum doloremque provident, totam aspernatur error repellat tempora? Nostrum, illum. Iusto, dignissimos neque?</div>
</div>
</div>
</template>
<script>
export default {
methods: {
test () {
}
}
}
</script>
<style scoped lang="scss">
@import "./../assets/test.scss";
.box {
width: 500px;
color: $warning;
border: $border;
@include ellipsis;
}
.box3 {
background: darken($warning, 30%);
div {
@extend .box;
font: {
size: 20px;
weight: 600;
}
}
}
</style>
<style>
</style>
效果图:
注意:可以看出继承@extend也会把@include的样式继承下来