Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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 div(如果内部有另一个div)和#x2B;div{}_Html_Css - Fatal编程技术网

Html div(如果内部有另一个div)和#x2B;div{}

Html div(如果内部有另一个div)和#x2B;div{},html,css,Html,Css,如何制定一条规则来实现以下功能: .container.unit:first child(如果它内部有div.box1.extra)+.box2{top:50px;} <div class="container"> <div class="unit"> <div class="box1 extra"><!-- content --></div> </div> <div class="u

如何制定一条规则来实现以下功能:

.container.unit:first child(如果它内部有div.box1.extra)+.box2{top:50px;}

<div class="container">
   <div class="unit">
       <div class="box1 extra"><!-- content --></div>
   </div>

   <div class="unit">
       <div class="box1"><!-- content --></div>
   </div>

   <div class="box2"><!-- content --></div>                 
</div>

不幸的是,目前CSS无法实现这一点。您所指的是使用CSS进行DOM遍历。您可以做的只是简单地声明规则

.container .unit:first-child .box1.extra + .box2 { top: 50px;}
如果
.box2
元素不存在,则不会更改任何内容。对于具有
.box2
的单元,将应用该规则


编辑:请注意,仅当
.box2
.unit
的子项时,此选项才有效。如果
.unit
.box2
是兄弟姐妹,很不幸,这是不可能的。

@DanilaBelov啊,我现在明白了。我没有仔细看标记。是否可以将box2放置在第一个单元元件的内部?然后,您仍然可以应用
位置:绝对
位置:固定
(我假设您是),并确保
。单元
位置:静态
。这很可能与它是
单元
的子项完全相同。