我想规范化一些文本中的换行符和段落之间的间距.
为此,我希望折叠所有换行符,使它们本身不产生高度,然后将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?
原始文本在某种程度上对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等).