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

目录
相关文章
|
9天前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
2天前
|
前端开发 容器
实现CSS品字布局
【10月更文挑战第27天】
|
30天前
|
前端开发 容器
使用 CSS Grid 布局实现响应式设计
【10月更文挑战第1天】使用 CSS Grid 布局实现响应式设计
43 4
|
30天前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
2月前
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
2月前
|
前端开发
【前端web入门第六天】01 CSS浮动
这是关于CSS布局第六天学习目标的介绍,主要解决多个`&lt;div&gt;`标签在同一行显示的问题,即一个在左边,另一个在右边。文中介绍了标准流、浮动及flex布局的概念,重点推荐使用flex布局。文章详细讲解了浮动的基本使用、布局技巧及清除浮动的方法,包括额外标签法、单伪元素法、双伪元素法和`overflow`隐藏法,并提供了示例代码帮助理解。
|
2月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。
|
6月前
|
前端开发
CSS清除浮动的八种方法
CSS清除浮动的八种方法
|
6月前
|
前端开发
CSS 清除浮动的几种方法
CSS 清除浮动的几种方法
31 0