代码之家  ›  专栏  ›  技术社区  ›  Davit

当窗口宽度小于正常值时,右浮动div位于左div之后,没有浮动

  •  2
  • Davit  · 技术社区  · 11 年前

    我在这样的固定标题中有两个div

    HTML格式

    <div id="commit-header_panel">
       <div id="commit-header_panel_right" style="float:right;backg..."></div>
       <div id="commit-header_panel_left"></div>
       <div style="clear:both;"></div>
    </div>
    

    CSS格式

    #commit-header_panel
    {
        background-color: #c5e8fc;
        height:74px;
    }
    #commit-header_panel_left
    {
        height:74px;
        min-width: 630px;
    }
    
    #commit-header_panel_right
    {
        min-width: 573px;
        width:expression(document.body.clientWidth < 573? "573px": "auto" );
        height:74px;
    }
    

    问题是,当我将窗口调整到较小的宽度时,右侧的div与左侧的div相交。

    我想要第二个(右浮子)不要在左浮子后面。右边的div应该停止向左移动,如果需要的话,让用户使用浏览器窗口的水平滚动条来查看右边的部分。

    问题 enter image description here

    4 回复  |  直到 11 年前
        1
  •  2
  •   97ldave    11 年前

    您可以使用媒体查询来定义您的CSS:

    例如:

    @media all and (max-width: <SET WIDTH HERE>) and (min-width: <SET WIDTH HERE>) {
        //Define CSS here for screen size 
    }
    

    或者,您可以更改定义 width 在您的 <div> 使用百分比。

    这样地:

    #commit-header_panel_left
    {
        height:74px;
        min-width: 30%; //replace with required value
    }
    
    #commit-header_panel_right
    {
        min-width: 30%; //replace with required value
        width:expression(document.body.clientWidth < 573? "573px": "auto" );
        height:74px;
    }
    
        2
  •  2
  •   Huangism    11 年前

    如果你想要水平滚动条,那么为你的标题设置一个最小宽度

    #commit-header_panel
    {
        min-width: 1203px
    }
    
        3
  •  1
  •   Djouuuuh    11 年前

    修复 width commit-header_panel 同上。

        4
  •  0
  •   Thomas Cheney    11 年前

    最简单的方法是找到面板开始重叠的宽度,然后设置最小宽度:Xpx;到父容器。这允许面板动态响应窗口的大小调整,但会创建一个停止点,面板将不再移动。

    您可能还想将面板宽度设置为width:auto;或宽度:X%;因为一些浏览器可能只是简单地捕捉到最小宽度而不响应不断变化的窗口大小。

    #commit-header_panel {
    background-color: #c5e8fc;
    height:74px;
    width: 100%;
    min-width: 900px;
    }
    

    然后一定要用以下方法清除浮子:

    <div style="clear: both;"></div>