假设在下面的HTML中,类为ChildBar
的元素可以是,也可以不是.
<div class="Parent">
<div class="ChildFoo"></div>
<div class="ChildBar"></div> <!-- Could not be -->
<div class="ChildBaz"></div>
</div>
此外,假设ChildBaz
必须在4px
年前从ChildFoo
退休,但必须在6px
年前从ChildBar
退休.在css中,它将是:
.ChildFoo + .ChildBaz {
margin-top: 4px;
}
.ChildBar + .ChildBaz {
margin-top: 6px;
}
现在,我想通过JavaScript将元素ChildBar
安装到正确的位置,如下所示:
- 围绕
ChildBar
的标记的更改不能阻止JavaScript的行为.这意味着不能使用像Element.after()
引用sibling 元素这样的方法. - 我需要mounting,而不是从隐藏状态显示.
- 以上款式绝对不能打破.
在以下加价的情况下,replaceWith
解决方案将很容易.
<div class="Parent">
<div class="ChildFoo"></div>
<div id="ChildBarMountingPoint"></div>
<div class="ChildBaz"></div>
</div>
Hoewever,ID为ChildBarMountingPoint
的元素会阻止样式.是否有一些magic
元素被CSS忽略,因此.ChildFoo + ChildBaz
被正确应用?(如果没有,则包含replaceWith
的解决方案分支是死胡同,我必须找到其他解决方案分支).