javascript – CSS:仅当稍后的兄弟存在时才选择元素

前端之家收集整理的这篇文章主要介绍了javascript – CSS:仅当稍后的兄弟存在时才选择元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的 HTML结构中,我设置如下:
<body>
   <main>
      <section>
      ...
      </section>

      <aside>
      ...
      </aside>
   </main>
</body>

问题在于,并不是所有页面都有< aside>

我需要选择< section>并给它一个最大宽度:500px;仅在< aside>存在.默认值为{max-width:1000px; }(当< aside>不存在)

不同于Selector for one tag directly followed by another tag;用户[询问]想要“B”的所有时间.此外,在这个问题中,用户想要选择“B”(而不是“A”)

>我需要样式< section>只有< aside>存在.
>我无法更改HTML的顺序> _<
>只能用CSS完成?
>我需要什么选择器或如何设置?
>如果不能用CSS完成(我宁愿只用CSS),我该怎么做呢?

解决方法

一个整洁的小技巧

您可以通过使用技巧来检查< section>元素是< main>中唯一的元素.如果那里还有其他的元素,这将不起作用.在你的情况下,它应该像这样工作(http://jsfiddle.net/Ljm323qb/2/):

section {
     max-width: 500px;
}
/* The STAR of the show */
section:only-child {
     max-width: 1000px;
}

如本代码所示:http://codepen.io/omarjuvera/pen/ByXGyK?editors=110

兄弟选择器上的一般东西

有一个选择器将选择一个兄弟姐妹,紧跟着元素(https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_selectors)

还有〜选择器选择所有以下兄弟姐妹(https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_selectors)

您可以通过将< aside> < section>之前的元素元素并使用兄弟选择器.

这里有一个例子:http://jsfiddle.net/Ljm323qb/1/

快速浏览未来
很快这将是可能的,有一个新的:有伪类(http://dev.w3.org/csswg/selectors-4/#relational)你可以调用main:has(> aside)>部分{…},但我们必须等待,不幸的是

原文链接:https://www.f2er.com/js/154559.html

猜你在找的JavaScript相关文章