CSS-03 布局的三种机制

本文详细介绍了CSS布局的三种机制:普通流、浮动和定位。重点讲解了浮动元素的概念、如何清除浮动以防止页面布局混乱,以及定位的原理和不同类型的定位方式。还探讨了定位中的堆叠顺序和外边距合并问题。
摘要由CSDN通过智能技术生成

CSS布局的三种机制

(摆放盒子))
1、普通流(标准流)
在这里插入图片描述
2、浮动
3、定位

为什么需要浮动

如何让div水平排列成一行(行内块中块与块之间有缝隙,inline-block很难处理)
如何让其水平对称
在这里插入图片描述

什么是浮动

设置了浮动属性的元素会:
1、脱离普通标准流的控制
2、移动到指定的位置
在这里插入图片描述
语法
选择器{ float:属性值; }
在这里插入图片描述
1、浮(漂浮在普通流的上面)
俗称“脱标”
2、漏
把自己下面的位置给普通流的盒子
3、特
特性:改变元素的display属性
任何元素都可以浮动,会生成一个块级框(与行内块相似)
两个盒子都浮动,排列在一行,且之间没有空隙(区别)
如果父亲装不下,会另起一行对齐

【yiban】
在这里插入图片描述
浮动的元素不会遮盖父盒子的边框和内边距
在这里插入图片描述

浮动元素和兄弟盒子的关系:
浮动的,两个顶部对齐
如果第一个不浮动,第二个浮动,在这里插入图片描述
浮动只会影响当前的的或者是最后面的标准流盒子,不会影响前面的标准流
在这里插入图片描述

清除浮动

原因:父级盒子不方便给高度(子盒子自动撑开比较合理

在这里插入图片描述
会使页面布局变乱
在这里插入图片描述
在这里插入图片描述
** 清除浮动的本质**
为了解决父元素因为子元素浮动引起的内部高度为0的问题
清除浮动之后,会根据子盒子自动监测高度

清除浮动的方法

语法
选择器{
clear:both/left/both
}【一般都是用both】
1、额外标签法
找到浮动的最后一个元素,在后面添加一个空标签,style中添加这行代码
.clear{
clear:both;
}
结构较差
2、父元素添加overflow
overflow:hidden||auto||scroll
内容增多容易造成不会自动换行导致内容被隐藏,无法显示需要溢出的元素
在这里插入图片描述
3、使用after伪元素清除浮动(方法一的升级版,不用额外加标签了)
声明清除浮动的样式
.clearfix:after{
content:" "
display:block;
height:0;
visibility:hidden;
clear:both;
}

.clearfix{
*zoom:1;
}【为i6i7清除浮动的样式】

4、双伪元素清除浮动

.clearfix:before,
.clearfix:after{
content:"";
display:table;
}
.clearfix:{
clear:both;
}
.clearfix{
*zoom:1;
}

PS切图

定位

将盒子固定在某个位置,自由的漂浮在其他盒子(标准流和浮动)上面,定位是用来布局的,通过边偏移来移动位置
在这里插入图片描述
定位=定位模式+边偏移

语法:
选择器{
position:属性值;
top:100px;
left:100px;
}
在这里插入图片描述
静态定位(static)
默认方式(无定位),没有边偏移,基本不用

相对定位(relative)
相对于原来标准流的位置移动,
原来在标准流中的区域继续占有,后面的盒子仍然把其当做标准流
在这里插入图片描述
绝对定位(absolute)
带有定位的父元素来移动位置

标准流的子盒子一般以父盒子为准移动位置
绝对定位子盒子:如果父盒子没有定位,按照浏览器定位
如果父亲有,就以父盒子为准
如果爷爷有,父亲没有,就按爷爷定位

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为父盒子添加一个相对定位:
在这里插入图片描述
绝对定位的盒子不占位置(完全脱标)
口诀:子绝父相(子级用绝对定位时,父级要用相对定位)
父亲需要占有位置而儿子要任意摆放

有Padding不适合用浮动,可以用子绝

固定定位(fixed)
是绝对定位的一种特殊形式
1、完全脱标(不占位置)
2、只认可浏览器的可视窗口
浏览器可视窗口+边偏移属性 来设置元素的位置
和父元素无关
不随滚动条滚动

扩展

绝对定位的盒子居中
绝对/固定 不能通过 margin:auto 设置水平居中
在这里插入图片描述
1.left: 50%【让盒子左侧移动到父元素的水平中心位置】
2、margin-left:-100px【让盒子向左移动自身高度的一半】

堆叠顺序(Z-INDEX)
出现盒子重叠情况,加了定位的盒子默认后来居上
用== z-index==层叠等级属性可以调整盒子的堆叠顺序
在这里插入图片描述
定位改变display属性
行内块不给宽度默认就是内容的宽度
在这里插入图片描述
浮动元素,绝对定位元素不会发生外边距合并的问题
在这里插入图片描述
在这里插入图片描述
(总结没看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值