【问题标题】:Don't apply CSS to <p> containing an <em> [duplicate]不要将 CSS 应用于包含 <em> 的 <p> [重复]
【发布时间】:2011-10-11 15:49:16
【问题描述】:

可能重复:
CSS selector for “foo that contains bar”?

我网站上的所有&lt;p&gt; 都得到margin-bottom20px

我不想将此 margin-bottom 应用于包含 &lt;em&gt; 元素的 &lt;p&gt;

没有类或 id 是否可以做到这一点。

可以使用CSS3。

【问题讨论】:

  • 为什么要在没有类或 id 的情况下这样做?
  • 对我来说,它应该是一个 Wordpress 插件用户的快速解决方案。我现在无法解决它,所以我至少想向他介绍一些解决方法。

标签: html css


【解决方案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】:

          您的问题不清楚。请重新检查您的问题。但是您可以为全局标签设置边距、填充,例如

          p{margin:0}
          

          *{margin:0; padding:0 } 用于所有元素,然后将其更改为精确的 div、类。在这种情况下,所有其他的仍将设置为 margin:0, padding:0

          【讨论】:

          • 他想为其中包含 元素的

            标签提供不同的格式,与没有

            标签相比。无需设置类或 ID。

          • 好的。明白了。一秒。
          【解决方案6】:

          恐怕这对于纯 CSS 是不可能的。

          【讨论】:

            猜你喜欢
            • 2019-12-29
            • 2014-04-25
            • 1970-01-01
            • 1970-01-01
            • 2013-01-15
            • 1970-01-01
            • 2011-07-24
            • 2021-08-23
            • 1970-01-01
            相关资源
            最近更新 更多