当前位置: 首页 > 面试题库 >

根据其子元素将CSS样式应用于元素

唐茂实
2023-03-14
问题内容

是否可以为元素定义CSS样式,仅在匹配的元素包含特定元素(作为直接子项)时才适用?

我认为最好用一个例子来解释。

注意 :我正在尝试设置 父元素的样式 ,具体取决于其包含的子元素。

<style>
  /* note this is invalid syntax. I'm using the non-existing
   ":containing" pseudo-class to show what I want to achieve. */
  div:containing div.a { border: solid 3px red; }
  div:containing div.b { border: solid 3px blue; }
</style>

<!-- the following div should have a red border because
     if contains a div with class="a" -->
<div>
  <div class="a"></div>
</div>

<!-- the following div should have a blue border -->
<div>
  <div class="b"></div>
</div>

注意2 :我知道我可以使用javascript来实现,但是我只是想知道是否可以使用一些(对我而言)未知的CSS功能。


问题答案:

据我所知,基于子元素设计父元素的样式不是CSS的可用功能。您可能需要为此编写脚本。

如果您可以做类似div[div.a]div:containing[div.a]如您所说的事情,那就太好了,但这是不可能的。

您可能需要考虑使用jQuery。它的选择器可以很好地与“包含”类型一起使用。您可以根据其子级内容选择div,然后将CSS类全部应用于父级。

如果您使用jQuery,则类似的方法可能会起作用(未经测试但理论存在):

$('div:has(div.a)').css('border', '1px solid red');

要么

$('div:has(div.a)').addClass('redBorder');

结合CSS类:

.redBorder
{
    border: 1px solid red;
}


 类似资料:
  • 问题内容: 我有一个现有的网站,上面有很多用表格布置的旧页面和表格,我正尝试逐步过渡到CSS。我想使用Twitter Bootstrap样式表-特别是表单样式- 但仅在我明确要求它们的页面部分中使用。例如,我可能将整个表单围绕在div中,如下所示: 我希望所有其他形式保持与现在相同,因为我将无法同时更改所有形式。有没有简单的方法可以做到这一点?我可以遍历Bootstrap CSS中的每种样式,并添

  • 问题内容: 我有一个元素。如何将CSS样式应用于此元素的所有子元素?我只想将样式应用于子元素。不是它的大孩子。 我可以用 这对所有孩子都有效,但我想对所有孩子都适用的解决方案。我以为我可以用,但是 不起作用。 编辑 该选择不使用Firefox 26应用规则,并有根据萤火没有其他规则的保证金。如果我替换为,它会起作用。 问题答案: 这些子元素的后代将(可能)继承分配给那些子元素的大多数样式。 您需要

  • 问题内容: 我想将CSS文件应用于页面中的具体DIV。这是页面结构: 我试图应用CSS文件的规则来编辑它(CSS文件太大): 但是该解决方案不起作用。那么,我该怎么做呢? 问题答案: 您可以尝试: 等等,这就是您想要的吗?

  • 问题内容: 使用jQuery,您将如何查找具有特定样式(例如)的元素,而不管它是内联样式还是CSS文件中定义的样式? 问题答案: 使用过滤功能: 将“ *”替换为适合您的情况的选择器。

  • 问题内容: 我是一个以双冒号为前缀的伪元素的新手。我碰到了一篇博客文章,讨论仅使用某些Webkit CSS的滚动条样式。伪元素CSS可以应用于单个元素吗? 在这个小提琴中,我想使div的滚动条自定义,但是主窗口的滚动条保持默认状态。 问题答案: 你的想法是正确的。但是,后面带有空格的表示法实际上与; 相同。这个选择器的意思是“里面任何元素的滚动条”。使用。

  • 问题内容: 有没有办法改变阴影元素中的样式?具体来说,扩展/覆盖CSS 类中的 某些属性?我正在使用一个名为Beanote的扩展名,自2017年4月以来从未进行过更新,我想修复一个令人讨厌的错误。我发现一行css对我来说足以对其进行修补,但是我在不使用shadow元素本身并直接在dev工具中编辑这些样式的情况下应用它感到无所适从。 我正在寻找一种方法: 覆盖此: 我在网上找到的大多数资源都涉及到查