没有类/ID的父级的CSS

Posted

技术标签:

【中文标题】没有类/ID的父级的CSS【英文标题】:css for parent without class/id 【发布时间】:2013-12-06 02:43:38 【问题描述】:

我有:

<form id="commentform">
    <p class="class1">
    <p class="class2">
    <p>
        <input id="captcha_code"></input>
    </p>
</form>

我想为既没有也没有类的“p”设置样式,我想以一种不设置其他“p”标签的方式来做。 我的“p”有一个 id (#captcha_code) 的孩子。我想,如果我可以设置#captcha_code parent 的样式,它不会涉及其他人......但我不知道该怎么做......

【问题讨论】:

CSS selector - element with this child 的可能重复项 【参考方案1】:

目前没有一种方法可以根据元素是否包含特定子元素来设置其样式。在您的情况下,我认为设置 &lt;p&gt; 样式的最佳方法是:

#commentform p:not([class])


结束你的段落isn't completely necessary,但它总是更好读。此外,you shouldn't add a closing tag 用于 html 格式的 input

<form id="commentform">
    <p class="class1"></p>
    <p class="class2"></p>
    <p>
        <input id="captcha_code">
    </p>
</form>

JSFiddle

【讨论】:

实际上,关闭 p 元素并不总是需要在 HTML5 中完成,在 HTML4.01 中它是可选的,尽管我总是觉得这样做更安全。 参考:w3.org/html/wg/drafts/html/master/… 奇怪的是,你在 HTML 中不允许做的是有一个结束 &lt;/input&gt; 标签。 谢谢@BoltClock 具有讽刺意味的是,我在问题中分享的答案是你写的,我什至没有意识到。 @oGeez:哈。我忘了我什至写了那个答案。【参考方案2】:

试试这个:

p > input 
  // style for that..

使用它,样式将应用于input 的父级。

为此提琴:http://jsfiddle.net/afzaal_ahmad_zeeshan/WyV7A/

【讨论】:

这将设置所有 p 标签的样式,OP 要求仅使用 id captcha_code 设置输入的父级样式 对不起,我错过了父部分! @Mauro,现在检查一下 :) 选择器存在,这意味着所有inputs 都是p 标签的直接子代。 当我说它不存在时我的错误我想说这里没有选择父级...“将应用于输入的父级”这是错误的 "样式将应用于input的父级。"没有。【参考方案3】:

为了简单起见,这是无法做到的。

与子选择器 &gt; 不同,css 中没有(并且可能永远不会)父选择器 &lt;

查看this article 了解原因。

【讨论】:

你错了。看看我回答中的小提琴! :) 你会看到有一个标志.. @AfzaalAhmadZeeshan Nop 抱歉,您使用的是子选择器,而不是父选择器 :)

以上是关于没有类/ID的父级的CSS的主要内容,如果未能解决你的问题,请参考以下文章

css如何让子元素不受父级的父级的overflow:hidden影响

如何让 PHP 类构造函数调用其父级的父级构造函数?

css父级没包住子级是怎么回事,我用firebug查看,确实在父级的div中,但是就是没有包括子级的内容

将绑定传递回父级的父级视图

选择 $(this) 元素的父级的兄弟姐妹

CSS 技巧汇总