5.0 CSS基础之float浮动

225 阅读2分钟

CSS中的float

多用于使多个块级元素在一行显示

float基本属性

float中的四个参数

  • float : left   左浮动
  • float : right  右浮动
  • float : none  不浮动(默认)
  • float : inherit  继承浮动

举个栗子:

这里子元素设置了inherit属性,所以跟随父元素一起设置为右浮动,元素顺序也变成了自右向左排列。 如果子元素设置为left属性,父元素左右浮动时子元素都还是左浮动,元素顺序自左向右。

float属性实现文本环绕效果

在图片标签内设置float值

效果如下

float其实会转换行内元素为块状元素,使<span>标签也可以设置width和height等等

float标注元素虽然脱离标准流,但是依然占据文档流的文本空间

CSS中的定位机制

  • 标准流
  • 定位
  • 浮动

当父元素未设置高度时(跟随子元素变化),子元素设置了左浮动,造成页面的高度塌陷。

浮动副作用的解决

  • 手动给父元素添加高度(但是高度不够容易被超出)
  • 通过clear清除内部和外部浮动
  • 给父元素添加overfloat属性并结合zoom:1使用(overflow处理溢出问题,例如子元素尺寸比父元素大,但会有截掉信息的问题)
  • 给父元素添加浮动

clear属性

不允许有浮动对象

  • clear:none
  • clear:left(去除左侧浮动对象)
  • clear:right
  • clear:both(去除两侧浮动对象)

举个栗子:

这时红色块左浮动,脱离标准流,就可以与蓝色块一同存在于第一行的空间


当在蓝色块的盒子中加入clear:left后,红色色块失去浮动效果,只能按顺序排列

overflow属性

作用:规定当内容溢出元素框时发生的事情。

描述
visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

此处有效果展示:

developer.mozilla.org/zh-CN/docs/…