换行后悬挂对齐/缩进<br/>?

时间:2018-01-13 05:49:40

标签: html css wordpress indentation

我正在使用WordPress构建一个网站,很多内容都在诗歌中。如果给定的一行诗断行,它应该缩进。显然,每一行经文都会中断,但由于内容需要响应,因此无法在任何给定的行中插入符号和间距。

我最初使用<br />作为一节经文中的换行符,每节经文都在自己的<p>内。但是,text-indent仅适用于第一行文本。我确定的解决方案是创建一个这样的类:

.Verse {
    padding-left: 2em;
    text-indent: -2em;
    margin: 0;
        }

然后我将输入HTML作为

<p class="Verse">Verse Line 1
<p class="Verse">Verse Line 2
<p class="Verse">Verse Line 3
<p class="Verse">Verse Line 4</p>
<br />
<p class="Verse">Verse 2 Line 1...(etc)

在每节经文之后用额外的<br />来处理0保证金。此解决方案显示正常,因此我希望我的搜索结束。但事实并非如此。

由于目前的因素是我的控制因素,我无法用<p>分隔每一行。原因是我使用的插件允许访问者将任何给定页面导出为PDF,ePub或mobi,并且该插件似乎不会读取段落样式。因此,当它输出我上面所做的编码时,它会忽略margin 0;,正如你所料,它会导致任何给定经文的每一行之间有大量的空白,而且不会区分经文。

那么我能做些什么才能让我用行之间的<br />来编码

<p class="Verse">Verse Line 1
<br />Verse Line 2
<br />Verse Line 3
<br />Verse Line 4</p>

<p class="Verse">Verse 2 Line 1...(etc)

哪个允许插件执行导出以保持正确的行间距?由于<br />不是一个元素,我无法使用它来控制样式,但我需要做一些事情来获得-2em的缩进来调整行并补偿填充。

我认为有可能创建一个text-indent为-2em的跨度,并将其应用于<br />之后的每一行的第一个单词,并让它在内联工作,无论文本是什么紧随其后......但我无法弄清楚如何做到这一点,即使它会。所以任何建议将不胜感激。谢谢!

(我已经在插件中试图找出我是否可以强制它采取段落格式化,并且还嵌入字体,就此而言,但我不知道Javascript并且不能制作任何字体感觉它,插件作者似乎没有回应请求)。

1 个答案:

答案 0 :(得分:0)

好的,在发布该问题后,我确实找到了使用span风格的解决方案:

CSS

.Verse {
    padding-left: 2em;
    text-indent: -2em;
        }

.vspace {
    margin-left: -2em;
}

HTML

<p class="Verse">Verse Line 1
<br /><span style="vspace">Verse</span> Line 2
<br /><span style="vspace">Verse</span> Line 3
<br /><span style="vspace">Verse</span> Line 4</p>

<p class="Verse">Verse 2 Line 1...(etc)

这似乎有效。编写这样的代码有点痛苦,当我放的任何给定的部分可能有数百行诗句时,但至少它是有效的。

如果有人有更好或更精简的解决方案,我会对它们非常感兴趣!