Extension:TemplateStyles/zh

TemplateStyles扩展引入了一个标签，用于指定wiki页面应该加载的一个样式表. 将此标签放入模板中可使该模板加载自定义的样式，而无需将样式放入.

关于编辑者如何在wiki上使用该扩展，参见.

用法
首先需要创建一个CSS页面. 默认设置下，Template名字空间下任何标题以".css"结尾且没有语法错误的子页面都将创建为“”.

采用此模式的名字空间可用 调整，或者对任何页面使用. 然后，在模板的维基文本中添加 并且来加载该样式.

采用“”内容模型保存的CSS必须满足严格的有效性要求：无效CSS、无法识别的规则以及不支持的属性/属性值无法保存. 如果仍以某些方式保存了无效的CSS，当CSS输出到浏览器时，存在问题的部分将被移除.

标签上的 属性的值是页面标题，默认视作Template命名空间. （默认值可以通过 更改. ） 例如， 将加载“Template:Example/styles.css”页面. 如果该页面不存在或者不是“”内容模型，则该操作失败.

可以使用可选参数 将样式限定在页面的特定范围内，例如 将加载的样式限制于主解析内容中的任何 元素上. 参数可使用任何CSS简单选择器序列. 此功能是为允许比对模板的线上与沙盒版本而设计.

对已过滤CSS的使用也会被追踪，就像模板的嵌入（transclusion）一样，并如嵌入一样显示于.

注意事项

 * 由TemplateStyles加入的样式被限制包围在 中，以免篡改主解析内容以外的用户界面.
 * 如要使TemplateStyles在像w:MediaWiki:Protectedpagetext这样的内容中生效，需将这个消息内容用 包围.
 * 样式应针对特定的CSS类（class）编写，并且生成使用这些类的元素的任何内容都应包含样式本身，而不要依赖其他模板来完成此目的.
 * 模板所包含的样式目前可能影响页面中该模板生成的内容之外的内容，但未来或许会移除这种能力，因此不应对此有所依赖. (See discussion from T155813 and in T176272.)
 * 模板所含样式影响了模板外的内容时，编辑特定章节且内容不含该模板时不会看到模板样式被应用. 例如：如果某个信息框上含有影响整个页面所有表格的样式，当编辑某个不含该信息框的章节时，预览章节不能在表格上看到这些样式.
 * TemplateStyles不支持CSS变量，参见T320322.
 * 模板样式允许少数几个非标准化的CSS属性. 请求支持额外的属性应在Phabricator中的css-sanitizer与TemplateStyles项目中提交.
 * 请求应当包含链接到描述需要请求使用的属性的语法的标准文档（例如w3.org）的链接，以及对这个属性的浏览器兼容性分析（例如到caniuse.com中的关于该属性的页面）.
 * 带有特定浏览器名称前缀的属性（例如以 、 、 开头的属性）可能会被拒绝，如果现代浏览器不需要的话.
 * 规则必须使用前缀为"TemplateStyles"的 . 这应在很大程度上避免重新定义文档中其他位置上使用的字体.
 * 如需基于皮肤来应用样式，应使用像 这样的选择器，其中必须指定 元素，其后接一个descendant combinator（例如空格）.  或 元素的其他类也应该以相同的方式指定.  See T197617.

-{zh-hans:配置; zh-hant:組態;}-


其他依赖
应配置为no tidying或者RemexHtml. If used with any of the Raggett drivers, a tag in the middle of a paragraph (including in an inline template) will cause tidy to break the paragraph at that point. The other drivers have not been tested for this issue.



可能的错误
如果从其他wiki导入页面时发生错误，则对于下列几种错误，你可以尝试在你的 中启用来解决问题.


 * This means a required library has not been installed. 该错误可能会在尝试导入一个wiki CSS页面或将页面的内容模型改变为“已过滤的CSS”时出现. 对于2020年8月16日，扩展分发器中有个开放漏洞，需要$1在“扩展子目录内”运行，即使扩展不是从Git安装的.
 * Happens when you try to import a wiki page created via TemplateStyles, but TemplateStyles is not installed on your wiki.
 * Happens when you try to import a wiki page created via TemplateStyles, but TemplateStyles is not installed on your wiki.
 * Happens when you try to import a wiki page created via TemplateStyles, but TemplateStyles is not installed on your wiki.



参见

 * - 用于过滤CSS.
 * T483 "RfC: Allow styling in templates"（关于在维基媒体的wiki上部署此扩展的讨论）
 * Requests for comment/Allow styling in templates
 * T56864 “ResourceLoader：更少地在wiki模块（用户和站点）内实现支持，更少支持例如MediaWiki:Common等页面”
 * T155813 “决定TemplateStyles CSS存储和分发方法”
 * It’s now easier to craft content for mobile devices: Responsive web design at the Wikipedia scale（英文页面，标题大意：现在在移动设备做内容更加容易：维基百科尺度下的响应式网页设计），位于维基媒体博客.
 * It’s now easier to craft content for mobile devices: Responsive web design at the Wikipedia scale（英文页面，标题大意：现在在移动设备做内容更加容易：维基百科尺度下的响应式网页设计），位于维基媒体博客.