【CSS】text-decoration-skip是做什么用的,怎么使用

CSS的text-decoration-skip属性用于定义元素哪些部分的内容需要被文本修饰(如下划线、上划线、删除线等)所跳过。这可以控制所有该元素或该元素的祖先所绘制的文本修饰线。

text-decoration-skip的工作原理

text-decoration-skip: ink;为例,这一特性的实现在WebKit中是这样的:

  1. 将要加下划线的字形转换回CGPathRef格式的路径。
  2. 寻找这些路径和下划线的交错点,这个过程是通过近似地将轮廓(contour)用一条线来表示并与其上下边界进行相交计算来完成的。
  3. 在这些交错点之间画下划线,相当于避开了与字形轮廓交错的位置。

text-decoration-skip的使用方法

  1. 基本语法
text-decoration-skip: auto | [ objects || spaces || ink || edges || box-decoration ];
* `auto`:默认值,由浏览器决定哪些部分应该被跳过。
* `objects`:跳过内联元素(如`<img>`、`<input>`等)。
* `spaces`:跳过空格字符。
* `ink`:跳过字符的字形轮廓(如字母的下降部分),这在实现下划线避开字母下降部分时特别有用。
* `edges`:跳过行首和行尾的装饰。
* `box-decoration`:跳过与元素背景装饰相交的文本装饰。
  1. 示例

如果你想要下划线避开文本的下降部分(如字母p、g、j等的尾部),你可以这样使用:

p {text-decoration: underline;text-decoration-skip: ink;
}

但需要注意的是,text-decoration-skip属性的兼容性并不强,不是所有的浏览器都支持这一特性。在编写代码时,请确保你的目标浏览器支持此属性。

以下是一些具体的应用场景:

  1. 避免下划线与字符下降部分重叠

    • 当使用下划线装饰文本时,某些字符(如“g”、“p”、“j”等)的下降部分可能会与下划线重叠,影响可读性。通过设置 text-decoration-skip: ink;,可以使下划线避开这些字符的下降部分,提高文本的可读性。
    • 示例:在正式文档、合同、法律文件等需要清晰展示文本的场合,可以使用此属性来确保文本的可读性。
  2. 控制内联元素的文本装饰

    • 在包含图片、链接、输入框等内联元素的文本中,有时可能不需要对这些元素应用文本装饰线。通过设置 text-decoration-skip: objects;,可以使文本装饰线跳过这些内联元素。
    • 示例:在新闻网站、博客文章等包含丰富内联元素的文本中,可以使用此属性来优化文本装饰的显示效果。
  3. 跳过空格和特定字符的文本装饰

    • 在某些情况下,可能希望跳过文本中的空格或特定字符的文本装饰。通过设置 text-decoration-skip: spaces; 或与其他值组合使用,可以实现这一需求。
    • 示例:在诗歌、歌词等需要保持文本格式和布局的场合,可以使用此属性来精确控制文本装饰的显示位置。
  4. 自定义文本装饰的起始和结束位置

    • 通过设置 text-decoration-skip: edges;,可以控制文本装饰的开始与结束位置,使其向内收缩一定的距离。这在处理中文文本时尤为重要,因为中文中的下划线常作为标点符号使用,适当的收缩可以避免与相邻元素的下划线混淆。
    • 示例:在中文网站、文档等需要精确控制文本装饰的场合,可以使用此属性来优化文本的显示效果。

需要注意的是,text-decoration-skip 属性的兼容性并不强,不同浏览器对该属性的支持程度有所差异。因此,在使用该属性时,需要仔细测试并考虑目标浏览器的兼容性情况。同时,该属性也可以与其他 CSS 文本装饰属性(如 text-decoration-linetext-decoration-colortext-decoration-style 等)配合使用,以实现更丰富的文本装饰效果。

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

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

相关文章

CSRF攻击

改账号和密码 里面有改的账号和密码 我改这个代码的123为456&#xff0c;然后在新的浏览器去执行&#xff0c;然后密码就又被改了 假如黑客知道修改密码的url&#xff0c;那么就危险了 但是也不是随便改 是有前提的&#xff0c;前提是&#xff1a; 1、已经登录了要改密码的…

计算机网络:网络层 - IPv6

计算机网络&#xff1a;网络层 - IPv6 IPv6 数据报IPv6 地址冒号十六进制记法地址分类 IPv4 到 IPv6 过渡双栈协议隧道技术 IPv6 是互联网协议的最新版本&#xff0c;它被设计用来取代现有的 IPv4 协议。这是因为 IPv4 存在一些根本性的限制&#xff0c;而 IPv6 则可以解决这些…

【three.js案例一】智慧星球

直接附上源码: import * as THREE from three; import { OrbitControls } from three/addons/controls/OrbitControls.js;//场景 const scene = new THREE.Scene();const geometry = new THREE.SphereGeometry(50,32,16);console.log(.postion,geometry.attributes.position)…

【吊打面试官系列-Mysql面试题】实践中如何优化 MySQL?

大家好&#xff0c;我是锋哥。今天分享关于 【实践中如何优化 MySQL&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 实践中如何优化 MySQL&#xff1f; 最好是按照以下顺序优化&#xff1a; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 1、SQL 语…

python内置函数+lambda函数

文章目录 前言1 类型转换int():将值转换为整数(十进制转换)float():将值转换为浮点数str():将值转换为字符串bool(): 将值转换为布尔值round()函数:四舍五入complex()---用来生成复数,当然复数也可手打,该函数与,int(),float()相比并没有变成复数类型的作用2 进制…

【Linux】基础IO——理解文件系统

1.理解文件系统 1.1.ls与stat 磁盘文件由两部分构成&#xff0c;分别是文件内容和文件属性。 文件内容就是文件当中存储的数据&#xff0c;文件属性就是文件的一些基本信息&#xff0c; 例如文件名、文件大小以及文件创建时间等信息都是文件属性&#xff0c;文件属性又被称…

探索高效存储与快速查找: 深入了解B树数据结构

探索高效存储与快速查找: 深入了解B树数据结构 一、什么是B树二、B树的实现2.1 节点的定义2.2 插入关键字2.3 删除关键字2.4 查找关键字2.5 遍历B树 一、什么是B树 B树&#xff0c;也称为B-tree&#xff0c;是一种多路平衡查找树。它被广泛用于文件系统和数据库之中&#xff0c…

CentOS7服务器中安装openCV4.8的教程

参考链接&#xff1a;Centos7环境下cmake3.25的编译与安装 参考链接&#xff1a;Linux安装或者升级cmake&#xff0c;例子为v3.10.2升级到v3.25.0(自己指定版本) 参考链接&#xff1a;Linux安装Opencv&#xff08;C&#xff09; 一、下载资源 1.下载cmake3.25.0的压缩包&am…

使用 yocto 搭建 qemuarm64 环境

文章目录 前言一、ubuntu 环境准备1. 编译主机基础的环境准备2. 编译主机相关依赖软件的安装二、yocto5.0 代码的获取与编译1. 获取代码2. yocto5.0 代码的编译2.1 source 环境变量2.2 修改相关配置文件2.3 编译3. 启动 qemu总结参考资料前言 本文主要介绍如何在 ubuntu 下使用…

SpringCloud总结(springcloud alibaba)

目录 版本说明&#xff08;很重要&#xff09; springcloud alibaba对应组件版本说明 简述 spring cloud albaba 几大模块 周会讨论 - spring cloud alibaba每周都会有周会讨论,社区活跃 spring cloud alibaba官网 注册配置中心 简单介绍 nacos 步骤 示例代码 依赖…

python全栈开发《07.数据类型之数字类型的应用、初识字符串类型》

目录 一、数字类型的简单应用二、初识字符串 1.什么是字符串2.字符串的内置函数与定义方法3.字符串的重要思想 三、python的内置函数id和len 一、数字类型的简单应用 对int与float的简单应用练习–初中生春游&#xff0c;主人公小编。 1.起因 小编学校组织春游&#xff0c;…

Django配置连接池:使用django-db-connection-pool配置连接池

一、该三方库文档使用 github地址&#xff1a; https://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.mdhttps://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.md1、选择指定版本&#xff0c;查看指定版本的文档和配置&am…

【Java】Object类中的toString、equals方法

Object类 所有类都直接或间接的继承自Object类&#xff0c;Object类是所有Java类的根基类。 也就意味着所有的Java对象都拥有Object类的属性和方法。 如果在类的声明中未使用extends关键字指明其父类&#xff0c;则默认继承Object类。 toString()方法 【1】Object类的toStr…

ChatGPT魔法背后的原理:如何做到词语接龙式输出?

介绍 我们都知道 ChatGPT 是 AIGC 工具&#xff0c;其实就是生成式人工智能。大家有没有想过这些问题 &#x1f914;️&#xff1a; 1、我们输入一段话&#xff0c;就可以看见它*噼里啪啦的一顿输出*&#xff0c;那么它的原理到底是什么&#xff1f; 2、到底它是怎么锁定这些…

【MySQL】事务一

事务一 1.什么是事务2.为什么会存在事务3.事务的版本支持4.事务的提交方式5.事务常见操作方式6.事务隔离级别6.1读未提交【Read Uncommitted】6.2读提交【Read Committed】6.3可重复读【Repeatable Read】6.4串行化【serializable】 点赞&#x1f44d;&#x1f44d;收藏&#x…

SSM家乡旅游网-计算机毕业设计源码04802

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;SSM家乡旅游网当然也不能排除在外。SSM家乡旅游网是以实际运用为开发背景&#xff0c;运用软件工程开发方法&#xff0c…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第八周) - 现代大语言模型

现代大语言模型 1. GPT-32. 上下文学习 2.1. 零样本提示2.2. 少样本提示2.3. 归纳头 3. 对齐 3.1. 指令微调3.2. 基于人类反馈的强化学习3.3. 事实与幻觉 1. GPT-3 GPT系列论文 GPT-1(2018): Improving Language Understanding by Generative Pre-TrainingGPT-2(2019): Lang…

基于BERT微调+模板填充快速实现文本转DSL查询语句

前言 Text2SQL是指将自然语言转化为类SQL查询语句&#xff0c;使得用户的查询文本可以直接实现和数据库交互&#xff0c;本文介绍一种以BERT为基础模型&#xff0c;通过模板填充来实现的Text2SQL算法和产品化。 内容摘要 Text2SQL任务说明模板填充的思路条件列选择子模型搭建…

【免费Web系列】大家好 ,今天是Web课程的第二一天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 员工管理 1. 条件分页查询 1.1 概述 在页面原型中&#xff0c;我们可以看到在查询员工信息列表时&#xff0c;既需要根据条件动态查询&#xff0c;还需要对查询的结果进行分页处理。 那要完成这个页面…

【linux】应用程序访问百度时,操作系统内核网络接口日志

代码合入&#xff1a; 登录 - Gitee.comhttps://gitee.com/r77683962/linux-6.9.0/commit/c639573cc7c4984913d4a89884347e5a30a51eac 启动操作系统运行dmesg的日志像这样&#xff1a; dmesg_log/2024_06_14_00_40_54.txt r77683962/linux-6.9.0 - Gitee.com 注意&#xf…