您现在的位置:学赛首页 > 新手教程 > HTML&CSS > 正文
精通CSS:浮动[2]
http://www.educity.cn 作者:《精通CSS:高级Web标准解决方案》 来源:希赛网 2007年9月12日 发表评论 进入社区

    要想阻止行框围绕在浮动框的外边,需要对这个框应用clear。clear属性的值可以是left、right、both或none,它表示框的哪些边不应该挨着浮动框。为了实现这种效果,在被清理元素的顶空白边上面添加足够的空间,使元素的顶边缘垂直下降到浮动框下面(见图2-17)。

图2-17  清理元素的顶空白边,为前一个浮动框留出足够的垂直空间

    浮动元素脱离了文档流,不影响周围的元素。但是,对元素进行清理实际上为前面的浮动元素留出了垂直空间。

    这是一个有用的布局工具,它让周围的元素为浮动元素留出空间。这解决了前面看到的绝对定位的问题,也就是垂直高度的改变不影响周围的元素,从而破坏了设计。

    我们来更详细地看看浮动和清理。假设有一个图片,希望让它浮动到一个文本块的左边。希望将这个图片和文本包含在另一个具有背景颜色和边框的元素中。你可能会编写下面这样的代码:

    .news{
    background-color: gray;
    border: solid 1px black;
    }

    .news img {
     float:left;
     }
     
    .news p{
    float:right;
    }
    <div class="news">
    <img src="news-pic.jpg" />
    <p>some text</p>
    </div>

    
    但是,因为浮动元素脱离了文档流,所以包围图片和文本的div不占据空间。如何让包围元素在视觉上包围浮动元素呢?需要在这个元素中的某个地方应用clear(见图2-18)。

    图2-18  因为浮动元素不占据空间,所以容器元素不包围它们。添加一个进行清理的空元素可以迫使容器元素包围浮动元素

[1]  [2]  [3]  [4]