CSS选择器用于定位在p标签中成对出现的最后一个br标签?

ale*_*ech 4 css css-selectors

我想规范化一些文本中的换行符和段落之间的间距.

为此,我希望折叠所有换行符,使它们本身不产生高度,然后将margin-bottom添加到两个连续<br>标记的最后一个.

是否有一个css选择器让我选择在一对<br>中出现的最后一个标签<p>

<p>
   Some text<br />
   Some more text<br /><br /> <!-- I wan't to target the last of these -->
   Even more text<br /> <!-- Not this one -->
</p>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下选择器,但没有骰子.似乎+选择器忽略了文本而变得贪婪.

p br {
    line-height: 0;
    height:0;
    margin:0;
    padding:0;
    content: " ";
    display: block;
}

p br + br {
    margin-bottom: 1em;
}
Run Code Online (Sandbox Code Playgroud)

一个例子:http://jsfiddle.net/jqcyc/

这是否可以使用给定的标记,最好没有任何JavaScript?

mat*_*wka 7

原始文本在某种程度上对CSS选择器是不可见的.根据您的HTML,CSS将其视为:

<p>
    <br />
    <br /><br /> <!-- I wan't to target the last of these -->
    <br /> <!-- Not this one -->
</p>
Run Code Online (Sandbox Code Playgroud)

所以<br />除了第一个之外,每一个都与p br + br选择器匹配.没有办法以你接近它的方式解决你的问题(原始CSS).

其他方法是JavaScript服务器端(无论您使用何种语言 - PHP,Java等).