波旁威士忌在岩石上:凉爽的功能,以改善您的无礼

Bourbon提供了一些超级有用的功能,这是对Sass提供的本机功能的欢迎。 让我们看一些您应该考虑添加到玻璃杯中的酷示例。

功能

在mixin帮助我们更有效地重复样式的地方,Sass函数在逻辑上帮助我们:接受参数并返回值。 Bourbon为各种用例提供​​了一些非常方便的Sass功能。 在本教程中,我们将看一下以下选择:

  • golden-ratio()
  • modular-scale()
  • linear-gradient
  • tint()
  • shade()
  • em()

黄金比例()

使用此功能,很容易计算出一定数字的黄金分割率 (1:1.6180339)。 作为一个提示,我应该提一下,此函数正在逐渐被弃用,取而代之的是modular-scale()函数。 例如,如果要在版式中创建“有意义的”关系,则golden-ratio()函数很有用。 布局中的结构关系也是如此。

印刷规模

如果要使用黄金比例生成模块化的比例尺来构造各种类型的大小,则可以应用此函数来计算任意数字的黄金平均值 。 使用它来建立印刷比例很简单:

函数的第一个参数需要一个像素或em值-在此由上面定义的Sass变量表示。 第二个参数需要一个整数作为增量/减量值 (…-3,-2,-1、0、1、2、3…),以便使用黄金比例上下移动刻度。

这是使用黄金比例的印刷比例:

萨斯:

$base-font-size: 10px

body
  font-size: $base-font-size

.footnote
  font-size: golden-ratio($base-font-size, -1)
  // decrement size value proportional to golden ratio by factor 1
h3
  font-size: golden-ratio($base-font-size, 1)
h2
  font-size: golden-ratio($base-font-size, 2)
  // increment size value proportional to golden ratio by factor 1
h1
  font-size: golden-ratio($base-font-size, 3)

CSS输出:

body {
  font-size: 10px;
}

.footnote {
  font-size: 6.18px;
}

h3 {
  font-size: 16.18px;
}

h2 {
  font-size: 26.179px;
}

h1 {
  font-size: 42.358px;
}

如果需要舍入输出,可以使用Sass的内置函数来实现此目的:

  • abs()
  • floor()
  • ceil()

萨斯:

.footnote
  font-size: floor( golden-ratio($base-font-size, -1) )
引擎盖下

在内部,黄金比例函数使用的是模块化比例函数,其中比例变量$golden用于黄金比例。

萨斯:

@function golden-ratio($value, $increment) {
  @return modular-scale($value, $increment, $golden)
}

注意:奇妙的Bourbon Neat网格框架默认情况下还对装订线和列使用黄金分割率。

模块化规模()

如果您想使用“更有意义的字体”,并希望基于某种数字关系来为各种字体大小计算模块化比例,则此功能可能对您很有趣。 它可以为您计算各种模块化比例—黄金比例只是十七种预烤选项之一。

萨斯:

$base-font-size: 10px
// Your choice of ratio saved in a variable to change it in one place
// Here I used the double-octave ratio
$type-of-scale: $double-octave

body
  font-size: $base-font-size

.footnote
  font-size: modular-scale($base-font-size, -1, $type-of-scale)

h3
  font-size: modular-scale($base-font-size, 1, $type-of-scale)

h2
  font-size: modular-scale($base-font-size, 2, $type-of-scale)

h1
  font-size: modular-scale($base-font-size, 3, $type-of-scale)

标度变量

波旁威士忌针对各种比例准备了这些预定义比例的变量。 为了创建一致的设计,最好不要在一个项目中为印刷比例混合不同的比例。 通过确定最能反映您意图的一个比例来保持其优雅。

萨斯:

$base-font-size: 10px

h2
  font-size: modular-scale($base-font-size, 2, 1.6180)

线性梯度()

如果您需要将线性渐变与背景图像混合在一起,则此功能将节省大量代码。 渐变的颜色由开始颜色 , 结束颜色和两者之间的可选终止色点定义 。 这些附加的色标使您可以在起始颜色和结束颜色之间创建更复杂的过渡,或者提供更彩色的渐变。

看看这个可怕的渐变。 在这里,我认为很容易看到linear-gradient()函数如何工作以及如何利用它:

萨斯:

.horrible-gradient
  +background-image(linear-gradient(
    45deg,                // directon of gradient line
    red 10%,              // starting color
    yellow 15%,   // S    // bleeds into red
    yellow 40%,   // T
    orange 45%,   // O    // bleeds into yellow
    orange 50%,   // P
    orange 70%,   // S    // bleeds into green
    green 90%)            // ending color
  )
    height: 50px

对于颜色,您可以选择提供% , px或em值。 这些定义了该颜色应该延伸的距离。 不过,您可能大部分时间应该坚持使用% 。 如果不提供百分比作为极限值,则颜色将均匀地拉伸,除以渐变中的颜色数量。

您可以选择为第一个参数提供角度-可以是value + deg形式,也to是direction :

  • 45deg
  • 90deg
  • to left top
  • to right
  • to left

等等。

Sass:具有方向参数-从左到右

.gradient
  +background-image(linear-gradient(to right, yellow 50%, blue 60%))
  height: 50px

渐变从左向右流动

或者使用hsla()函数和多个linear-gradient()函数更复杂的东西:

萨斯:

.gradient
  +background-image(linear-gradient(
    hsla(0, 100%, 100%, 0.25) 0%,
    hsla(0, 100%, 100%, 0.08) 50%, transparent 50%),
    linear-gradient(#4e7ba3, darken(#4e7ba4, 10%)))
  height: 50px

色调和阴影颜色功能

您可能已经熟悉Sass内置的功能,如lighten()和darken()类的颜色,它们可以完全满足您的期望。 为了您的方便,波旁威士忌还提供了另外两种出色的色彩功能。 这两个函数均使用颜色和百分比参数来微调颜色混合。

着色()

色彩功能通过将其与白色混合来改变颜色。 它需要第二个参数,该参数取要与颜色混合的白色的百分比。

萨斯:

$light-blue: #2F7DD1

.tint
  background: tint($light-blue, 25%)
  height: 100px

这没有tint():

这是与tint()一起使用的:

shade()

阴影功能通过将其与黑色混合来改变颜色。 此功能还使用颜色和百分比参数来微调颜色混合。

萨斯:

$light-blue: #2F7DD1

.shade
  background: shade($light-blue, 25%)
  height: 100px

在这里,我们看到没有shade()会发生什么:

这里是shade():

em()

此功能为您计算em的像素。

萨斯:

font-size: em(12)

CSS输出:

font-size: 0.75em;

干杯!

到目前为止,这已经很好地覆盖了波旁威士忌。 在上两节教程中,我们详细介绍了它提供的一些最有用的mixin和功能。

在本系列的下一部分中,我们将介绍Bourbon Neat:Sass和Bourbon的网格框架。

翻译自: https://webdesign.tutsplus.com/tutorials/bourbon-on-the-rocks-cool-functions-to-improve-your-sass--cms-24798

Mooncake架构:基于KVCache解耦的LLM推理优化方案 在大语言模型推理中,KVCache是Transformer解码过程中用于缓存历史Key/Value向量的核心数据结构,它避免了序列重复计算,但会随上下文长度线性增长,成为显存占用的主要部分。其原理是在自回归生成时,将已计算过的注意力键值对存储下来,供后续Token生成时直接使用,从而提升计算效率。这项技术的核心价值在于,通过高效管理KVCache,可以显著降低长序列推理时的显存压力,提升GPU资源利用率。在实际应用场景中,尤其是在处理长上下文对话、高并发请求时,KVCache的管理策略直接决定了服务的吞吐量 阅读详情

相关推荐

无人机基本组成部件

无人机基本组成部件

qq_37410522的博客 1万+

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 389

FPGA新手必看:用USB转TTL实现串口通信的完整流程(附CH340G电路详解)

本文为FPGA新手提供了通过USB转TTL模块实现串口通信的完整实战指南。详细解析了CH340G电路设计要点、硬件连接方法,并分享了经过验证的Verilog代码框架,帮助读者快速掌握FPGA与PC通信的核心技术,解决电平匹配与波特率设置等常见问题。

cake8的博客 1048

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 219

利用AI辅助工具Codex在30分钟内高效生成发明专利说明书草案

Codex 是什么?简单说,它是 OpenAI 推出的一个高级 AI 工作平台,最初定位是软件开发辅助工具,但现在它的能力边界已经远远超出了写代码。根据 OpenAI 官方信息,每周有超过 500 万人使用 Codex,其中 40% 的新用户是非开发者,包括分析师、营销人员、研究人员等。这意味着 Codex 正在从一个程序员专属工具,演变为一个面向广泛知识工作者的生产力中枢。 那么,它和我们今天要谈的“写发明专利”有什么关系?核心在于 Codex 的“角色专属插件”和“上下文构建”能力。它不再只是根据零散的

weixin_29053067的博客 318

pyinstaller+scrapy打包出现错误:OSError: could not get source code

错误如下: Traceback (most recent call last): File "scrapy\utils\defer.py", line 55, in mustbe_deferred File "scrapy\core\spidermw.py", line 60, in process_spider_input File "scrapy\core\scraper.py", line 152, in call_spider File "scrapy\utils\misc.py

kin的博客 1759

Python+Agent入门笔记(二):列表推导式、模块和异常,这些写 Agent 前得会

接上一篇《Python+Agent入门笔记(一)》。基础语法跑通之后,这篇聊几块日常写脚本绕不开的东西。还是按 JS/Go 开发者的视角写,尽量记录我实际卡过的地方。

qq_41241612的博客 430

基于java实现的弹幕视频网站

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示弹幕视频网站,在弹幕视频网站可以查看首页、视频信息、商品信息、论坛信息、我的、跳转到后台、购物车、客服等内容前台首页界面图登录,通过登录填写账号、密码等信息进行登录操作登录界面图视频信息界面图。

DC5621的博客 1332

详解Python条件语句

在 Python 中,if...else 是一种条件语句,可以根据给定的条件执行不同的操作。这个语句通常用于控制程序的流程。

2601_96798737的博客 205

从GEFCom到UCI:手把手教你构建电力负荷时空预测模型(Python版)

本文详细介绍了如何从GEFCom到UCI数据集构建电力负荷时空预测模型(Python版),涵盖数据集解析、时空特征工程、模型架构设计及工业部署优化。通过多任务图神经网络(MTGNN)实现高精度预测,并结合边缘计算和在线学习机制提升实际应用效果,为能源管理系统提供可靠解决方案。

lambda的博客 812

Cadence OrCAD常见引脚错误排查指南:从原理图到封装的完整解决方案

本文详细解析Cadence OrCAD设计中常见的引脚错误问题,提供从原理图到封装的系统化解决方案。涵盖错误诊断、元件库修复、封装管理及自动化处理技巧,帮助工程师高效解决ORCAP-36022等典型错误,确保设计流程顺畅。

weixin_29294975的博客 255

微调数据集构建:清洗、标注、格式转换完整流程

摘要解决微调数据直接抓取导致的噪声污染、模式崩溃与Token错位问题。适用于需为大模型SFT阶段构建高质量训练集的数据与算法工程师。读完可获得包含启发式清洗、MinHash去重及ChatML格式对齐的完整可运行数据流水线。关键词数据清洗、MinHash去重、数据标注、ChatML、SFT数据集、数据配比背景与问题大模型微调效果的上限由数据质量决定,直接使用未经处理的原始语料极易引发模型复读、幻觉与指令遵循能力退化。

2402_85729970的博客 485

RK3588开发笔记-5G模块(SIM8200、广和通FM160、移远RM500U)调试笔记

RK3588 CPU提供了丰富的外设接口,本文主要介绍通过usb3.0接口驱动5G模块来实现5g无线数据传输功能。在物联网和边缘计算领域,5G网络支持的高速率、低延时连接为应用带来了更多可能性。RK3588作为一款高性能SoC,适合用于5G联网应用。SIM8200广和通FM160和移远RM500U。在RK3588上调试5G模块可以为设备提供稳定的高速联网能力。本文介绍了如何配置和调试SIM8200、广和通FM160和移远RM500U模块,通过AT指令和QMI/MBIM工具实现5G数据连接。

flypig has a dream! 2669

Python3 协程:异步编程的核心机制与实战

协程是解决I/O密集型任务等待瓶颈的高效机制,相比线程更轻量、无锁开销。从yield到async/await的演进,使异步编程语义清晰、易于理解。通过async/await可实现并发执行多个任务(如gather、create_task),显著提升网络请求、爬虫等场景性能。关键在于使用异步库(如aiohttp)替代同步库,避免阻塞事件循环。合理控制超时与并发数,才能发挥协程最大优势。

Lxn2zh的博客 159

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python如何控制浏览器

Python 可以通过 Selenium、Playwright 等工具实现浏览器自动化,从打开网页到执行复杂交互操作均可脚本化完成。Selenium生态成熟

2601_96797912的博客 75

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 267

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

torch.compile 差异仅 1e-6,边界样本预测为何翻转

torch.compile 加速后输出与 eager 不一致,部分预测翻转。逐层对比与 graph break 分析定位到动态分支翻转根因。容差回归仅适用于无分支翻转场景,零容忍场景应禁用编译。

昨日种种,皆成今我。今日种种,皆成新我。 158

Python 100讲课程导航:第08篇《Python input 与类型转换:构建可靠的交互程序》

本文详解Python中input()的返回类型为字符串,强调必须通过int()、float()等函数进行类型转换。重点讲解了输入验证的重要性,结合try-except处理ValueError等异常,实现可靠的交互程序。通过购物预算计算器实战,演示如何防范非法输入、处理边界值,并推荐使用Decimal避免浮点精度问题,提升程序健壮性。

铭渊老黄 133

【Python】国家中小学智慧教育平台电子教材批量下载与 PDF 合成实战

成果:两本语文电子课本(一年级上册 118 页 / 23MB、三年级上册 130 页 / 30.3MB),合计 248 页、约 54MB,单本下载加合成 40~60 秒,PDF 页数校验全部通过。经验教训SPA 站点的数据接口优先从 bundle 里挖,比抓页面稳得多;资源链接要按 private/public 分组看待,只取平台公开部分;页数、目录名这类“可推断”的信息,永远用实际响应验证一次;受限环境里“能不能跑浏览器”要在方案定稿前确认。后续计划:这版 PDF 是图片版,没有文字层;

木头大左的博客 122

魔塔社区微调训练Qwen2-1.5B-Instruct模型并烧录到‌RK3568开发板教程

本文基于Ubuntu 22.04 + CUDA 13.0.3环境,使用LLaMA-Factory框架对Qwen2-1.5B-Instruct模型进行LoRA微调,训练儿童故事生成专用模型。通过配置qwen模板、制作alpaca格式数据集、执行sft训练并合并LoRA权重,最终将模型转换为GGUF格式,并量化为Q4_K_M以适配RK3568嵌入式平台。全程支持国产镜像加速下载与显存优化,实现高效轻量化部署。

浅清秋慕夏的博客 184

【回眸】DeepSeek V4.1 Flash 快速上手与实战

本文介绍如何高效本地部署开源大模型,通过现代化工具链实现分钟级环境搭建。聚焦显存优化、一键安装、代码调用与多轮对话实现,解决“显存不足”“连接超时”等痛点,提供参数调优与结构化输出技巧,助力开发者在离线场景下快速构建稳定、高效的本地推理系统。

啤酒鸭的物联网开发记录博客 221

智叟云集-手机证据抓取系统的工程结构与应用入口

本文系统阐述手机证据抓取系统的工程结构与应用入口,涵盖四大层面:工程目录划分(Android、Python服务、Web页面、测试与构建工具);Android组件通过Manifest声明可启动页面,主界面由MainActivity管理;Python服务通过run.py解析参数并启动FastAPI应用,支持远程访问;浏览器页面采用HTML/CSS/JS分离架构,静态资源通过路径关联,实现动态交互。各模块分工明确,协同构建可运行的采集系统。

2301_77178996的博客 229

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 433

利用python中matplotlib.pyplot库绘制图

plt.plot(x,y) # x,y是每个点的坐标,plot()把每个点按顺序画折线。plt.subplots(2,2)表示绘制2*2的子图布局,axs[0,0]表示在第0行第0列绘制子图...coordinates_i[:,0]表示获取每一行(每一个spot)的第0列(x坐标)coordinates_i[:,1]表示获取每一行(每一个spot)的第0列(y坐标)plot.subplot(2,2,1) 表示子图布局是2*2的,开始绘制第一个。也可以导入数据绘制。可以设置color属性,设置颜色。

qq_46147236的博客 100

Spring Boot 自动配置原理

Spring Boot 自动配置由 @EnableAutoConfiguration 导入选择器,读取 jar 中 .imports 候选清单,经去重、排序、排除后逐类做条件判断,通过才注册 Bean。延迟导入让用户 Bean 优先,@ConditionalOnMissingBean 使默认配置让位。失效时查清单和 Negative matches。

2401_89855466的博客 368

【AI】方案设计:通用慢节奏策略游戏大模型智能体流水线开发架构设计——基于 OODA 文件总线与可插拔协议适配层

本方案设计了一种面向慢节奏策略游戏的通用智能体架构,通过C++与Python协同构建协议适配层,实现游戏状态与控制指令的解耦。核心采用文件目录作为唯一总线,基于OODA循环分阶段处理态势感知、研判、决策与执行,支持多协议接入、可审计回放、人在回路干预及自愈容错。大模型仅依赖统一结构化简报与通用指令,具备高兼容性与可扩展性,适用于复杂推演场景。

hknaruto的专栏 175
上一篇: wordpress静态方案_如何在WordPress管理员中添加新的配色方案
下一篇: canvas画布响应式_检查响应式导航:离开画布模式
daique1908
博客等级 码龄10年 29粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值