float浮动对文本元素排版影响

本文主要解释float元素对文字图片的排版影响。

在css中有一个常见的图文环绕效果。实现方式主要是将图片左浮动,或者右浮动。其相邻的文字,就会环绕图片排列,代码和效果如下

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{
            width:500px;
        }
        .img1 {
            float:left;
        }
    </style>
</head>
<body>
    <div>
        ![](weibo.png)
        我是文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字
    </div>
    
</body>
</html>

效果

twhr.png

我们发现当图片设置了左浮动后,其相邻文本元素只会环绕图片排列并不会跑到图片的下方和上方。所以我们可以推测出,浮动的元素是对文字图片等文本元素的排版产生影响的.

有了这个案例,我们解释排版中常碰到的一个现象

页面上有两个一样的宽200像素,高200像素的div,其中div1添加了红色和div2蓝色背景,代码如下

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .div1{
            width: 200px;
            height: 200px;
            background-color: red;
            color:#fff;
            /*float: left;*/
        }
        .div2{
            width: 200px;
            height: 200px;
            background-color: blue;
        }
        
    </style>
</head>
<body>
    <div class="div1">
        DIV1DIV1DIV1DIV1DIV1DIV1
    </div>
    <div class="div2">
        我是文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字![](weibo.png)文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字
    </div>
</body>
</html>

正常排列效果:

zcpl.png

当我将红色div1设置为左浮动时(即将上方代码中的float:left注释取消掉),其所占据的空间上浮,所以蓝色div2就跑入了原红色div1的位置也就是div1的下方位置。

float:left;   /*放开注释*/

蓝色div1浮动后效果:

flyh.png

此时,从视觉上我们发现,蓝色div2中的文字没有在蓝色div2中。而我们的代码明明书写的文字是在蓝色div2中的。这其中原因就是文字会受浮动元素影响,而并不会总是完全跟随父级定位到父级的最左最上部分。

如果我们去掉蓝色div2的宽度值,或给它设置超过200px宽度时,文字和图片就会尽量往父元素即蓝色div2的顶部和左边靠,但它依然需要留出红色div1的区间。

  .div2{
        width: 400px;
        height: 400px;
        background-color: blue;
    }

宽度增加时效果:

gkyh.png

由此我们得出一个小结论

浮动的元素虽然会脱离正常的文档流,但它还是会影响到正常文档流中的文字排版。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于刚刚入门学习前端的渣渣来说,对于css浮动甚是不解,故找来优秀并通俗易解的文章来记录。 教程开始: 首先要知道...
    呆呆滴木木菇凉阅读 2,695评论 0 1
  • 本文为转载文章,转载地址:经验分享:CSS浮动(float 写在前面的话: 如果读者理解CSS盒子模型,但对于浮动...
    翻炒吧蛋滚饭阅读 4,669评论 1 14
  • 作者:杨元原文地址:http://www.cnblogs.com/iyangyuan 很早以前就接触过CSS,但对...
    IT程序狮阅读 3,851评论 1 12
  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 8,504评论 0 40
  • 本文以div元素布局为例。教程开始:首先要知道,div是块级元素(div与span),在页面中独占一行,自上而下排...
    TW妖妖阅读 2,929评论 0 1