【CSS-4】掌握CSS文字样式:从基础到高级技巧
文字是网页内容的核心载体,良好的文字样式设计不仅能提升可读性,还能增强网站的整体视觉效果。本文将全面介绍CSS中控制文字样式的各种属性和技巧,帮助您打造专业级的网页排版。
1. 基础文字属性
1.1 字体设置 (font-family)
body {font-family: "Helvetica Neue", Arial, sans-serif;
}
最佳实践:
- 始终提供字体回退(fallback)选项
- 使用通用字体族(sans-serif, serif, monospace等)作为最后回退
- 包含空格或特殊字符的字体名需加引号
1.2 字号控制 (font-size)
p {font-size: 16px; /* 绝对单位 */
}h1 {font-size: 2em; /* 相对单位,基于父元素 */
}h2 {font-size: 1.5rem; /* 相对单位,基于根元素 */
}
单位选择建议:
- 响应式设计推荐使用
rem
- 需要精确控制时使用
px
- 避免使用
em
的过度嵌套导致的复合问题
1.3 字体粗细 (font-weight)
.bold-text {font-weight: 700; /* 或 bold */
}.light-text {font-weight: 300;
}
注意:
- 数值范围100-900,以100为增量
- 400对应normal,700对应bold
- 需确保使用的字体包含相应字重
1.4 字体样式 (font-style)
.italic {font-style: italic;
}.oblique {font-style: oblique;
}
区别:
italic
使用字体的专门斜体版本oblique
只是常规字体的倾斜版本
2. 高级文字效果
2.1 文字阴影 (text-shadow)
h1 {text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);/* 水平偏移 垂直偏移 模糊半径 颜色 */
}
高级技巧:
- 多重阴影效果:
text-shadow: 1px 1px 1px #999, 3px 3px 5px #555;
- 浮雕效果:
text-shadow: 1px 1px 1px white, -1px -1px 1px black;
2.2 文字描边 (text-stroke)
.outlined-text {-webkit-text-stroke: 1px black;text-stroke: 1px black;
}
注意:
- 目前仍需要浏览器前缀
- 可与
color: transparent
配合创建空心文字效果
2.3 文字渐变
.gradient-text {background: linear-gradient(to right, #ff8a00, #e52e71);-webkit-background-clip: text;background-clip: text;color: transparent;
}
2.4 文字装饰 (text-decoration)
现代CSS提供了更强大的装饰控制:
.link {text-decoration: underline wavy blue 2px;/* 线型 样式 颜色 粗细 */
}
新特性:
- 可以自定义下划线位置:
text-underline-offset: 4px;
- 控制下划线跳过字符:
text-underline-position: under;
3. 排版与布局
3.1 行高 (line-height)
article {line-height: 1.6; /* 无单位,基于当前字体大小 */
}
最佳实践:
- 正文推荐1.5-1.7的行高
- 标题可以稍小,1.2-1.4
3.2 字母间距 (letter-spacing)
.heading {letter-spacing: 0.05em; /* 相对单位 */
}.uppercase {letter-spacing: 2px; /* 绝对单位 */
}
使用场景:
- 大写字母通常需要额外间距
- 小字号文字可适当增加letter-spacing提升可读性
3.3 单词间距 (word-spacing)
.justified {word-spacing: 0.2em;
}
3.4 文本对齐 (text-align)
.center {text-align: center;
}.justify {text-align: justify;hyphens: auto; /* 自动连字符 */
}
4. 响应式文字设计
4.1 视口单位
h1 {font-size: calc(1.5rem + 3vw); /* 基础大小 + 视口比例 */
}
4.2 媒体查询调整
html {font-size: 16px;
}@media (min-width: 768px) {html {font-size: 18px;}
}
4.3 可变字体 (Variable Fonts)
@font-face {font-family: 'InterVar';src: url('Inter.var.woff2') format('woff2-variations');font-weight: 100 900;font-stretch: 75% 125%;
}body {font-family: 'InterVar', sans-serif;font-weight: 350;font-stretch: 98%;
}
优势:
- 单个文件包含多种字重和样式
- 可精细调整字重、宽度等参数
- 减少HTTP请求
5. 性能优化技巧
-
字体加载策略:
@font-face {font-family: 'CustomFont';src: url('font.woff2') format('woff2');font-display: swap; /* 显示回退字体直到自定义字体加载完成 */ }
-
子集化字体:仅包含需要的字符集
-
预加载关键字体:
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin>
-
使用系统字体栈提升性能:
body {font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
6. 无障碍考虑
-
足够的对比度:
body {color: #333;background-color: #fff; /* 对比度8.3:1 */ }
-
避免纯装饰性文字:使用CSS生成的内容而非图片中的文字
-
合适的字号:
html {font-size: 100%; /* 尊重用户浏览器设置 */ }
-
可调整的文字:
body {line-height: 1.5;max-width: 70ch; /* 最佳行长度 */ }
7. 结语
CSS文字样式远不止简单的颜色和大小调整。通过掌握本文介绍的各种属性和技巧,您可以创建既美观又实用的文字设计,同时兼顾性能和可访问性。记住,好的排版应当无形中提升内容的可读性和用户体验,而不是分散用户的注意力。随着CSS的不断发展,保持对新特性的关注,如CSS Text Module Level 4中的新功能,将帮助您始终走在网页设计的前沿。
相关文章:
【CSS-4】掌握CSS文字样式:从基础到高级技巧
文字是网页内容的核心载体,良好的文字样式设计不仅能提升可读性,还能增强网站的整体视觉效果。本文将全面介绍CSS中控制文字样式的各种属性和技巧,帮助您打造专业级的网页排版。 1. 基础文字属性 1.1 字体设置 (font-family) body {font-f…...

双碳时代,能源调度的难题正从“发电侧”转向“企业侧”
安科瑞刘鸿鹏 摘要 在“双碳”战略和能源结构转型的大背景下,企业储能电站逐步成为提升能源利用效率、增强用能韧性的重要手段。随着系统规模扩大与运行复杂度提升,如何对光伏、储能、负荷等流进行实时调控,成为智慧用能的关键。ACCU100微…...

3. 简述node.js特性与底层原理
😺😺😺 一、Node.js 底层原理(简化版) Node.js 是一个 基于 Chrome V8 引擎构建的 JavaScript 运行时,底层核心由几部分组成: 组成部分简要说明 1.V8 引擎 将 JS 编译成机器码执行࿰…...

OpenCV CUDA模块图像处理------创建一个模板匹配(Template Matching)对象函数createTemplateMatching()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 创建一个用于在 GPU 上执行模板匹配的 TemplateMatching 对象。 该函数返回一个指向 TemplateMatching 的智能指针(Ptr)…...

【Kubernetes】K8s 之 ETCD - 恢复备份
ETCD 是一个高可用的分布式键值存储,常用于存储配置信息和服务发现等。当系统出现故障或数据损坏时,能够快速恢复成先前的状态是维护系统稳定性的关键。ETCD 提供了备份和恢复功能,以确保数据持久性和可靠性,一起来看看如何操作吧…...
CMS、G1、ZGC、Shenandoah 的全面对比
大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构! Java 垃圾回收器从最早的 Serial 一步步演化,如今已经有了多款高性能、低延迟的 GC 垃圾收集器可选,比如 CMS、G1、…...

RabbitMQ 学习
MQ 的相关概念 什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。…...

如何轻松、安全地管理密码(新手指南)
很多人会为所有账户使用相同、易记的密码,而且常常多年不换。虽然这样方便记忆,但安全性非常低。 您可能听说过一些大型网站的信息泄露事件,同样的风险也可能存在于您的WordPress网站中。如果有不法分子获取了访问权限,您的网站和…...

AWS App Mesh实战:构建可观测、安全的微服务通信解决方案
摘要:本文详解如何利用AWS App Mesh统一管理微服务间通信,实现精细化流量控制、端到端可观测性与安全通信,提升云原生应用稳定性。 一、什么是AWS App Mesh? AWS App Mesh 是一种服务网格(Service Mesh)解…...

9.axios底层原理,和promise的对比(2)
😺😺😺 和promise的对比 完全可以直接使用 Promise 来发 HTTP 请求,比如用原生 fetch Promise 就可以实现网络请求功能👇 ✅ 用 Promise fetch 的写法(原生) fetch(‘https://api.example.c…...

用HTML5 Canvas打造交互式心形粒子动画:从基础到优化实战
用HTML5 Canvas打造交互式心形粒子动画:从基础到优化实战 引言 在Web交互设计中,粒子动画因其动态美感和视觉吸引力被广泛应用于节日特效、情感化界面等场景。本文将通过实战案例,详细讲解如何使用HTML5 Canvas和JavaScript实现一个「心之律…...
Gartner《How to Create and Maintain a Knowledge Base forHumans and AI》学习报告
核心观点 本研究是一份 Gartne关于如何创建和维护面向人类与人工智能(AI)的知识库的研究报告。报告强调了知识库在知识管理(KM)中的核心地位,尤其是在生成式人工智能(GenAI)时代,一个结构良好的知识库是知识管理成功的关键,反之则可能成为整个知识管理实践的失败点。…...

【软件工具】批量OCR指定区域图片自动识别内容重命名软件使用教程及注意事项
批量OCR指定区域图片自动识别内容重命名软件使用教程及注意事项 1、操作步骤1-5: 安装与启动:安装成功后,在桌面或开始菜单找到软件图标,双击启动。 导入图片:进入软件主界面,点击 “导入图片” 按钮&a…...
PyTorch 中cumprod函数计算张量沿指定维度的累积乘积详解和代码示例
torch.cumprod 是 PyTorch 中用于 计算张量沿指定维度的累积乘积(cumulative product) 的函数。 1、函数原型 torch.cumprod(input, dim, *, dtypeNone, outNone) → Tensor参数说明: 参数说明input输入张量dim累积乘积的维度dtype可选&…...
docker镜像下载到本地,并导入服务器
应用场景 : 本地环境可以连接外网,但服务器连接不了外网,直接用docker pull 命令执行拉起镜像报异常。 1.本地拉取xuxueli/xxl-job-admin:2.2.0及查看所有下载的镜像 docker pull xuxueli/xxl-job-admin:2.2.0 docker images 2.保存镜像到…...

数据通信与计算机网络——数字传输
主要内容 数字到数字转换 线路编码 线路编码方案 块编码 扰动 模拟到数字转换 脉冲码调制(PCM) Delta调制(DM) 传输模式 并行传输 串行传输 一、数字到数字转换 将数字数据转换为数字信号涉及三种技术: 线…...
oracle 归档日志与RECOVERY_FILE_DEST 视图
1. RECOVERY_FILE_DEST 视图的作用 RECOVERY_FILE_DEST 是 Oracle 数据库用于 管理快速恢复区(Fast Recovery Area, FRA) 的一个视图。FRA 是 Oracle 提供的一种集中存储恢复相关文件(如归档日志、备份文件、闪回日志等)的区域。…...

黄柏基因组-小檗碱生物合成的趋同进化-文献精读142
Convergent evolution of berberine biosynthesis 小檗碱生物合成的趋同进化 摘要 小檗碱是一种有效的抗菌和抗糖尿病生物碱,主要从不同植物谱系中提取,特别是从小檗属(毛茛目,早期分支的真双子叶植物)和黄柏属&…...

前端杂货铺——TodoList
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...

Spring Boot SSE流式输出+AI消息持久化升级实践:从粗暴到优雅的跃迁
在 AI 应用落地过程中,我们常常需要将用户和 AI 的对话以“完整上下文”的形式持久化到数据库中。但当 AI 回复非常长,甚至接近上万字时,传统的单条消息保存机制就会出问题。 在本篇文章中,我将深入讲解一次实际项目中对 对话持久…...
camera功能真的那么难用吗
背景 Android开发工作过程中,经常需要用到camera相关能力,比如:人脸识别,ai识别,拍照预览,摄像头录制等等需求。都需要使用到camera,且需要拿到camera的预览数据。但是每次开发这块代码都比较繁…...

Model Context Protocol (MCP) 是一个前沿框架
微软发布了 Model Context Protocol (MCP) 课程:mcp-for-beginners。 Model Context Protocol (MCP) 是一个前沿框架,涵盖 C#、Java、JavaScript、TypeScript 和 Python 等主流编程语言,规范 AI 模型与客户端应用之间的交互。 MCP 课程结构 …...
SQL Server 日期时间类型全解析:从精确存储到灵活转换
SQL Server 日期时间类型全解析:从精确存储到灵活转换 一、引言:日期时间处理的核心挑战 在数据管理中,日期时间类型是最常用却最容易出错的数据类型之一。不同业务场景对时间精度、时区感知、存储效率的需求差异极大: 金融交易…...
Android Test3 获取的ANDROID_ID值不同
Android Test3 获取的ANDROID_ID值不同 这篇文章来说明上一篇文章中说到的一个现象:在同一个项目中,创建不同的 app module,运行同一段测试代码,获取到的 ANDROID_ID 的值不同。 我也是第一次认真研究这个现象,这个还…...
[蓝桥杯 2024 国 B] 立定跳远
问题描述 在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了 n 个检查点 a1,a2,...,an且 ai≥ai−1>0。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时,小明可以自行再增加 m 个检查点让自己跳得更轻松。在运动会前…...

内容力重塑品牌增长:开源AI大模型驱动下的智能名片与S2B2C商城赋能抖音生态种草范式
摘要:内容力已成为抖音生态中品牌差异化竞争的核心能力,通过有价值、强共鸣的内容实现产品"种草"与转化闭环。本文基于"开源AI大模型AI智能名片S2B2C商城小程序源码"技术架构,提出"技术赋能内容"的新型种草范式…...

手机号在网状态查询接口如何用PHP实现调用?
一、什么是手机号在网状态查询接口 通过精准探测手机号的状态,帮助平台减少此类问题的发生,提供更个性化的服务或进行地域性营销 二、应用场景 1. 金融风控 通过运营商在网态查询接口,金融机构可以核验贷款申请人的手机状态,拦…...

【Java微服务组件】分布式协调P4-一文打通Redisson:从API实战到分布式锁核心源码剖析
欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 引言Redisson基本信息Redisson网站 Redisson应用…...

一个简单的德劳内三角剖分实现
德劳内(Delaunay)三角剖分是一种经典的将点集进行三角网格化预处理的手段,在NavMesh、随机地牢生成等场景下都有应用。 具体内容百度一大堆,就不介绍了。 比较知名的算法是Bowyer-Watson算法,也就是逐点插入法。 下雨闲…...
Python入门手册:异常处理
在编程过程中,异常处理是一个非常重要的环节。它可以帮助我们处理程序运行时可能出现的错误和异常情况,确保程序的稳定性和可靠性。Python提供了强大的异常处理机制,使得我们能够优雅地处理各种异常情况。今天,就让我们一起深入学…...