在下面的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
<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; }