关于 BBCode 标签 [pre] 的问题
本帖最后由 星空晶体 于 2024-11-16 08:44 编辑pre 标签可以实现相比于 code 标签的更好的高亮,但原本代码中没有空行,用于使用时却每一行代码之间都额外添加了一行空行
比如下面的代码:
"dependencies": [
{
"module_name": "@minecraft/server",
"version": "xxx"
},
{
"module_name": "@minecraft/server-ui",
"version": "xxx"
}
]
把上面的代码用于 pre 标签:
"dependencies": [
{
"module_name": "@minecraft/server",
"version": "xxx"
},
{
"module_name": "@minecraft/server-ui",
"version": "xxx"
}
]
可在两个不同代码标签看出不同,我没有在 pre 标签的代码添加空行,但他就自动添加了,影响美观
下面的图证明在 pre 代码中我没有添加空行
@苦力怕纸 本帖最后由 Sakarwei 于 2024-11-16 10:45 编辑
我可能找到问题所在了:
Discuz默认回车换行也算作换行,会将回车换行换成 br 标签
然而,浏览器默认 pre 块也会接受回车换行
然后浏览器同时处理了 由Discuz转换生成 的 br 和 pre 块的换行符,导致了这样的问题。
所谓的两个换行,一个是 Discuz 转换回车成为 br 实现的,一个是 pre 自身特性实现的。
解决方法也很简单,加一些 CSS 代码就好,告诉浏览器不要理会 pre 里面的换行符。
pre{white-space:nowrap;}
pre code{white-space:nowrap!important}
当然,为了避免误伤帖子外的 pre 和 code,我们或许需要根据页面选择描述更为详细的选择器。
(不过,帖子外面有 pre 和 code 吗?)
@苦力怕纸
页: [1]