CSS——浮动

一、浮动简介

浮动:一种布局方式,使元素脱离文档流

一旦元素脱离文档流了,它就不具备元素在文档流中的特点

块也不会独占一行了,行内也能设置宽高了,行内块也没有3像素的问题了

这种布局方式主要用于pc端,后期也会学更优秀布局方案,一定程度上替代了浮动

但不会完全替代,因为浮动的兼容性很好

设置浮动 float: ;

  • 可选值

left 向左浮动

right 向右浮动

none 不浮动

二、浮动特点

1、设置元素浮动后,元素脱离文档流,元素原来在文档流中位置就不在了,下面的元素会立即补充上去

2、元素浮动后并不会乱跑,会局限在父元素范围内,会紧跟着上一个兄元素如果上面的兄元素也浮动,他们就一起横向排列,如果上面的兄元素不浮动,浮动元素会被挡住

3、元素脱离文档流后,不再局限元素在文档流中的特点,行内可设宽高,块不再独占一行,行内块没有3像素问题

4、浮动的元素不会盖住文字,文字会自动环绕在浮动元素的周围,所以我们可以通过浮动来设置文字环绕图片的效果

三、高度塌陷

1、浮动带来的问题:高度塌陷

一般情况下,块元素高度如果不设置,会被内容撑开,此时设置其子元素浮动,子元素脱离文档流,不再占据原来在文档流中的位置,也就撑不开父元素的高度了,导致父元素高度的丢失,进而影响到整个页面的布局。

2、解决方案

(1)给父元素设置高度,最简单,最直接

(2)开启父元素的隐藏属性BFCoverflow:hidden

(3)给父元素的最后添加一个块标签,清除浮动带来的影响

(4)定义类,添加空白表格,清除浮动: clear: ;

  • 可选值

left:清除左侧浮动带来的影响

right:清除右侧浮动带来的影响

both:清除两侧浮动带来的影响

css 复制代码
      /* 解决外边距折叠 */
      .clear::before {
        content: "";
        display: table;
      }
      /* 解决高度塌陷 */
      .clear1::after {
        content: "";
        display: table;
        clear: both;
      }
      /* 整合以上2个类 */
      .clearfix::before,
      .clearfix::after {
        content: "";
        display: table;
        clear: both;
      }
相关推荐
倾颜19 小时前
从 textarea 到 AI 输入框:用 Tiptap 实现 / 命令、@ 引用和结构化请求
前端·langchain·next.js
kyriewen21 小时前
程序员连夜带团队跑路,省了23万:这AI太贵,真的用不起了
前端·javascript·openai
kyriewen21 小时前
你写的代码没有测试,就像出门不锁门——Jest + Testing Library 从入门到不慌
前端·单元测试·jest
yuzhiboyouye1 天前
web前端英语面试
前端·面试·状态模式
canonical_entropy1 天前
下一代低代码渲染框架 nop-chaos-flux 的设计原则
前端·低代码·前端框架
东方小月1 天前
5分钟搞懂Harness Engineering(驾驭工程):从提示词到AI Agent的进化之路
前端·后端·架构
我叫黑大帅1 天前
为什么需要 @types/react?解决“无法找到模块 react 的声明文件”报错
前端·javascript·面试
之歆1 天前
DAY_21JavaScript 深度解析:数组(Array)与函数(Function)(一)
前端·javascript
XinZong1 天前
【AI社交】基于OpenClaw自研轻量化AI社交平台实战
前端
Le_ee1 天前
ctfweb:php/php短标签/.haccess+图片马/XXE
开发语言·前端·php