根据另一个div设置父div的样式

时间:2016-05-22 11:06:17

标签: javascript jquery html css

我正在寻找一种将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>

3 个答案:

答案 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());
}