首页 > 解决方案 > 狮身人面像的居中标题

问题描述

我正在用 sphinx 编写一个文档,其中包含三种主要类型的元素:标题、图像和纯文本。有时,某些元素需要居中:

Heading
=======

.. rst-class:: center

A centered paragraph, followed by non-centered image.

.. image:: /_static/exhibit_a.png

A non-centered paragraph, followed by centered image.

.. image:: /_static/exhibit_b.png
   :class: center

常规文本和图像居中很好,因为我注册了一个如下所示的 CSS 文件:

.center { text-align: center; }
img.center {
    display: block;
    margin: auto;
}

但是,以下内容无法按预期工作:

.. rst-class: center

===================
A Heading 1 Element
===================

Some generic text

reST class(sphinx rst-class) 指令只适用于紧随其后的元素,但在这种情况下,整个部分将居中对齐,其中包含所有内容。在此示例中,Some generic text出现居中,但应左对齐。事实上,像这样将文档中的第一个标题居中几乎可以使整个文档居中。

如何以使其仅适用于<h1>标签而不是整个部分的方式居中对齐标题?

我在 sphinx 1.8.0 上使用 Read the Docs 主题,以防万一。

额外的想法

就我而言,我需要修改所有<h1><h2>实例,而不需要修改其他标题。我知道这在 CSS 中是微不足道的

h1 h2 { text-align: center; }

然而,这个特定的文档是一个更大的项目的一部分,我希望在这个项目中保持所有原始样式不变。做到这一点的唯一方法是只为这个文档包含我的 CSS 自定义。这是一个可能的选择吗?

更多的想法

发生错误是因为center该类被附加到<div>整个部分的周围,而不是<h1>标签。但是,我希望能够允许某些 div(如延长线)拥有该center课程。只是没有section类的div。

标签: pythonpython-sphinxrestructuredtext

解决方案


除了 的 reST 标记.. rst-class: center,尝试组合 CSS 选择器,如下所示:

.center h1,
.center h2 {
    text-align: center;
}

因此,只有h1h2在文档中才会居中。


推荐阅读