You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

应用于SDL XLIFF文件的CSS无法隐藏sdl:value元素问题咨询

问题原因与修复方案

不生效的核心原因

  • 缺失命名空间声明:CSS要识别XML命名空间下的元素,必须先通过@namespace规则显式声明前缀对应的命名空间URI,和XML里的xmlns:sdl声明完全匹配,否则带前缀的选择器不会生效。
  • 无效选择器错误:你写的sdl{display:none}是错误语法,sdl是命名空间前缀而非元素名,不存在名为sdl的元素,这条规则完全不生效。
  • 规则覆盖不全:你只单独声明了部分sdl前缀元素的隐藏规则,漏掉了sdl:seg-defs等父元素,也没有统一匹配所有sdl命名空间元素的规则,导致部分元素漏隐藏。

修复后的完整CSS代码

/* 先声明命名空间,和XML中的声明完全对应 */
@namespace "urn:oasis:names:tc:xliff:document:1.2";
@namespace sdl "http://sdl.com/FileTypes/SdlXliff/1.0";

xliff{ font-family: "Segoe UI", Roboto; font-size:12pt; line-height:1.5; background-color: red;}
xliff{ margin-top:2cm; margin-left:2cm; margin-right:2cm; }
/* 一次性隐藏所有sdl命名空间下的元素 */
sdl|* {display:none}
body{display:table}
internal-file{display:none}
header{display:none}
source{display:none}
trans-unit{display:table-row}
seg-source {display:table-cell; color: lightblue;padding:10px;  }
target {display:table-cell; color: yellowgreen; padding:10px;  }
trans-unit { 
    width: 100%;
}

补充说明

CSS命名空间选择器的标准语法为前缀|元素名,用sdl|*可以匹配所有sdl命名空间下的元素,比老旧的冒号转义写法 sdl\:value更规范,也不用逐个声明每个sdl前缀元素的隐藏规则,避免遗漏。

内容的提问来源于stack exchange,提问作者Pocket Lawyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:00:00