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

目录
相关文章
|
2月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
133 1
|
2月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
275 1
|
6月前
|
前端开发
用 CSS Grid 轻松构建复杂布局
用 CSS Grid 轻松构建复杂布局
323 83
|
2月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
408 0
|
5月前
|
Web App开发 前端开发 数据可视化
用 CSS Grid 实现高效布局的 3 个实战技巧
用 CSS Grid 实现高效布局的 3 个实战技巧
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
6月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
6月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
6月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    238
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    226
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    164
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    133
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    275
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    408
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    177
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    112
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    192
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    262