Sass实现文字两侧横线及Sass常用方案

news2024/11/15 23:28:03

Sass常用方案及Sass实现文字两侧横线

  • 1.Sass实现文字两侧横线
  • 2.`用Sass简化`媒体查询
  • 3.使用继承+占位符实现样式复用
  • 4.Sass 模块化
  • 5.lighten 和 darken

自我记录

1.Sass实现文字两侧横线

@mixin 的基本作用:

  • 代码复用:把常用的样式封装在一起,不需要重复写相同的代码。
  • 参数化:可以通过参数动态生成样式,提高灵活性。
  • 逻辑处理:结合 Sass 的控制语句(如 @if、@for),可以实现条件逻辑的样式生成。
// 抽离公共样式
@mixin before-after-common-line($width: 40rpx) {
  content: '';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: $width;
  height: 1rpx;
  background: #333333;
  @content;
}
.test{
  position: relative;
    &::before {
      @include before-after-common-line {
        left: -64rpx;
      }
    }
    &::after {
      @include before-after-common-line(40rpx) {
        right: -64rpx;
      }
    }
}

在这里插入图片描述

简单记录一下sass的基础复用

2.用Sass简化媒体查询

// 用Sass的混合实现媒体查询
$breakpoints: (
  phone:(320px, 480px),
  pad:(481px, 768px),
  notebook:(769px, 1024px),
  desktop:(1025px, 1200px),
  tv:1201px
);

@mixin responseTo($d_name) {
  $bp: map-get($breakpoints, $d_name);

  @if type-of($bp)=='list' {
    @media (min-width:nth($bp, 1)) and (max-width:nth($bp, 2)) {
      @content;
    }
  }
  @else {
    @media (min-width:$bp) {
      @content;
    }
  }
}

使用

.nav {
  @include responseTo('phone') {
    width: 100px;
  }

  @include responseTo('pad') {
    width: 200px;
  }
}

3.使用继承+占位符实现样式复用

@mixin 混合注入 会冗余代码
@extend 继承 会去直接继承父类
@extend 配合 % 占位符使用更完美

//完美继承 使用%占位符去除无用类代码
%tip {
  font-size: 28px;
  opacity: 0.8;
  text-decoration: underline;
}

.tip-msg {
  @extend %tip;
  color: #666;
}

.tip-waring {
  @extend %tip;
  color: orange;
}

.tip-error {
  @extend %tip;
  color: red;
}

.tip-success {
  @extend %tip;
  color: green;
}

普通继承

// 普通继承 会冗余 .tip 代码
.tip {
  font-size: 28px;
  opacity: 0.8;
  text-decoration: underline;
}

.tip-msg {
  @extend .tip;
  color: #666;
}

.tip-waring {
  @extend .tip;
  color: orange;
}

.tip-error {
  @extend .tip;
  color: red;
}

.tip-success {
  @extend .tip;
  color: green;
}



// 混合注入样式 会冗余代码
@mixin tips-mixin {
  font-size: 28px;
  opacity: 0.8;
  text-decoration: underline;
}
.tip-msg-include {
  @include tips-mixin;
  color: #666;
}

.tip-waring-include {
  @include tips-mixin;
  color: orange;
}

.tip-error-include {
  @include tips-mixin;
  color: red;
}

.tip-success-include {
  @include tips-mixin;
  color: green;
}

4.Sass 模块化

@import 运行时 与css一样
@import 编译时 直接把编译结果生成 sass不建议用作编译时态 问题如下三点

  • 混淆: 需要区分是运行时还是编译时状态
  • 污染: 变量冲突
  • 私有: 只要在文件写了就全部暴露出去了,不像js需要导出

@use

  • 命名空间 就是文件名字 as * | xx就是别名
  • 私有性 _ 开头$_color
// @import url('xxxx.scss'); // 运行时
// @import './xxxx.scss';// 编译时
// @use '../../../common.scss';// 命名空间 就是文件名字
// @use './common.scss';// 命名空间 就是文件名字
// @use './abc.scss';// 命名空间 就是文件名字
// .test {
//   color: common.$color;
// }
// .test1 {
//   color: abc.$color;
// }

@use './common.scss' as *;// 命名空间 别名
@use './abc.scss' as b;// 命名空间 别名

.test {
  color: $color;
}
.test1 {
  color: b.$color;
}
// 私有性 加_就可以

5.lighten 和 darken

在这里插入图片描述

lighten 使颜色变浅 color:lighten($color: #000000, $amount: 0);

  • 第一个是颜色
  • 第二个是变浅多少
    darken 使颜色变深 color:darken($color: #000000, $amount: 0);
  • 第一个是颜色
  • 第二个是变深多少
// @use 'sass:color';

body {
  display: flex;
  justify-content: space-around;
  align-items: center;
}

.btn {
  border: none;
  outline: none;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  text-align: center;
  transition: 0.1s;
  width: 100px;
  height: 40px;
  border-radius: 10px;
  margin: 0 auto;
}

$btnColors: #409eff, #67c23a, #e6a23c, #f56c6c, #6c6d71;

@for $i from 1 through length($btnColors) {
  .btn.type-#{$i} {
    $bg: nth($btnColors, $i);
    $color: #fff;
    background-color: $bg;
    color: $color;

    &:hover {
      background-color: lighten($bg, 10%);
    }

    &:active {
      background-color: darken($bg, 10%);
    }

    &:disabled {
      background-color: lighten($bg, 20%);
      color: lighten($color, 40%);
      cursor: not-allowed;
    }
  }

}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>按钮颜色</title>
  <link rel="stylesheet" href="./index.css"></link>
</head>
<body>
  <button disabled class="btn type-1">按钮</button>
  <button class="btn type-2">按钮</button>
  <button class="btn type-3">按钮</button>
  <button class="btn type-4">按钮</button>
  <button class="btn type-5">按钮</button>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++和OpenGL实现3D游戏编程【目录】

欢迎来到zhooyu的专栏。 个人主页&#xff1a;【zhooyu】 文章专栏&#xff1a;【OpenGL实现3D游戏编程】 贝塞尔曲面演示&#xff1a; 贝塞尔曲面演示zhooyu 本专栏内容&#xff1a; 我们从游戏的角度出发&#xff0c;用C去了解一下游戏中的功能都是怎么实现的。这一切还是要…

【刷题日记】螺旋矩阵

54. 螺旋矩阵 这个是一道模拟题&#xff0c;但我记得我大一第一次做这道题的时候真的就是纯按步骤模拟&#xff0c;没有对代码就行优化&#xff0c;导致代码写的很臃肿。 有这么几个地方可以改进。 看题目可以知道最终的结果一定是rows*cols个结点,所以只需要遍历rows*cols次…

Docker部署镜像 发布容器 容器网络互联 前端打包

准备工作 导入相关依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version></dependency><dependency><groupId>com.baomidou<…

CLIP论文中关键信息记录

由于clip论文过长&#xff0c;一直无法完整的阅读该论文&#xff0c;故而抽取论文中的关键信息进行记录。主要记录clip是如何实现的的&#xff08;提出背景、训练数据、设计模式、训练超参数、prompt的作用&#xff09;&#xff0c;clip的能力&#xff08;clip的模型版本、clip…

【Python机器学习】序列到序列建模——对序列到序列模型的增强

有两种增强训练序列到序列模型的方法&#xff0c;可以提高模型的精确率和可扩展性。 使用装桶法降低训练复杂度 输入序列可以有不同的长度&#xff0c;这使短序列的训练数据添加了大量填充词条。过多的填充会使计算成本高昂&#xff0c;特别是当大多数序列都很短&#xff0c;…

你的绩效是不是常年都是B

原创不易&#xff0c;求赞&#xff0c;求关注&#xff0c;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f;&#x1f64f; 目录 原创不易&#xff0c;求赞&#xff0c;求关注&#xff0c;&#x1f64f;&#x1f64f;&#x1f64…

村落检测系统源码分享

村落检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Chainlit集成Langchain并使用通义千问AI知识库高级检索(多重查询)网页对话应用教程

前言 之前写过几篇利用Chainlit集成Langchain和国内通义千问大模型集成的知识库检索增加的网页对话应用的技术文章。文章中关于Langchain的知识库检索只是入门级别的教学&#xff0c;本篇文章针对Langchain的知识库高级检索技术和之前对话应用的代码进行完善。 本次主要改进的…

月薪14K的网安公司,来做一下笔试题呀~

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 网络安全简介…

leetcode-枚举算法

1.两数之和 题目一&#xff1a;两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素…

JVM JMM 专题篇 ( 12000 字详解 )

一&#xff1a;JVM 简介 JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java 虚拟机&#xff0c;虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机&#xff1a;JVM、VMwave、Virtual Box&#xff0c;JVM 和其…

微调大模型不再难:LoRA方法带你轻松节省99%的训练成本!

我们之前说大模型有四种玩家&#xff0c;其中前三种都是要做模型训练的。而大部分公司或个人&#xff0c;都是在第二种开源大模型的基础上来做训练。 而这种训练方式又分为两种。一种要么就是从头训练&#xff0c;要么就Fine-tuning接着开源模型来训练&#xff0c;在基座模型已…

IP 协议分析《实验报告》

目录 一、 实验目的 二、实验设备和环境 三、实验记录 1、实验环境搭建 2、IP 协议分析 1.设置抓包接口 2.IP 报文分析 3.报文长度计算 4.生存时间 TTL 5.分析总结 3、IP分片 1.IP 分片简介 2.捕获分组 3.结果分析 一、 实验目的 1、掌握 IP 协议数据报格式&…

知识图谱与异构图神经网络(7)--1

知识图谱是由实体(节点)和关系( 不同类型的边) 组成的多关系图。作为一种非常重要又特殊的图结构数据&#xff0c;知识图谱被广泛应用在人工智能和自然语言处理领域&#xff0c;从语义解析、命名实体消歧到问答系统、推荐系统中都可以看到来自知识图谱的技术推动。本质上&#…

树和二叉树基本术语、性质

目录 树的相关知识 常见考点1&#xff1a;结点数总度数&#xff0b;1 常见考点2&#xff1a; 度为m的树和m叉树 常见考点3&#xff1a;度为m的树第i层至多有结点数 常见考点4&#xff1a;高度为h的m叉树至多有结点 ​编辑 常见考点5&#xff1a;高度为h的m叉树&#xff0c;高…

可靠性:MSTP 和 VRRP 配置实验

一、拓扑&#xff1a; 说明&#xff1a; 1、交换机 SW1、2、3 分别起 vlan 10、20&#xff0c;都以 trunk 方式连接 2、 PC1、2 分别属于 vlan 10、20 3、SW1、2 起 vlan 100 做为管理段&#xff0c;网关地址分别以 100.1.1.1/24 和 200.1.1.2/24 和 AR1相连 …

监控易监测对象及指标之:全面监控InterSystems Cache数据库

随着企业数字化转型的深入&#xff0c;数据库作为核心的信息资产&#xff0c;其性能和稳定性对于保障业务连续性至关重要。InterSystems Cache作为一款高性能、可扩展的数据库管理系统&#xff0c;广泛应用于医疗、金融、制造等行业。为了确保Cache数据库的高效运行和稳定性能&…

Oracle 启动动态采样 自适应执行计划

为了解决因为统计信息缺失或者统计不够准确而引起的问题&#xff0c;从9iR2的版本开始Oracle推出了动态采样&#xff08;Dynamic Sampling&#xff09;功能&#xff0c;使SQL文在硬解析过程中动态地收集统计信息。 该功能在以后的版本上得到更进一步的增强&#xff0c;从11.2.0…

创建一个Java项目并在项目中新建文件,最后实现程序简单的输出

目录 前言 一、建立项目及新建Java类 二、输入简单代码实现输出 前言 1.本文所讲的是java程序设计语言&#xff0c;其内容是如何在id中新建一个项目&#xff0c;并新建一个Java文件&#xff0c;在其内输入相关代码并对其输出&#xff1b; 2.Java文件的编写以收入到我的专栏…

Docker torchserve 部署模型流程

1.拉取官方镜像 地址: https://hub.docker.com/r/pytorch/torchserve/tags docker pull pytorch/torchserve:0.7.1-gpu2. docker启动指令 CPU docker run --rm -it -d -p 8380:8080 -p 8381:8081 --name torch-server -v /path/model-server/extra-files:/home/model-serve…