【问题标题】:Hiding a DIV if it doesn't fit如果不适合则隐藏 DIV
【发布时间】:2012-06-29 04:40:08
【问题描述】:

我有一个包含 3 个框的包装器(绿色:300 像素,蓝色:200 像素和黄色:100 像素)。容器的宽度可以是 500 像素或 300 像素。

我想要的是,在包装器的宽度为 500 像素的情况下,绿色和蓝色框对齐,黄色框被隐藏(案例 A)。在另一种情况(B)中,如果包装器的宽度为 300px,我希望绿色框在顶部,而其他 2 个框在底部对齐。

有没有办法做到这一点?

所有高度都相等(例如 100px)

更新:我无法提前控制包装器的宽度。所以我需要一个适用于这两种情况的解决方案,而不是 2 种解决方案(每种适用于 1 种情况)。

【问题讨论】:

标签: css css-float


【解决方案1】:
<!doctype html>
<html>
    <head>
        <title>Demo</title>
        <style>
            #caseA {width: 500px; float: left;}
            #caseB {width: 300px; float: left; clear: both; margin-top: 100px;}
            #caseA > div, #caseB > div {height:100px; position: relative;}

            .boxGreen {background-color:green; width: 300px; float: left; z-index: 3;}
            .boxBlue {background-color:blue; width: 200px; float: right; z-index: 2;}
            .boxYellow {background-color:yellow; width: 100px; float: right; margin-left:-100px; z-index: 1;}
        </style>
    </head>
    <body>
        <div id="caseA">
            <div class="boxGreen"></div>
            <div class="boxBlue"></div>
            <div class="boxYellow"></div>
        </div>

        <div id="caseB">
            <div class="boxGreen"></div>
            <div class="boxBlue"></div>
            <div class="boxYellow"></div>
        </div>
    </body>
</html>

【讨论】:

  • 谢谢!这正是我想要的。
【解决方案2】:

这个怎么样:

<style>
    #wrapper{
        overflow:hidden;
    }
    .wide{
        width:500px;
        height:100px;
    }
    .narrow{
        width:300px;
        height:200px;
    }
    #green{
        width:300px;
        height:100px;
        background-color:Green;
        float:left;
    }
    #blue{
        width:200px;
        height:100px;
        background-color:Blue;
        float:right;
    }
    #yellow{
        width:100px;
        height:100px;
        background-color:Yellow;
        float:left;
    }
</style>


<div id="wrapper" class="wide">
    <div id="green">&nbsp;</div>
    <div id="blue">&nbsp;</div>
    <div id="yellow">&nbsp;</div>
</div>

然后你可以在需要切换样式时来回交换这两个类。

【讨论】:

  • 对不起,我可能没有在帖子中说清楚。我不想要两种解决方案,每种情况一个。但对两者都适用的解决方案。想象一个用户正在将窗口的大小从 500 像素调整到 300 像素。我已经更新了我的帖子。
  • @mossaab 嗯,这会有所帮助。 :P 如果唯一会导致小框的条件是调整大小的窗口,您可以使用media queries。
【解决方案3】:

我想你想要this这样的东西?

更新:Now 使用@media 查询。

附言。调整 fiddle html painel 的大小以查看结果。

【讨论】:

  • 我在结果中看不到任何东西!
  • 但是使用此解决方案,您将需要两个不同的容器类和一个 javascript 来检查屏幕上的调整。
  • 完全没有。忽略容器 2。当您将 container1 的宽度更改为 300px 时,它正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 2020-08-03
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2012-01-08
相关资源
最近更新 更多