Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html CSS:是否可以选择包含某些元素的父div?_Html_Css - Fatal编程技术网

Html CSS:是否可以选择包含某些元素的父div?

Html CSS:是否可以选择包含某些元素的父div?,html,css,Html,Css,假设我必须使用以下html: <div class='row'> <div class='cell'> <span class='image'> </span> Image Cell </div> <div class='cell'> Regular Cell </div> </div> 图像单元 规则细胞 是否可以清楚地选择包含span元素的d

假设我必须使用以下html:

<div class='row'>

  <div class='cell'> 
    <span class='image'> </span>
    Image Cell
  </div>

  <div class='cell'>
     Regular Cell
  </div>

</div>

图像单元
规则细胞

是否可以清楚地选择包含span元素的div与不包含span元素作为其第一个子元素的div单元格?尝试在没有js的情况下执行此操作。

您可以稍微更改html,在具有span的div中添加一个CSS类,并将其用作“选择器”


图像单元
规则细胞

不。你不是第一个需要这个的人。几年前我和一个熟悉CSS和DOM解析以及如何在浏览器中应用样式的家伙在一个论坛上,他显然是一个“家长”选择器会导致各种各样的问题和资源开销,这是不值得的。

您正在寻找类似于
:has
pseudoclass/
:parent
pseudoclass/
的东西,css不可能实现。没有“父”选择器。没有“祖先”选择器。现在没有,将来也不会有

为了不让您感到焦虑不安,使用JavaScript并不难做到这一点:

Array.prototype.forEach.call(document.querySelectorAll(".cell"), function (el) {
    if (el.querySelector("span")) {
        //found!
    }
});

“在没有js的情况下尝试这样做。”那么为什么要在你的问题上加上
javascript
标签呢?CSS3不可能。看看这篇文章,知道为什么CSS中不存在父选择器。我可以问一下,为什么你在没有js的情况下尝试它吗?@SunSparc我相信它更易于维护,但是由于表现不佳,我想我不得不解释一下,请说明你为什么投反对票!在这个网站上随意点击下箭头,没有任何理由,这对任何人都没有好处。
Array.prototype.forEach.call(document.querySelectorAll(".cell"), function (el) {
    if (el.querySelector("span")) {
        //found!
    }
});