CSS3属性——浮动

float是CSS样式中的定位属性,用于设置标签对象(如<div>、<span>、<a>、<em>等HTML标签)的浮动布局。浮动也就是我们常说的标签对象浮动居左靠左(float:left)和浮动居右靠右(float:right)

浮动的应用场景

  1. 文字环绕
  2. 横向排列

盒子位置

  • 左浮动的盒子向上向左排列
  • 右浮动的盒子向上向右排列
  • 浮动盒子的顶边不得高于上一个盒子的顶边
  • 若剩余空间无法放下浮动的盒子,则该盒子向下移动,直到具备足够的空间能容纳盒子,然后再向左或向右移动

浮动的基本特点

修改float属性值为:

  • left:左浮动,元素靠上靠左
  • right:右浮动,元素靠上靠右

默认值为none

  1. 当一个元素浮动后,元素必定为块盒(更改display属性为block)
  2. 浮动元素的包含块,和常规流一样,为父元素的内容盒

盒子尺寸

  1. 宽度为auto时,适应内容宽度
  2. 高度为auto时,与常规流一致,适应内容的高度
  3. margin为auto,为0
  4. 边框、内边距、百分比设置与常规流一样

盒子排列

  1. 左浮动的盒子靠上靠左排列;右浮动的盒子靠上靠右排列
  2. 浮动盒子在包含块中排列时,会避开常规流块盒
  3. 常规流块盒在排列时,无视浮动盒子
  4. 行盒在排列时,会避开浮动盒子
  5. 外边距合并不会发生

如果文字没有在行盒中,浏览器会自动生成一个行盒包裹文字,该行盒叫做匿名行盒。

高度坍塌

高度坍塌的根源:常规流盒子的自动高度在计算时,不会考虑浮动盒子

清除浮动,涉及css属性:clear

  • 默认值:none
  • left:清除左浮动,该元素必须出现在前面所有左浮动盒子的下方
  • right:清除右浮动,该元素必须出现在前面所有右浮动盒子的下方
  • both:清除左右浮动,该元素必须出现在前面所有浮动盒子的下方

解决方法一:增加子元素,设置其clear属性
使用clear属性: 在浮动元素的下方插入一个空元素,并为其应用clear: both;样式。这将阻止浮动的影响影响到后续的元素。

解决方法二:使用伪元素选择器
类似于第一种方法,但是使用伪元素而不是实际在HTML中插入空元素。

::after用来创建一个伪元素,作为已选中元素的最后一个子元素。通常会配合content属性来为该元素添加装饰内容。这个虚拟元素默认是行内元素

方法二中,display:table;也可以

解决方法三:使用overflow属性
将浮动元素的父元素设置为overflow: auto;overflow: hidden;。这会触发BFC(块级格式化上下文),使得父元素能够正确地包含浮动元素。

display:table;的作用

display: table;是CSS中的一个属性值,用于设置元素的显示类型为表格。这属性值通常用于创建类似表格的布局,但不会生成实际的表格元素(<table>、<tr>、<td>等)。相反,它改变元素的显示行为,使其表现得像表格一样。

用法说明:

属性说明
table(类似<table>)此元素会作为块级表格来显示,表格前后带有换行符。
inline-table(类似<table>)此元素会作为内联表格来显示,表格前后没有换行符。
table-row-group(类似<tbody>)此元素作为一个或多个行的分组来显示。
table-header-group(类似<thead>)此元素作为一个或多个行的分组来显示。
table-footer-group(类似<tfoot>)此元素作为一个或多个行的分组来显示。
table-row(类似<tr>)此元素会作为一个表格行来显示。
table-column-group(类似<colgroup>)此元素会作为一个或多个列分组来显示。
table-column(类似<col>)此元素作为一个表格单元格列来显示。
table-cell(类似<td>或<th>)此元素作为一个表格单元格来显示。
table-caption(类似<caption>)此元素会作为一个表格标题来显示。

主要用途:

  1. 创建类似表格的布局:
    当你希望使用表格布局的特性,但又不想使用实际的表格标签时,可以使用display: table;。这在一些特定的布局需求中很有用,例如,你可以使用display: table;创建一个具有表格结构的布局,但使用div元素而不是实际的表格标签。
  2. 解决浮动元素引起的高度塌陷问题:
    在前面的回答中,我提到了在清除浮动时可以使用display: table;,将其应用于伪元素::after。这种方法利用了表格布局的特性,使得伪元素表现得像一个具有清除浮动效果的块元素。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值