当前位置 : 主页 > 网页制作 > css >

条件CSS:如果兄弟姐妹的div存在,那么

来源:互联网 收集:自由互联 发布时间:2021-06-13
在下面的html片段中,我希望“main”div仅在标记中不存在“menu”div时才有背景图像.这可能吗? div class="header" div class="siteTitle"site title/div div class="tagline"site tagline/div div class='menu'/div/divdi
在下面的html片段中,我希望“main”div仅在标记中不存在“menu”div时才有背景图像.这可能吗?

<div class="header">
    <div class="siteTitle">site title</div>
    <div class="tagline">site tagline</div>
    <div class='menu'></div>
</div>
<div class="main"></div>
http://www.w3.org/TR/css3-selectors/

E + F Matches any F element immediately preceded by a sibling element E.
E:not(s) an E element that does not match simple selector s

编辑:不使用简单的选择器,所以不幸的是你不能用它来过滤子属性,只有元素的属性.

A simple selector is either a type selector, universal selector, attribute selector, class selector, ID selector, or pseudo-class.

但是你可以在菜单上放一个.empty类并仍然使用它.

.header .menu:not(.empty) + .main {
   background:pink;
}

这个解决方案是两个世界中最好的,javascript但是按照正常情况使用css.

JavaScript的:

if ($('.menu').length == 0){
    $('body').addClass('no_menu');
}

css:

body.no_menu .main{
    background:pink;
}
网友评论