段落中的长行内代码会让该行的正文文字不可见 #7384
Replies: 2 comments 1 reply
补充一条观察:
|
|
你的排除配色那条是对的,而且能定位到一处确实可疑的规则:行内代码用的是
但我要在这里打住:这个盒的背景盖不住正文。 按 CSS 2.2 附录 E 的绘制顺序,行内盒的背景色与边框先画、行内文字后画,同一个层叠上下文里背景永远在文字之下;我又对「短代码与正文同行」那一种排布截了图并逐像素解码,代码的底色恰好停在正文最后一个字形像素的右边(x=224 处相接),没有覆盖任何一个字形像素。所以我原来设想的「背景压住中文」是错的,不能拿它解释你看到的现象。
要往下定位,我需要你补一个我从报告里判断不出来的区分:被吞掉的正文,是与代码同处一个行盒(同一行的左右邻居),还是代码盒上方那一行?这两者对应完全不同的机制(前者是行盒内的绘制或裁剪,后者更可能与行高和滚动容器有关),而我手上的证据只能排除「代码背景遮盖」这一种。另外,方便的话把出问题那条消息的原始 Markdown 也贴出来 —— 渲染器会把行内代码里的换行转成空格( 候选修法(方向我认为是对的,但请以你的复现为准):同一个文件的 即 诚实边界:我只有 headless Chrome 加这份样式表,没有你的浏览器、缩放与字体栈,也没有复现出「正文不可见」这个现象本身。上面能定下来的只有两件事:这条规则确实可疑,以及「背景遮盖」这个解释是错的。 |


你的排除配色那条是对的,而且能定位到一处确实可疑的规则:行内代码用的是
display: inline-flex,而同一个文件里的.compact变体用的是display: inline+box-decoration-break: clone。packages/client/ui-primitives/src/markdown/MarkdownText.module.css:163-174:di…