我想标准化某些文本中换行符和段落之间的间距。
为此,我希望折叠所有换行符,使它们本身不产生高度,然后将 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>
我尝试了以下选择器,但没有成功。 + 选择器似乎忽略了文本并变得贪婪。
p br {
line-height: 0;
height:0;
margin:0;
padding:0;
content: " ";
display: block;
}
p br + br {
margin-bottom: 1em;
}
对于给定的标记,最好没有任何 javascript,这是完全可能的吗?
最佳答案
原始文本在某种程度上对 CSS 选择器不可见。根据您的 HTML,CSS 将其视为:
<p>
<br />
<br /><br /> <!-- I wan't to target the last of these -->
<br /> <!-- Not this one -->
</p>
所以每个 <br />
但第一个与 p br + br
匹配选择器。没有办法以您处理问题的方式(原始 CSS)解决您的问题。
其他方法是 JavaScript 或服务器端(无论您使用何种语言 - PHP、Java 等)。
关于CSS 选择器以 p 标签中成对出现的最后一个 br 标签为目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20285900/