CSS的三种布局机制 浮动 清除浮动

简介: CSS的三种布局机制 浮动 清除浮动

css的三种布局机制 浮动 清除浮动



记忆:

CSS布局的三种机制:普通流(标椎流),浮动和定位.
• 1

理解:

普通流在布局中的特点:
为什么用浮动:
为什么要清除浮动:

浮动

让盒子从普通流中浮动起来,主要作用让多个块级盒子一行显示
虽然行内块(inline-block)可以解决在一行内显示多个块级元素但是有缺陷,而每个行内块之间有间隙
为什么要浮动:
  让多个块级盒子一行显示,
  实现盒子的指定左对齐右对齐等
  浮动最早是用来控制图片,实现文字环绕图片的效果
什么是浮动:
  设定了浮动属性的元素会脱离标准普通流的控制,移动到指定的位置
语法:选择器{float:属性值;}//none 元素不浮动 left元素向左浮动 right 元素向右浮动
记忆浮动的特点:
  浮动就不属于标准流了,会在标椎流的上方浮动起来,而且把自己的位置让给下一个盒子来占用.也就是俗称的脱标
  float属性会改变元素的display属性,生成类似于行内块
  注意:浮动的元素互相贴靠一起,但是如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐
浮动小结: 
  我们使用浮动的核心目的是让多个块级盒子在同一行显示,因为这是常见的布局方式.
    浮:  加了浮动的盒子是浮起来的,漂浮在其他标椎流盒子的上面
    漏:  加了浮动的何止是不占位置的,他原来的位置漏给了标准流的盒子
    特:  特别注意浮动元素会改变display属性,累死转换为行内块,但是元素之间没有空白的间隙

CSS布局的三种机制:普通流(标椎流),浮动和定位.用于设置盒子摆放的位置

普通流(标椎流)

块级元素会独占一行,从上向下顺序排列
  常见的元素有:div,li ul ol,h1-h6,p,hr,dl,form,table
行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行
  常用的元素:a,b,strong,span,em,i

浮动

让盒子从普通流中浮动起来,主要作用让多个块级盒子一行显示
虽然行内块(inline-block)可以解决在一行内显示多个块级元素但是有缺陷,而每个行内块之间有间隙
为什么要浮动:
  让多个块级盒子一行显示,
  实现盒子的指定左对齐右对齐等
  浮动最早是用来控制图片,实现文字环绕图片的效果
什么是浮动:
  设定了浮动属性的元素会脱离标准普通流的控制,移动到指定的位置
语法:选择器{float:属性值;}//none 元素不浮动 left元素向左浮动 right 元素向右浮动
记忆浮动的特点:
  浮动就不属于标准流了,会在标椎流的上方浮动起来,而且把自己的位置让给下一个盒子来占用.也就是俗称的脱标
  float属性会改变元素的display属性,生成类似于行内块
  注意:浮动的元素互相贴靠一起,但是如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐
浮动小结: 
  我们使用浮动的核心目的是让多个块级盒子在同一行显示,因为这是常见的布局方式.
    浮:  加了浮动的盒子是浮起来的,漂浮在其他标椎流盒子的上面
    漏:  加了浮动的何止是不占位置的,他原来的位置漏给了标准流的盒子
    特:  特别注意浮动元素会改变display属性,累死转换为行内块,但是元素之间没有空白的间隙

浮动的应用

因为浮动会脱标的,会影响下面的标椎流元素,因此我们需要给浮动的元素添加一个标准流的父亲,这样,最大化的减少了对其他标椎流的影响.
浮动的扩展:
  浮动元素与父盒子的关系:
    子盒子的附佛那个参照父盒子对齐
    不会与父盒子的变框重叠,也不会超过父盒子的内边距
  浮动元素与兄弟盒子的关系:
    在一个父级盒子中,如果前一个兄弟盒子是:
      浮动的,那么当前盒子会与前一个盒子的顶部对齐.
             普通流的,那么当前盒子会显示在掐一个兄弟盒子的下方
注意:浮动只会影响当前的和后面的标准的盒子,不会影响前面的标准盒子
建议:如果一个盒子里面有多个盒子,如果其中的一个盒子浮动了,其他兄弟也应该浮动,防止引起问题

清除浮动

清除浮动的本质:
  清除浮动主要是为了解决父类元素因为子盒子浮动引起内部高度为0的问题,清除浮动之后,父级就会根据浮动的子盒子自动检测高度,父级就有了高度,就不会影响下面的标椎流了.
语法:选择器{clear:属性值} //left不允许左侧有浮动元素(清除左侧浮动的影响) right(清除右侧浮动的影响)both(同时清除左右两侧浮动的影响)

清除浮动的方法:
1:额外标签法(隔墙法)
通过在浮动元素标签的后面添加一个空的标签<div style="clear:both"></div>
优点:通俗易懂,书写方便
缺点:添加许多无意义的标签,结构化较差
2:父级添加overflow属性
可以给父类添加:overflow为hidden|auto|scroll都可以实现
优点:代码简洁
缺点:内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素
3:使用after伪元素清除浮动
after方式为空元素额外标签的升级版,好处是不用单独加标签了
写法:
.clearfix:after{
    content:"";
    display:block;
    height:0;
    clear:both;
    visibility:hidden;
}
.clearfix{/*ie6,7专有*/
    *zoom:1;
}
优点:符合闭合浮动思想,结构语义化正确
缺点:由于ie6-7不支持:after使用zoom:1出发hasLayout
代表网站:百度,淘宝,网易等
4:使用双伪元素清除浮动
.clearfix:before,.clearfix:after{
    context:"";
    display:table;
}
.clearfix:after{
    clear:both;
}
.clearfix{
    *zoom:1;
}
优点:代码简洁
缺点:由于ie6-7不支持after,使用zoom:1出发hasLayout

清除浮动的总结:

image.png

目录
相关文章
|
1月前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
1月前
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
1月前
|
前端开发
CSS 浮动属性讲解和使用
本文介绍了CSS中的浮动(float)属性,包括其基本功能、属性选项及其在网页布局中的应用。浮动使元素脱离文档流,向左或右排列,周围元素随之调整。文章还详细讲解了清除浮动的方法,如使用clear属性、设置父元素高度、利用overflow属性、伪元素等,以解决因浮动导致的布局问题。最后,强调了浮动在创建复杂布局时的作用,并预告后续内容。
37 2
|
1月前
|
前端开发 容器
实现CSS品字布局
【10月更文挑战第27天】
|
2月前
|
前端开发 容器
使用 CSS Grid 布局实现响应式设计
【10月更文挑战第1天】使用 CSS Grid 布局实现响应式设计
67 4
|
2月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
7月前
|
Web App开发 XML 前端开发
CSS中的非布局样式+CSS布局 前端开发入门笔记(十一)
CSS中的非布局样式+CSS布局 前端开发入门笔记(十一)
82 0
|
前端开发
网站开发之DIV+CSS简单布局网站入门篇(五)
这篇文章主要介绍如何使用DIV和CSS简单布局一个网站的首页,通常将网站划分为顶部(Logo、导航条)、中部(页面主要内容、左右栏目)、底部(制作方介绍、超链接)。这是非常基础的一篇引入性文章,采用案例的方式进行介绍的,希望对你有所帮助。运行结果如下图所示:main.html主页面代码:主要通过di
3639 0
|
前端开发 容器 JavaScript
CSS Grid布局入门
相信大家都比较熟悉flex布局了,最近有空研究了波grid布局,感觉虽然兼容性还不是太高,应用不是太普遍,但是功能非常强大。未来应该是grid+flex为主流,grid是二维布局,很灵活,适合整体构架,而flex是一维布局,适合处理局部细节。
1184 0