【问题标题】:How do I select a p without a span child如何选择没有跨度孩子的 p
【发布时间】:2017-03-24 05:00:49
【问题描述】:

我在努力

  p:not(> span)
    margin-top 0
    margin-bottom 0
    line-height 1.2
  p
    margin-top 0
    margin-bottom 0
    span
      line-height 1.2

  p:not(span)
    margin-top 0
    margin-bottom 0
    line-height 1.2
  p
    margin-top 0
    margin-bottom 0
    span
      line-height 1.2

但似乎p 的行高始终为 1.2,即使它有一个子跨度。

<p style="text-align:center"><u>Lunch</u></p>
<p><span style="font-size:0.75em">Spaghetti and Meatballs</span></p>

第一个p 的行高应为1.2,第二个p 的行高应为0。

【问题讨论】:

  • 您是否尝试将行高设置为跨度本身?从您的 HTML 示例中,它会做。或者反过来jsfiddle.net/h8wgpuqp
  • 不能根据子元素设置元素的样式,但您可以根据父元素设置子元素的样式

标签: css


【解决方案1】:

在 css 中没有任何父选择器。也就是说,您不能选择作为跨度父级的段落。这是因为 css 被评估为right to left。因此,如果您真的只想选择 p 的父级 span,则需要 js/jquery。我知道使用 jquery 你可以做到:

$("p:not(:has(>span))")

【讨论】:

  • p:nth-of-type(2) 似乎适用于带有up。仅当其中有 span 时才需要它。
  • @Justin808 p:nth-of-type(2)u 是否参与无关。它只适用于nth 出现p。在我的示例中,它适用于整个 html 代码中 p 的第二次出现。您需要 jquery/javscript 将其应用于具有 spanp
  • 啊,好的。对不起。那些只是例子,而不是实际数据。可能有很多 p 标签。我需要在没有span 的情况下定位所有ps。
猜你喜欢
  • 2020-10-29
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多