前端_1(css浮动+定位总结)

目录

定位机制

行级元素和块级元素

两者互相转换

浮动

float包裹和崩溃

清除浮动

清楚浮动的方法

定位

相对定位(relative)

绝对定位(absolute)

固定定位(fixed)

定位和浮动

绝对定位和浮动

相对定位和浮动

z-index的使用

浮动和定位的区别


定位机制

(标准)文档流、脱标流(float、position:absolute)

标准文档流现象:

  1. 空白折叠现象
  2. 高矮不齐、底边对齐
  3. 自动换行,一行写满,换行写

行级元素和块级元素

行级元素:与其他行内元素在一条水平线排列;不能设置宽、高,即文字的宽度

块级元素:独占一行;可设置宽、高

两者互相转换

// 将块级转换为行级
display:inline  

// 将行级转换为块级
// * 如果不设置宽、高,将填满父元素
display:block

由于标准文档流限制较多,不能实现页面所需功能,因此,我们可以使用3种方法进行脱标

  1. 浮动:float
  2. 绝对定位 :position:absolute
  3. 固定定位:position:fixed
  4. 相对定位:position:relative
  5. 无定位:position:static

浮动

浮动:让某个块级元素脱离标准文档流,漂浮在标准文档流之上,和标准流不是一个层次

性质:

  1. 浮动元素脱标
  2. 浮动元素互相贴靠
  3. 浮动元素有“围绕文字”的效果
  4. 收缩

详细解释可以看:CSS样式----浮动(图文详解)_weixin_33912453的博客-CSDN博客

float包裹和崩溃

崩溃:父一级的块级元素高度发生了破坏

将子元素设置为浮动之后,父元素在没有指定高度的情况下,父元素的高度将不存在

包裹

块级元素不设置宽、高时,默认宽度就是父级元素的宽度,div设置为float 产生包裹特性,宽度变为内容的宽度

由于包裹性特点,浮动元素一般需要手动设置width

垂直对齐方式:

        底部对齐  (vertical-aglin:bottom)     行级元素转块级元素

        垂直对齐(vertical-align) 可以 把行级元素 变为块级元素

vertical-align:bootom(简写为valign:bootom;)

//  要实现垂直对齐:可把行高设置为和边框一样高度

清除浮动

清楚浮动的原因:

  1. 为了父元素不会出现"高度崩溃"
  2. 如果强制规定外层容器的尺寸,则显得就不那么灵活了,高度不能自动适应了
  3. 从某个元素开始,不再需要浮动效果了

clear 属性可选参数值为left 、 right 、 both、 none、 inherit

如何解决浮动元素父级塌陷(高度崩塌)的问题

因为浮动的子元素元素脱离了标准流,使得父元素发生塌陷,如果父元素同样使用float脱离标准流,那么父元素和子元素就在同一排版空间,父元素就可以检测子元素的高度,所以就有了高度,我们给父元素添加overflow 和 zoom 可以有效地闭合住内部元素,使得父元素检测到当前元素的垂直总高度。clear同样具有闭合浮动的作用,需要在浮动的末尾进行使用,所以需要在所有浮动元素之后的元素给其添加clear 清除浮动才有效果。

清楚浮动的方法

方法一:在浮动元素的父级中调用样式  ``` clear:both;```

方法二:添加一个清除div            

/*普通浏览器清楚浮动方法*/
<div id="clearDiv"></div>

            #clearDiv{

                   clear:both;

                      }

/*ie6清楚浮动的方法*/
.clearfix{
    *zoom:1;
}

方法三:在浮动元素的父级添加属性:  ``` overflow:hidden ```


定位

相对定位(relative)

- 相对于自身位置进行定位。设置了position:relative后需要指定边距,如:top、left

        -  不设置偏移量的时候,对元素没有任何影响

        -  可以提升层级关系

- 相对定位的偏移参考元素是元素本身,不会使元素脱离文档流。元素的初始位置占据的空间会被保留

绝对定位(absolute)

- 相对于0 0的位置进行定位

- 相对于已定位的最近的祖先元素,如果没有已定位的最近的祖先元素,那么它的位置就相对于最初的包含块(如:body)

        - 提升层级

        - 脱离标准流

固定定位(fixed)

- 相对于浏览器窗口进行定位

- 设置固定定位之后,当前元素不会发生变化,可以做小广告

定位和浮动

绝对定位和浮动

float浮动,文档流的其他内容不会忽略float的位置(会识别出来),因此不会遮盖字体;    

// float跳出了文档流,但没有跳出文本流所以不会覆盖文本

绝对定位,其内容则会被文档流的其他内容忽略,因而产生的浮动会遮盖字体

相对定位和浮动

相对定位和浮动可以一起使用,在float控制浮动方向且不遮盖字体的情况下,由相对定位的设置来改变模块的偏移距离。

z-index的使用

z-index改变层顺序。z-index:数字;数字大的在上,小的在下。数字最好以整倍数设置:z-index:300; z-index:200; z-index:100;
z-index的值设置不可以太小,因为在一个大的布局当中很可能需要插入一层或者多层的层叠关系,因此设置的稍微大一些能够方便值的设定。

总结:
- 相对定位不破坏文档流; 绝对定位破坏文档流
- 通常情况下 相对定位作为父一级单位 绝对定位作为子一级单位(子绝父相
相对定位可以不设置 top left 依然保留在原位置 供绝对定位有参照物

-浮动与绝对定位的组合 都会破坏文档流 破坏之后 绝对定位会忽略绝对定位所占用的位置 而浮动会绕过浮动所占用的位置
-浮动与相对定位的组合 便兼具两者的特点,既可以采用浮动 又可以偏移


浮动和定位的区别

浮动:相对于父元素浮动的两个盒子,两个盒子之间的位置是有影响的,不可以重叠,如果同样是左浮得话,会依次排序。

定位:同样是相对于父元素进行定位的两个盒子 ,两个盒子位置之间没有关系,两个盒子甚至可以重叠。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值