09css属性——浮动

一、浮动float

1、定位方案(position schemes)

常见的三种方式对元素进行定位、布局
  • normal flow:标准流、常规流、文档流
  • absolute positioning:绝对定位(相对于父元素)
  • float:浮动

绝对定位、浮动都会让元素脱离标准流,以达到灵活布局的效果

2、float

float的取值none(不浮动,默认值)、left、right

3、浮动规则

(1)向左或者向右方向移动,直到自己的边界紧贴着包含块(一般是父元素)或者是其他浮动元素

(2)定位元素会层叠在浮动元素上面

层叠关系(兄弟关系)

  • 标准元素:标准流中的元素不存在层叠

  • 定位元素:定位元素会层叠到标准流元素的上面

    • 定位元素之间可用:z-index
    • 前提:必须是定位元素-非static
  • 标准元素->浮动元素->定位元素

(3)浮动元素不能与行内级元素层叠,行内级元素内容将会被推出

比如行内级元素、inline-block、块级元素的文字内容

(4)行内级元素、inline-block元素浮动后,其顶部将与所在行的顶部对齐(不会上移动,只会左右浮动)

  • 定位元素和浮动元素脱离标准流后为block元素,默认的宽度和高度只会包裹内容(以下两个相冲突)

    display:inline-block;
    float:left;
    
inline-block布局的缺陷
  • 若有文字水平方向会有影响
  • 其次两个版块之间会有间隙,且间隙的大小是由文本字体大小来决定的
浮动布局边缘多出一个margin

.container 固定的宽度>.wrap+负margin>很多的item

4、浮动元素存在的问题

  • 由于浮动元素脱离了标准流,变成了脱标元素,所以不再向父元素汇报高度
  • 父元素计算总高度时,就不会计算浮动子元素的高度,导致了高度坍塌的问题
  • 解决父元素高度坍塌的问题的过程,一般叫做清浮动(清理浮动、清除浮动)
  • 清浮动的目的是:
    • 让父元素计算总高度的时候,把浮动子元素的高度算进去

5、清除浮动的常见方法

  1. 给父元素设置固定高度(扩展性不好)
  2. 给父元素增加一个空的块级子元素,并且让它设置clear:both
    • 会增加很多无意义的空标签,维护麻烦
    • 违反了结构与样式分离的原则
  3. 在父元素最后增加一个br标签:<br clear = "all">
    • 会增加很多无意义的空标签,维护麻烦
    • 违反了结构与样式分离的原则

6、css属性-clear

  • clear的常用取值
    • left:要求元素的顶部低于之前生成的所有左浮动元素的底部
    • both:要求元素的顶部低于之前生成的所有浮动元素的底部
<br clear="all">
/* 如果放在父元素(div)内,父元素会包裹它,那么父元素会有高度
   如果放在父元素外,父元素就没有高度*/
/* 伪元素默认为行内级元素 */
.clear-fixed::after{
    content: " ";
    display: block;
    clear: both;
}

7、定位方案对比

定位方案应用场景
normal flow垂直布局
absolate positioning层叠布局
float水平布局
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值