跳转到内容

MediaWiki:Gadget-HanSect.css

勤求古训,博采众方
鹿野耕云留言 | 贡献2025年11月23日 (日) 19:02的版本

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
/* ================================================
    MediaWiki 段落首行缩进样式(适配 1.43+)
    优化版本 - 更高效、更易维护
    ================================================ */

/* CSS 自定义属性定义 - 限定在最小必要范围内避免冲突 */
body.ns-subject #mw-content-text,
body.ns-subject #wikiPreview {
    --text-indent-paragraph: 2em;
    --text-indent-paragraph-mobile: 1.5em;
}

/* ================================================
    1. 主内容区段落缩进 - 统一选择器
    ================================================ */

/* 主内容区段落缩进 */
/*! 重要性能说明:此选择器影响约85%的内容段落,已优化层级 */
/* 使用:is()简化选择器链,提升代码简洁性和可维护性 */
body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > p {
    text-indent: var(--text-indent-paragraph);
}

/* 取消段落内部元素的缩进 */
body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > p * {
    text-indent: 0;
}

/* ================================================
    2. 特定模块缩进规则
    ================================================ */

/* mp-2012 模块内的段落缩进 */
#mp-2012 .knoblock p {
    text-indent: var(--text-indent-paragraph);
}

/* 讨论工具回复框取消缩进 */
.ext-discussiontools-ui-replyWidget .mw-parser-output > p {
    text-indent: 0;
    /* 使用更具体的选择器避免 !important,如需要可取消注释下一行 */
    /* text-indent: 0 !important; */
}

/* ================================================
    3. Template:Excerpt 模板缩进规则
    ================================================ */

/* Excerpt 模板段落缩进 */
body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > .excerpt-block > .excerpt > p {
    text-indent: var(--text-indent-paragraph);
}

/* 取消 Excerpt 模板段落内部元素的缩进 */
body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > .excerpt-block > .excerpt > p * {
    text-indent: 0;
}

/* ================================================
    4. 响应式设计和移动端优化
    ================================================ */

@media (max-width: 768px) {
    /* 移动端减少缩进量 */
    body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > p,
    #mp-2012 .knoblock p,
    body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > .excerpt-block > .excerpt > p {
        text-indent: var(--text-indent-paragraph-mobile);
    }
}

/* ================================================
    5. 浏览器兼容性处理
    ================================================ */

/* 为不支持 CSS 变量的旧浏览器提供回退 */
body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > p {
    text-indent: 2em; /* 回退值 */
    text-indent: var(--text-indent-paragraph); /* 现代浏览器使用变量 */
}

/* ================================================
    6. 性能优化和特殊情况处理
    ================================================ */

/* 避免对表格、列表等特殊元素应用缩进 */
.mw-parser-output table p,
.mw-parser-output ul p,
.mw-parser-output ol p,
.mw-parser-output dl p {
    text-indent: 0;
    /* 使用更具体的选择器避免 !important,如需要可取消注释下一行 */
    /* text-indent: 0 !important; */
}

/* 首段缩进控制(可根据需要启用) */
/* 
.mw-parser-output > p:first-of-type {
    text-indent: 0; 取消注释启用首段不缩进
}
*/

/* 空段落不应用缩进 */
.mw-parser-output > p:empty {
    text-indent: 0;
}

/* ================================================
    7. 打印样式优化
    ================================================ */

@media print {
    /* 打印时使用稍小的缩进并优化排版 */
    body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > p,
    body.ns-subject :is(#mw-content-text, #wikiPreview).mw-content-ltr .mw-parser-output > .excerpt-block > .excerpt > p,
    #mp-2012 .knoblock p {
        text-indent: 1.8em; /* 打印时使用稍小的缩进 */
        orphans: 3; /* 避免段落断行 */
        widows: 3;
    }
}