不要将 CSS 应用于包含 <em> 的 <p> [重复]
Posted
技术标签:
【中文标题】不要将 CSS 应用于包含 <em> 的 <p> [重复]【英文标题】:Don't apply CSS to <p> containing an <em> [duplicate] 【发布时间】:2011-10-11 15:49:16 【问题描述】:可能重复:CSS selector for “foo that contains bar”?
我网站上的所有<p>
都得到margin-bottom
的20px
。
我不想将此 margin-bottom 应用于包含 <em>
元素的 <p>
。
没有类或 id 是否可以做到这一点。
可以使用CSS3。
【问题讨论】:
为什么要在没有类或 id 的情况下这样做? 对我来说,它应该是一个 Wordpress 插件用户的快速解决方案。我现在无法解决它,所以我至少想向他介绍一些解决方法。 【参考方案1】:据我所知,纯 CSS 还没有做到这一点,但您可以通过巧妙地使用 jQuery 来实现:
$(function()
$("em").parent("p").addClass("nomargin")
)
或者类似的...
【讨论】:
【参考方案2】:您所描述的基本上是一个“上升”选择器,根据其后代选择一些元素。仅使用 CSS 是不可能的,您还必须使用 javascript。
【讨论】:
【参考方案3】:我可以看到在纯 CSS 中执行此操作的唯一方法是使用父节点选择器。可惜了does not exist in CSS2 or CSS3这样的事情。
【讨论】:
【参考方案4】:不幸的是,纯 css 无法做到这一点。见Is there a CSS parent selector?
不过你可以使用一些 jQuery。
$('em').parent().css('marginBottom','0');
http://jsfiddle.net/jasongennaro/5pPGF/
【讨论】:
【参考方案5】:您的问题不清楚。请重新检查您的问题。但是您可以为全局标签设置边距、填充,例如
pmargin:0
或
*margin:0; padding:0
用于所有元素,然后将其更改为精确的 div、类。在这种情况下,所有其他的仍将设置为 margin:0, padding:0
【讨论】:
他想为其中包含 元素的 标签提供不同的格式,与没有 的 标签相比。无需设置类或 ID。
恐怕这对于纯 CSS 是不可能的。
【讨论】:
以上是关于不要将 CSS 应用于包含 <em> 的 <p> [重复]的主要内容,如果未能解决你的问题,请参考以下文章