【问题标题】:Conditional CSS: if a selector contains another selector? [duplicate]条件 CSS:如果一个选择器包含另一个选择器? [复制]
【发布时间】:2017-11-21 21:03:10
【问题描述】:

在一个页面上,我有两个段落,这两个段落都是通过.entry p 选择器标识的。但是,第一个还包含一个时间戳,标记为 .time 选择器——代码如下所示:

<div class="entry">

    <p><span class="time">17:25:22</span> Sed ut perspiciatis, unde omnis iste natus.</p>

    <p>Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit?</p>

</div>

现在,是否可以在不引入新选择器的情况下对这两个段落应用不同的规则?比如,因为第一个包含这个span class="time",而第二个没有?

【问题讨论】:

    标签: html css


    【解决方案1】:

    如果第一个 p 总是包含时间,您可以在条目 div 中使用 :first-child,那么您可以只定位 div 中的第一个 p。

    例如:

    .entry p:first-child {
     css here
    }
    

    或使用 Jquery:

    $('.entry p .time').parent().addClass('p-class');
    

    【讨论】:

    • “因为第一个包含这个跨度 class="time",而第二个不包含这个条件?” - OP 对他们的情况非常具体' 正在寻找,我认为通过索引选择 &lt;p&gt; 不能满足这一点。他们要寻找的假设选择器将针对任何具有.time 子级的&lt;p&gt;。这是不可能的。
    • @Santi OP 正在尝试定位包含时间的段落。如果它始终是条目 div 中的第一段,那么 :first-child 将是一个不错的选择。
    • 不幸的是,页面下方会有更多这些时间戳。只是它们与无时间戳的段落混合在一起。
    • 然后我会使用 jquery 来定位所有 $('.entry p .time').parent().addClass('special-p'); 或任何类。
    • 是的,谢谢@PaigeMeinke。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2017-08-14
    相关资源
    最近更新 更多