我有一个这样的结构,一个div包含两个其他的:
<div class="list-detail">
<div class='first-list'>
</div>
<div class='second-list'>
</div>
</div>
字符串
我使用jquery填充它们,它们的css看起来像这样:
.list-detail{
display:flex;
}
.event-list, .match-list{
width:100%;
margin-left: 1%;
}
型width:100%
允许div跨越整个屏幕,每个div的宽度为屏幕的50%。div second-list
可以是空的,如果是这样,我会隐藏它。问题来了,当它被隐藏时,div first-list
占据整个屏幕,在这种情况下,我希望div居中并占据屏幕的50%。我如何才能实现这一点?
我已经尝试过删除/修改width:100%
,因为这可能是为什么当div second-list
被隐藏时,它跨越整个屏幕的原因,但它会扰乱两个div都充满元素的用例。它们非常小/根本不居中。
2条答案
按热度按时间siv3szwd1#
你可以将visibility设置为hidden,但请记住,它会从UI中隐藏它,但这个div仍然会占用空间,你可以在下面的例子中看到这一点
或者,您可以将列表元素的flex basis设置为50%,并将想要隐藏或从DOM中删除的元素的display设置为none
根据你想要实现的目标,你也可以检查如何使用网格来实现。
个字符
sbtkgmzw2#
如果我理解正确的话,您希望在div.second-list为空时将div.first-list居中,并且还希望div.first-list占据50%的空间,解决方案如下