代码之家  ›  专栏  ›  技术社区  ›  Dimitri Vorontzov

Div清除浮点值,即使未设置清除属性

  •  0
  • Dimitri Vorontzov  · 技术社区  · 11 年前

    这是一个太基本的问题,但我网站上div的行为让我感到困惑。

    我以前也遇到过同样的问题,所以我确信我一直在做一些错误的事情,或者误解了一些基本的CSS规则。

    问题: 为什么站点右下角附近的红色div标记会清除其左侧对应的标记?没有“明确”的规则适用于它!

    这是html:

    <div id="home-left">
    <?php 
    echo "Some php=generated content";
    ?>
    </div> <!-- END HOME-LEFT -->
    
    <div id="home-right-container">
    <p>Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah</p>
    </div> <!-- END HOME-RIGHT-CONTAINER -->
    

    下面是相应的CSS:

    #home-left {
    width:280px;
    margin:0 0 0 20px;
    //clear:both; /* STAY CLEAR OF THE SCROLLER-FEATHER-CONTAINER! */
    }
    
    #home-left h3 {
    
        //font-size: 1.128571429rem;
    font-size:12px;
        line-height: 1.2;
        font-weight: bold;
    text-transform:uppercase;
    margin-bottom:10px;
    }
    
    #home-left p {
        margin: 0 0 24px;
        margin: 0 0 1.514285714rem;
    font-size:11px;
        line-height: 1.5;
    }
    
    #home-right-container {
    width:100px;
    background:red;
    float:right;
    }
    
    4 回复  |  直到 4 年前
        1
  •  1
  •   What have you tried    11 年前

    左边的div实际上正在清除右边的div。这是因为如果元素不是 floated ,它基本上会有一个横跨页面整个宽度的边距。

    两种解决方案:

    1. 添加 float: left div 在红色方框的左侧。
    2. 添加 display: inline-block 分区 在下方红色框的左侧。
        2
  •  1
  •   Schleis    11 年前

    因为它位于文档流中右侧的元素之后。

    您可以切换元素顺序,这将为您提供所需的结果。或者将另一个元素向左浮动,这也可以给出您想要的结果。

        3
  •  1
  •   Ali Gangji    11 年前

    float允许元素浮动到其下方元素的一侧,而不是其上方的元素。

    如果您将#home向左浮动,则右侧div将在右侧

        4
  •  1
  •   dowomenfart    11 年前

    只需在style.css第235行添加float:left即可。希望这能有所帮助。