我正在寻找一种将CSS样式应用于div2
的解决方案,只有在div1
可见时才会这样。我怎么能这样做?
<div class="div1"></div>
<div class="div2"></div>
<style>
/* when div1 is NOT present */
.div2 {
margin: 100px auto 100px auto;
}
/* when div1 IS present */
.div2 {
margin: 0 auto 100px auto;
}
</style>
答案 0 :(得分:3)
不需要Javascript;你可以使用CSS'兄弟'选择器来实现这个目标:
if($('.div1').is(':visible'))
{
$('.div2').css('margin','0 auto 100px auto');
}
else
{
$('.div2').css('margin','100px auto 100px auto');
}
当然,这仅适用于DOM中不存在.div2 {
margin: 100px auto 100px auto;
}
.div1 + .div2 {
margin: 0 auto 100px auto;
}
元素的情况(根据代码示例中的注释)。如果你想在.div1
存在但隐藏的时候这样做,那么你需要使用JS。
答案 1 :(得分:0)
执行此类行为的正确方法是在其顶级父级上设置基类(甚至可以是PUT
,并且可以从那里设置您想要的任何行为,纯粹通过CSS。
<body>
.menu_open .div1 {
display: block;
}
.menu_open .div2 {
display: none;
}
.div1 {
display: none;
}
.div2 {
display: block;
}
现在,您可以使用JS在<body class="menu_open">
<div class="div1">Div1</div>
<div class="div2">Div2</div>
</body>
类的状态之间切换,并且可以将复杂的行为设置为任何其他元素,与其他同级元素无关。
答案 2 :(得分:-1)
一个小jQuery总是有帮助,使用:jquery的public function getResources(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
{
if (null !== $repositoryMethod = $requestConfiguration->getRepositoryMethod()) {
$callable = [$repository, $repositoryMethod];
$resources = call_user_func_array($callable, $requestConfiguration->getRepositoryArguments());
return $resources;
}
// this has changed!
if (!$requestConfiguration->isPaginated() && !$requestConfiguration->isLimited()) {
return $repository->findBy($requestConfiguration->getCriteria(), $requestConfiguration->getSorting(), $requestConfiguration->getLimit());
}
if (!$requestConfiguration->isPaginated()) {
return $repository->findBy($requestConfiguration->getCriteria(), $requestConfiguration->getSorting(), $requestConfiguration->getLimit());
}
return $repository->createPaginator($requestConfiguration->getCriteria(), $requestConfiguration->getSorting());
}