可以看一下大神的理解很详细:https://blog.csdn.net/qq_20404903/article/details/49024247

一、浮动的理解

浮动的框可以向左向右移动,知道它的外边缘碰到包含框(父亲框)或者其他的浮动框位置,因为浮动框不在文档的普通流中,所以文档的普通流中的块框表现的就行浮动框不存在一样

二、浮动的分类:

left:   左浮动

right:   右浮动

none:  默认值,不浮动

inhert:  继承父亲框的浮动属性

三、怎么理解浮动脱离了标准文档流

1.要搞清这个问题,首先要明白什么是标准文档流

标准文档流布局情况:从上到下、从左至右分布,遇到块级元素换行

2.分析

脱离标准文档流就是不符合上面的分布状况了,而我们的浮动float已经实现遇块级元素不换行了,所以我们只需先证明这一点就行了。

3.演示

没有使用浮动:

代码:

<div style="width:600px;height:500px;background:#FF0;margin:0 auto;">

<div style="width:180px;height:80px;background:#06F">div1</div>
      <div style="width:220px;height:80px;background:#303">div2</div>

</div>

效果图:

div1使用左浮动:

效果图:

4.结论

当div1使用左浮动时,该div已经脱离了原来的轨迹,完全浮动到下个块状元素的上方,下面的块状元素就当做上方没东西,所以就占用了上面的元素的位置

四、我对float的理解

首先要明白什么是行内元素和块状元素

块状元素:可以设置width、height;可以设置内外边距;独占一行(除了使用float之外)

行内元素:不可以设置width、height但是可以使用line-height替代;内外边距(padding、margin)的左右边距可以设置,上下不起作用;不是独占一行

1.使用了浮动之后就相当于将该元素抠出来了,将之放在假想的第二层,不影响下面的块状元素操作,就长做浮动的元素不存在就行了,记住我这里说的是不影响块状元素的操作。

2.两个相邻的浮动元素可以认为是在同一层

3.如果元素(包括块状和行内元素)使用浮动,紧接着的如果是行内元素就相当于使用了左浮动、

下面我对上面的理解用实例来解释一下

实例:

原代码:

<style type="text/css">
   #div1{
    width: 100px;
    height: 50px;
    background-color: red;
}

#div2{
    width: 200px;
    height: 50px;
    background-color: green;
}

#div3{
    width: 300px;
    height: 50px;
    background-color: black;
}

#div4{
    width: 400px;
    height: 50px;
    background-color: blue;
}
</style>
</head>
<body>
    <div id="div1">div1</div>
    <div id="div2">div2</div>
    <div id="div3">div3</div>
    <input id="input1" type="text" value="input1">
    <div id="div4">div4</div>
    <input id="input2" type="text" value="input2">
</body>

效果图:

(1)、添加div1的左浮动

效果图

可以得出第一个结论

(2)、div1和div2一起使用左浮动

说明:div1和div2把div3给覆盖了

可以看出来两个浮动元素都在第二层

(3)div3添加左浮动

行内元素input1相当于一个添加了一个float一样与div3一起在第二层

五、当多个浮动在同一行不够位置填充的情况下

如果右侧宽度不够,就向下面显示,首先会找到高度最小的那个,如果右侧还有高度较高的,则在这个高的右侧再找高度最小,知道找到右侧没有较高的,倘若到了最后都没找到,就转到下一行最左侧填充,应该填充在上面的浮动的最突出的水平线之下

看例子

代码:

<style type="text/css">
      .div1{
     width:120px;
 height:50px;
 background:pink;
 border:1px solid blue;
 }
  
  </style>
 </head>
 <body>
   <div style="width:400px;height:300px;border:1px solid red;">
 <div class="div1" style="height:100px;">div1</div>
      <div class="div1" style="height:80px;">div2</div>
      <div class="div1">div3</div>
 <div class="div1">div4</div>
   </div>

</body>

效果:

现在给四个div都添加上左浮动

div1和div2换一下位置

div2和div3换一下位置

div1和div3换一下位置

HTML之float浮动相关推荐

  1. css选择器及float(浮动)

    --------------------------选择器( css有就近原则)------------------------------- 选择器名称                 在css表的 ...

  2. CSS Float(浮动)

    2019独角兽企业重金招聘Python工程师标准>>> 什么是CSS Float(浮动)? CSS的Float(浮动),元素可以围绕其他元素向左或向右被推动 Float(浮动),往往 ...

  3. CSS清除浮动_清除float浮动

    CSS清除浮动方法集合 一.浮动产生原因   -   TOP 一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了. ...

  4. CSS布局之float浮动

    之前对CSS的浮动布局总是一知半解,最近开发中用的多了,对它的用法进行一些总结,以便以后忘记时可以查到.哈哈,别说我记性不好,我可是说真的,毕竟前端的知识实在是多而杂,多做笔记,遇到问题时网上搜索资料 ...

  5. 对css float 浮动的学习心得

    css float浮动详解 @(css float)[hasLayout|clear float|妙瞳] css float的定义和用法 float 属性定义元素在哪个方向浮动.以往这个属性总应用于图 ...

  6. html中使浮动的字为行排列,CSS布局:float浮动

    优秀文章:https://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html 浮动细节原理 所有元素设置float浮动之后,会脱离文档流 ...

  7. CSS:盒子模型和清除float浮动的三种常用方法

    目录 一:浮动产生原因: 二:浮动产生副作用: 三:浮动解决方法: QUESTION:CSS盒子模型清除浮动? ANSWER: 一:浮动产生原因: 一般浮动是什么情况呢?一般是一个盒子里使用了CSS ...

  8. html 为什么ul不撑开,给li设置float浮动属性之后,无法撑开外层ul的问题。

    以下面代码为例,其实有好几种解决方法,我用的这种并不是最简单的. 给li设置float浮动属性之后,无法撑开外层ul的问题. ul{ border: 1px solid #000; width: 20 ...

  9. (12)css—float浮动样式

    一.什么是浮动? 浮动是一种非常重要的布局属性. 属性名:float,漂流.浮动的意思. 属性值:left 左浮动 right 右浮动 作用:让元素脱离标准流,同一级的浮动的元素可以并排在一排显示. ...

  10. CSS清除浮动 清除float浮动

    一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级 对象盒子不能被撑开,这样CSS float浮动就产生了. 1.背景不能显示 由于浮动产生,如果对父级设置了(CSS b ...

最新文章

  1. tm matlab,[转载]关于matlab中textread
  2. java抓取网页或者文件的邮箱号码
  3. Codis集群扩容方法
  4. Mac下Selenium无法最大化Chrome解决方案
  5. 专栏 | 基于 Jupyter 的特征工程手册:特征选择(三)
  6. C语言试题三十八之将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。
  7. Office基础和计算机操作基础的知识点(一)
  8. 查看 rabbitmq 启动websocket 提示404_RabbitMQ在windows下安装(笔记)
  9. 程序员的算法课(18)-常用的图算法:广度优先(BFS)
  10. BZOJ #3746: [POI2015]Czarnoksiężnicy okrągłego stołu 动态规划
  11. UA OPTI512R 傅立叶光学导论21 菲涅尔衍射与夫琅禾费衍射的例子与图像
  12. 小程序开发解决方案_小程序开发方案怎么写
  13. socket原理及实现
  14. 电脑桌面计算机图标下不显示文字,为什么电脑桌面上的图标文下面没有显文字...
  15. Newton牛顿法(二)| 收敛性和收敛速度 +初值的选取方法
  16. 曾经改变了千万人的人生经典语录
  17. C#中{0}表示什么意思?
  18. android 键盘回车按钮事件,Android中ENTER键(确认键)点击响应
  19. 视频中地点位置标题文字标记介绍动画AE字幕模板
  20. 手机客户端使用ConnectBot软件远程登录服务器

热门文章

  1. 解决word写论文改成两栏时mathtype的公式无法居中的问题
  2. 双因素认证的解决方案
  3. CSDN Android客户端开发(二):详解如何基于Java用Jsoup爬虫HTML数据
  4. 词达人自动做题PHP版全套开源+前后台分离开发+带半个软件+CDKey兑换
  5. 在web页面上快速生成二维码的三种实用方法
  6. 微信公众号内下载pdf等文件,受微信所限制,安卓和IOS不同处理方式
  7. 一文了解图像标注类型
  8. CMOS:MOS电容
  9. 7-1 高速公路超速处罚 (15 分)
  10. 服务器感染了.halo勒索病毒,如何确保数据文件完整恢复?