CSS 选择器以 p 标签中成对出现的最后一个 br 标签为目标?

标签 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>

我尝试了以下选择器,但没有成功。 + 选择器似乎忽略了文本并变得贪婪。

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

p br + br {
    margin-bottom: 1em;
}

例子: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>

所以每个 <br />但第一个与 p br + br 匹配选择器。没有办法以您处理问题的方式(原始 CSS)解决您的问题。

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

关于CSS 选择器以 p 标签中成对出现的最后一个 br 标签为目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20285900/

相关文章:

html - 如何使用一个选择器定位这些子 div?

IE7 中的 jquery 幻灯片问题

css - 有没有可能在没有 parent 的情况下用 css 悬停在 child 身上?

html - 使用 CSS::before 在列表链接前添加一个小图标

css - 最高效的 CSS 选择器 : Header Tag, 类还是 ID?

html - 我的侧边栏 float 在底部

html - 使用 chrome 时 blogspot 中的图像失真

html - 在 IE7 中无法点击链接内的图像

css - flex css 中的伪类

html - css 选择器中的疑问 > [#id (.class1 or .class2)]