css样式--浮动详解

10 篇文章 0 订阅

1.文档流

        就是在页面布局中的"规矩",针对块级元素、内联元素、内联元素中的行内块而言。

        (行内块元素是特殊的内联元素,包括<img> <input> <button>)

(1)文档流的规则

元素在文档流中的书写顺序规则 

按照元素分类的书写顺序

——块级元素从上向下排列的方式顺序

——内联元素和行内块元素从左向右排列的顺序

元素在文档流中的占位规则

按照元素分类的占位

——块级元素默认自占父元素的一行

——内联元素默认不自占一行,当父级宽度不够时才会换行显示[浮动会导致内联元素和行内块变成块级]

元素在文档流的补全规则

——当一个元素在页面中消失(删除标签或者display:none),后面的紧挨着的兄弟元素,会向前一个兄弟的位置占位(上位)

元素的包裹规则【特别】

默认元素都保持着自己的显示形式(display),同时受子元素或者内容的影响。

内联元素:文字内容影响内联元素的宽高

块级元素:直接子级元素影响它的宽高

行内块:特殊没有包裹内容

(2)脱离文档流

浮动就会脱离文档流,不再遵循文档流的规则

指元素不再按照文档流规则进行,脱离了文档流的规则。

2.元素的浮动属性

元素浮动的终极目的:是让块级元素可以横向排列,以完成多种布局的页面效果

float: left; 元素向父级元素的左侧浮动

float: right;元素向父级元素的右侧浮动

3.问题

——浮动元素会盖住(影响)后面兄弟元素,导致布局错乱。解决方案:所有兄弟元素都浮动

——当元素浮动时本该影响后面的兄弟元素,但是如果兄弟元素本身是内联元素或者是行内块,并不会被遮盖而会形成环绕浮动元素的效果。解决方案:所有兄弟都浮动

——浮动元素宽度相加小于父元素宽度,会导致浮动元素换行【正常现象】

4.子元素浮动父元素高度坍塌(重要)

        如果父元素本身没高度,其高度是靠子级元素撑开的,当子元素浮动,导致父级元素不再被子元素撑起高度,于是父元素高度坍塌。

(1)解决方案一:

父元素自己设置高度,可参照子元素们的高度

(2)解决方案二:(常用)

当子元素高度未知,父元素无法靠自己设置高度保证与子元素同高时,利用父元素的BFC特性,overflowhiddenauto此种办法只解决浮动脱离文档流,不解决其他情况的脱离文档流

(3)使用伪元素和clear属性(常用)

.clearfix::after{

      content: "";

      display: block;

      clear: both;

}

(4)父级元素正好也浮动

不推荐,会对父集的兄弟元素产生影响

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值