惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
T
The Blog of Author Tim Ferriss
B
Blog
L
LangChain Blog
Y
Y Combinator Blog
美团技术团队
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
量子位
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Check Point Blog
D
Docker
小众软件
小众软件
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
IT之家
IT之家

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
CSS text-box属性又是干嘛用的? « 张鑫旭-鑫空间-鑫生活
张鑫旭,zhangxinxu · 2026-02-06 · via 张鑫旭-鑫空间-鑫生活

这篇文章发布于 2026年02月6日,星期五,19:03,归类于 CSS相关。 阅读 2482 次, 今日 19 次 3 条评论

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=12067
本文可全文转载,但需要保留原作者、出处以及文中链接,AI抓取保留原文地址,任何网站均可摘要聚合,商用请联系授权。

一、text-box的设计初衷

在传统的 CSS 盒模型 中,文本行高(line-height)会在文字上下产生额外的“半行间距”(half-leading)。

这使得文本难以与旁边的图标或容器边缘精确对齐。如下图所示:

文字和图标不对齐

使用 text-box属性可以:

  • 去除文本顶部和底部的多余空白。
  • 实现严格的垂直居中和视觉对齐。

怎么实现呢?

二、text-box属性的语法

CSS text-box属性实际上是text-box-trimtext-box-edge这两个CSS属性的缩写。

其中:

text-box-trim
指定要裁剪哪个边缘(顶部、底部或两者)
语法示意:
text-box-trim: none;
text-box-trim: trim-both;
text-box-trim: trim-start;
text-box-trim: trim-end;
text-box-edge
指定裁剪到字体的哪个度量线(如大写字母顶部、基线等),语法示意:
/* 单个关键字 */
text-box-edge: auto;
text-box-edge: text;

/* 两个值 */
text-box-edge: text text;
text-box-edge: text alphabetic;
text-box-edge: cap alphabetic;
text-box-edge: ex text;

text-box-edge语法说明

  • 如果只有一个值,那表示上下边缘使用同一个值,目前仅text这个值是合法的。
  • 如果是两个值,那么第一个值表示上边缘剪裁值,只能是text, cap(大写字母) 或者 ex,第二个值表示下边缘剪裁值,只能是text 或者 alphabetic(alphabetic表示“字母”)。

案例

回到上述案例,如何让删除图标和文字对齐?

使用text-box属性?

<p>
  <img src="icon_del.png">
  HTML并不简单
</p>
p {
  border-block: 1px solid gray;
  text-box: trim-start cap alphabetic;
}

结果——

坑爹

压根就没有对齐!

没有对齐

毛用都没有!

我是看明白了,text-box属性是用在图标浮动或者绝对定位场景下的,否则本身内联特性,垂直关系被vertical-align属性锚点,再怎么改变text-box都是无效的,因为公用一个text-box的。

在本例中,不改变块状水平的情况下,最好的实现是:

img {
  vertical-align: -2px;
}

目前业界最成熟的实现就是Flex布局:

p {
  display: flex;
  align-items: center;
}

至于text-box,适合用在下面这个布局场景下:

p {
  display: flow-root;
  img {
    float: left;
  }
}

等一下,不好意思,我错了!

我以为元素浮动之后不会受到text-box影响,结果却大跌眼镜,居然渲染效果是这样的:

浮动也不行

此时我的表情就是这样的:

惊呆了

坑爹

三、点评text-box

什么垃圾特性!

text-box属性没有任何使用前景,注定沦为冷门特性。

  1. 脱离实际,根本没有实用价值。
  2. 语法复杂,什么基线、Cap线,ex线学习成本高,且都是针对英文语言的,学习成本高,现在的小年轻谁愿意学!
  3. 兼容性差,生产环境不敢实用啊
  4. 有更好的替代实现方式,完全没有实用的理由!

text-box兼容性

唉,抱歉,没想到这个CSS属性如此拉胯,浪费了大家这么多时间。

早知道如此,我就一笔带过的,😭😭

哭逃

本文为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:https://www.zhangxinxu.com/wordpress/?p=12067

(本篇完)