关于 css 浮动的问题。

为什么左边的浮动元素,会受到右边块元素 margin 的影响。
Left 不浮动的时候。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">  
    <style> 
    #left { 
        width: 20%;
        height: 80px;
        background-color: #5555da;  
        text-align: center;
        color: #fff;
        padding-top: 40px;
    } 
    #content { 
        margin-left: 22%; 
    }
    body {
        margin: 0;
    }
    </style>
</head>
<body> 
    <div id = "left"> 
    </div>
    <div id = "content">
        <h2>基本信息</h2> 
    </div>
   
</body>
</html>

clipboard.png

上边的背景是顶到最上边,但是如果 left 加上浮动

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">  
    <style> 
    #left { 
        float: left;
        width: 20%;
        height: 80px;
        background-color: #5555da;  
        text-align: center;
        color: #fff;
        padding-top: 40px;
    } 
    #content { 
        margin-left: 22%; 
    }
    body {
        margin: 0;
    }
    </style>
</head>
<body> 
    <div id = "left"> 
    </div>
    <div id = "content">
        <h2>基本信息</h2> 
    </div>
   
</body>
</html>

clipboard.png

左边的浮动元素会受到 h2 的影响,出现 margin,出现了一行空白,这是为什么,该怎么解决。

阅读 3.1k
5 个回答

带有浮动属性的元素具有 包裹 性,所有带有浮动属性的元素兼并了块元素和内联元素的优点,使得元素不仅可以设置宽度和高度,也可以在水平方向进行排列布局。
带有浮动属性的元素会脱离标准流进行排列布局,脱离标准流后的元素就不和块元素相处在同一个流不居中,使得带有浮动属性的元素漂浮在正常块元素上面。但是 浮动的块虽然脱离了正常的文档流,但是依然占据正常文档流的文本空间。于是在其后面写的文本并不会被浮动元素所覆盖而是继续水平排列超出换行。

主要是h2有个上下的margin,你把h2的margin置为0就行了

h2 {
    padding: 0;
    margin: 0;
}

这样就行了

浮动(float)是 CSS 定位属性。浮动元素从网页的正常流动中移出,但是保持了部分的流动性,会影响其他元素的定位(比如文字会围绕着浮动元素)。这一点与绝对定位不同,绝对定位的元素完全从文档流中脱离。
所以当你给Left设置成float时,右边的H2会围绕着Left,同时H2margin所以会造成你所说的现象

新手上路,请多包涵

我认为是因为left与content同属于一个line boxes,具体可以看看下面的博客,我也不是很理解。链接描述

float确实是会脱离文档流 但是他不是完全脱离 是半脱离 你可以类比fixed 这个是完全脱离 我想兄弟因为这个原因会感觉迷惑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题