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

DIV溢出到左栏,不希望它伸展以适应空白区域。

  •  0
  • Brad  · 技术社区  · 15 年前

    在屏幕截图中,您将看到哪里有空白,它将拉伸以适合(宽度:100%)。 http://i29.tinypic.com/24v0gma.png

    这里的浅黄色和深黄色css类,称为 文章 :

    .article {
        padding:10px;
        overflow:auto;
    }
    

    这里是左边的col css类:

    .col-left {
        float:left;
        position:relative;
        overflow:auto;
        height:100%;
        width:20%;
        xpadding:0 5px 0 0;
        xfont-size:.8em;
        font-family:arial;
    }
    

    您可以在此处查看实时页面: http://herkimer.edu/admissions/view_news/

    我怎样才能拿到它,这样黄色的盒子就不会溅到左边了?

    4 回复  |  直到 15 年前
        1
  •  1
  •   James McMahon    15 年前

    你这样做:

    .article {
      margin-left: 100px; /* example */
    }
    
    .col-left {
      width: 100px; /* same as margin-left above, might not work with percentage */
    }
    
        2
  •  1
  •   MyItchyChin JNK    15 年前

    div默认为块级元素,因此它们尝试水平展开,但即使定义了100%的高度,也不会垂直展开。

    alt text

    左栏的高度只有 它包含的内容。

    我建议您在一个分区中嵌套所有的文章分区,这将按您想要的方式约束它们。

    变化:

    <div class="content-body">
      <div class="col-left">
      </div>
      <h1>Admissions Announcements</h1>
      <p style="padding:5px 0;">Page 1 of 1 pages </p>
      <div class="article odd">
      </div>
      <div class="article even">
      </div>
      <div class="article odd">
      </div>
    </div>
    

    到:

    <div class="content-body">
      <div class="col-left">
      </div>
      <h1>Admissions Announcements</h1>
      <p style="padding:5px 0;">Page 1 of 1 pages </p>
      <div>
          <div class="article odd">
          </div>
          <div class="article even">
          </div>
          <div class="article odd">
          </div>
      </div>
    </div>
    
        3
  •  1
  •   stefita    15 年前

    可以加清楚:右;到。左栏?

    ——编辑 您可以将右侧的所有分隔符打包到一个名为.col right的新分隔符中,并使其向右浮动,同时赋予它一个width属性。然后在.col-left样式中添加clear:right。这将产生这样的效果:右边的列不会在左边的列下面继续。我用Firebug测试过,结果成功了。

        4
  •  0
  •   Mayo    15 年前

    也许您可以用“col right”类将右列中的元素包装在新的DIV中。我用你的代码和下面的CSS测试了这个:

    .col-right 
    {    
       float:left;    
    }