scss基础和css扩展

变量

        定义变量
//app.scss
$allpadding:20px; //声明颜色变量 $color
//使用
@import '@/assets/app.scss';
  .container{
    width: 100%;
    padding:$allpadding;
  }

⚠️scss中,中下划线和下划线是同一个东西 

$link-color: blue;
a {
  color: $link_color;
}
 
//编译后
 
a {
  color: blue;
}
        计算 

变量可进行加减乘除:http://t.csdnimg.cn/duYU9

width: 100px + 100px + 100px; //加法
width: 100px - 100px + 100px; //减法
width: 100px * 100 //乘法,注scss的乘法和除法是带单位的
width: (100px/3)  //注意这里需要带括号,如果不带括号会当场分割数值
width: $width / 3 //也可以不带括号,但是里面计算的一定要有声明的变量,因为这个语法css不认识,那么就会被解析成SCSS
width: 100 % 3px //SCSS也支持取模运算

嵌套

       基础嵌套 

scss和css一样可以进行嵌套:

.container{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    .btn{
      margin: 10px;
    }
  }
编译结果
.container{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
  }
.container .btn{

      margin: 10px;
  }
        父级选择器
.container{
  a {
    color: red;    
    &:a {
      color:blue;
    }
    &-left: {
      color:black;
    }
  }
}
编译结果
 
.container a {
  color: red;
}
.container a:hover {
  color: blue;
}
.container a-left {
  color: black;
}
        属性嵌套
/* SCSS */
font: {
  family: Helvetica, sans-serif;
  size: 18px;
  weight: bold;
}
 
text: {
  align: center;
  transform: lowercase;
  overflow: hidden;
}
 
/* CSS */
font-family: Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
 
text-align: center;
text-transform: lowercase;
text-overflow: hidden;

导入scss

@import '@/assets/app.scss';

继承

        继承

在scss中可以将一个样式继承于另一个样式,使用@extend


.aaaa {
  bakckground: red;
}

.sprite-1 {
  @extend .aaaa;
  background-position: 0 -30px;
}

.sprite-2 {
  @extend .aaaa;
  background-position: 0 -60px;
}
        占位符

在scss继承时,你会发现,当.aaaa被继承编译后,你会发现它就没用,也就是说有没有一个办法使.aaaa不会出现在编译后的文件中,但它的功能不变,就出现了占位符


%aaaa {
  bakckground: red;
}

.sprite-1 {
  @extend %aaaa;
  background-position: 0 -30px;
}

.sprite-2 {
  @extend %aaaa;
  background-position: 0 -60px;
}

混合

在写css时,经常会有大量重复的代码,这时候混合就出现了。

        定义混合
@mixin mixin-name {
  property: value;
}
        使用混合
selector {
  @include mixin-name;
}

混合中也可以包含混合

@mixin mixin-name {
  @include mixin-name-one;
}
        混合传参

定义默认值color=blue,width=1px

@mixin bordered($color: blue, $width: 1px) {
  border: $width solid $color;
}
p { @include bordered(blue,2px); }

函数

        @if
  • (1)@if…(单向选择);
  • (2)@if…@else…(双向选择);
  • (3)@if…@else if…(多向选择);
 $num1: 8;
 .content {
     @if $num1 >= 20 { 
         width: 150px; color:red 
     } @else if $num1 <= 10{   /* 此样式块会被使用*/
         width: 200px; color:blue
     } @else { 
         width: 350px; color:green 
     }
 }
        @for

方式1:@for $i from 开始值 through 结束值

方式2:@for $i from 开始值 to 结束值

 /* SCSS */
 @for $i from 1 through 5 {
      .banner-#{$i} {
         background-image: url(/images/banner-#{$i}.png);
     }
 }
 ​
 /* CSS 编译后 */
 .banner-1 {
   background-image: url(/images/banner-1.png); }
 ​
 .banner-2 {
   background-image: url(/images/banner-2.png); }
 ​
 .banner-3 {
   background-image: url(/images/banner-3.png); }
 ​
 .banner-4 {
   background-image: url(/images/banner-4.png); }
 ​
 .banner-5 {
   background-image: url(/images/banner-5.png); }
        @each

方法:@each $var in 列表值

{

    ……

}

 /* SCSS */
 @each $pic in about, news, project,contact {
   category-pic .#{$pic} {
   background-image: url(/images/pic/#{$pic}.png); }
 }
 ​
 /* CSS 编译后 */
 category-pic .about {
   background-image: url(/images/pic/about.png); }
 ​
 category-pic .news {
   background-image: url(/images/pic/news.png); }
 ​
 category-pic .project {
   background-image: url(/images/pic/project.png); }
 ​
 category-pic .contact {
   background-image: url(/images/pic/contact.png); }
        @while
 /* SCSS */
 $i: 6;
 @while $i > 0 {
   .item-#{$i} { width: 2em * $i; }
   $i: $i - 2;
 }
 /* CSS 编译后 */
 .item-6 {
     width: 12em;
 }
 .item-4 {
     width: 8em;
 }
 .item-2 {
     width: 4em;
 }

扩展

       justify-content
justify-content 是 SCSS 中的一个属性,用于控制flex容器内元素在主轴方向上的对齐方式。它可以取以下值:

flex-start:flex容器内的元素从左到右排列,即左边对齐。
flex-end:flex容器内的元素从右到左排列,即右边对齐。
center:flex容器内的元素居中,即容器中心对齐。
space-between:flex容器内的元素在主轴方向上平均分布,即两端对齐。
space-around:flex容器内的元素在主轴方向上平均分布,并在两端保持相同的外边距,即around对齐。
stretch(默认值):flex容器内的元素会尽可能地扩展,以填充整个容器。

例子:设置内部元素横向自动排布换行:

  1. 将容器设置为 flex 布局。
  2. 允许容器内的子元素换行。如果子元素数量超过容器宽度,它们将自动换行。
  3. 将子元素平均分布在整个容器中,并在左右两边保持一定的外边距。
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;//使子元素平均分布在一行上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/578536.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Redis 开发】全局ID生成器

全局ID生成器 为了增加ID的安全性&#xff0c;我们可以不直接使用Redis自增的数值&#xff0c;而是拼接一些其他信息&#xff1a; ID的组成部分&#xff1a; 符号位:1bit,一直为0 时间戳:31bit&#xff0c;一秒为单位&#xff0c;可以使用69年 序列号:32bit&#xff0c;秒内…

idea 通过maven构建无法使用@SpringBootApplication

问题描述 SpringBootApplication标红&#xff0c;没有提示&#xff0c;无法启动springboot使用maven构建。通过idea的标准版本构建 原因 springboot构建启动依赖spring-boot-maven-plugin idea的标准版本没有指定构建版本&#xff0c;然后在springboot-parent里面没有指定默…

(已解决)PyQT5问题:控件和背景色同色,如何解决?

一、问题复现 难看到吐是不是 二、解决方案 拖动一个widget&#xff0c;设置其背景色&#xff0c;并且右键放到最后一层 三、解决结果 如上图所示 四、问题原因 直接在窗体右键设置背景色&#xff0c;由于Form是父类&#xff0c;即其下所有控件都与其同色&#xff0c;即使…

知识在人工智能中的核心作用:连接主义与符号主义的交融

知识在人工智能中的核心作用&#xff1a;连接主义与符号主义的交融 一、连接主义与深度学习的崛起二、感知与认知&#xff1a;AI的双眼与大脑三、知识的多元表示与处理四、符号主义与知识工程的实践五、知识在AI中的核心地位六、AI的具体应用案例分析七、知识图谱&#xff1a;认…

Linux多线程(一) 线程的创建与控制

一、线程概述 线程是轻量级的进程&#xff08;LWP&#xff1a;light weight process&#xff09;&#xff0c;在Linux环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合&#xff0c;指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位&#…

element-ui et -i 编译默认主题报错:ReferenceError: primordials is not defined

报错信息如下 fs.js:40 } primordials;^ ReferenceError: primordials is not defined导致这个问题的原因&#xff1a;node和gulp版本冲突&#xff01;&#xff01; 我使用的是node 14版本 解决方法&#xff1a; 看了好几个帖子&#xff0c;都推荐使用node 11.15.0版本&am…

css中新型的边框设置属性border-block

border-block 是 CSS 中的一个属性&#xff0c;主要用于在样式表中一次性设置元素的逻辑块向边框的属性值。这个属性是简写属性&#xff0c;可以同时设置 border-block-width、border-block-style 和 border-block-color。其中&#xff0c;border-block-start 用于设置元素的开…

物联网应用技术综合实训室解决方案

一、背景 随着物联网技术的快速发展和广泛应用&#xff0c;物联网产业已经成为新的经济增长点&#xff0c;对于推动产业升级、提高社会信息化水平具有重要意义。因此&#xff0c;培养具备物联网技术应用能力的高素质人才成为了迫切需求。 传统的教育模式往往注重理论教学&…

新科技辅助器具赋能视障生活:让盲人出行融入日常

随着科技日新月异的发展&#xff0c;一款名为蝙蝠避障专为改善盲人日常生活的盲人日常生活辅助器具应运而生&#xff0c;它通过巧妙整合实时避障与拍照识别功能&#xff0c;成功改变了盲人朋友们的生活格局&#xff0c;为他们提供了更为便捷、高效的生活体验。 这款非同…

DevOps(十五)如何创建参数化的Jenkins Job

一、Jenkins参数化 在Jenkins中创建参数化的Job允许你在构建过程中动态输入一些值&#xff0c;这样可以让构建过程更加灵活和通用。以下是创建参数化Jenkins Job的步骤&#xff1a; 1、 创建新的Job 登录到Jenkins控制台。点击左侧的“新建任务”或“Create new jobs”。输入…

RocketMQ 部署

RocketMQ 部署 1、安装依赖&#xff08;Java&#xff09; [rootMicroservices ~]# mkdir -p /data/businessServer/ [rootMicroservices ~]# cd /data/businessServer/# 获取安装包&#xff08;下载较慢&#xff09; [rootMicroservices businessServer]# wget https://githu…

【Redis 开发】(Feed流的模式,GEO数据结构,BitMap,HyperLogLog)

Redis FeedTimeline GEOBitMapHyperLogLog Feed Feed流产品有两种常见模式: Timeline:不做内容筛选&#xff0c;简单的按照内容发布时间排序&#xff0c;常用于好友或关注。例如朋友圈 优点:信息全面&#xff0c;不会有缺失。并且实现也相对简单 缺点:信息噪音较多&#xff0c…

「51媒体」城市推介会,地方旅游推荐,怎么做好媒体宣传

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 城市推介会和地方旅游推荐是城市形象宣传的重要组成部分&#xff0c;通过有效的媒体宣传可以提升城市的知名度和吸引力。&#xff1a; 一&#xff0c;活动内容层面&#xff1a; 突出亮点…

公认最好的随身WiFi的格行5G随身WiFi真实测评!格行5G和纽曼5G随身WiFi哪个好?5G随身WiFi推荐第一名

随着5G信号基站的铺设逐渐完善&#xff0c;各大通讯移动公司也都适时的推出了属于自己的5G随身WiFi。其中老牌企业纽曼与格行的5G随身WiFi最受大家的欢迎。那么二者到底谁才是5G设备中的王者呢&#xff1f;今天就做一个全面测评。 一、首先是颜值党们最为关注的外观问题 纽曼5…

Java中Synchronized的锁升级

锁升级过程 当JVM启动后&#xff0c;一个共享资源对象直到有线程第一个访问时&#xff0c;这段时间内是处于无锁状态&#xff0c;对象头的Markword里偏向锁标识位是0&#xff0c;锁标识位是01。 Tips&#xff1a;当一个共享资源首次被某个线程访问时&#xff0c;锁就会从无锁状…

记录AE学习查漏补缺(持续补充中。。。)

记录AE学习查漏补缺 常用win下截图WinShifts导入AI/PS工程文件将图层上移一个位置或者下移一个位置展示/关闭图层标线/标度放大面板适应屏幕大小 CtrlAltF 关键帧熟记关键参数移动锚点位置加选一个关键参数快速回到上下一帧隐藏/显示图层关键帧拉长缩短关键帧按着鼠标左键不松手…

新款闯关游戏制作

目前制作4关, cpp. #include "c.h" #include "Level1.h" using namespace std; int main() {srand(time(0)); initgraph(600, 600); BeginBatchDraw();IMAGE a; loadimage(&a, _T("1.jpg")); putimage(0, 0, &a);setbkmode(TRANSPAREN…

【Vue】如何创建一个Vue-cli程序

一、准备工作 1、下载Node.js 官网地址 https://nodejs.org/en 2、查看版本 cmd下通过node-v,查看版本号&#xff1b; cmd下通过npm-v,查看是否打印版本号。 3、安装淘宝加速器 npm install cnpm -g 4、安装Vue-cli cnpm install vue-cli -g 二、创建Vue程序 1、创建一个V…

【数据分析面试】32.矩阵元素求和 (Python: for…in…语句)

题目&#xff1a;矩阵元素求和 &#xff08;Python) 假设给定一个整数矩阵。你的任务是编写一个函数&#xff0c;返回矩阵中所有元素的和。 示例 1&#xff1a; 输入&#xff1a; matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9]]输出&#xff1a; matrix_sum(matrix) -> 45…

Android 12 Starting window的添加与移除

添加&#xff1a; 04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.StartingSurfaceController.createSplashScreenStartingSurface(StartingSurfaceController.java:87) 04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.…