2、浮动的用法特点,解决父元素高度塌陷解决

一、浮动

用法:浮动就是使用float样式,使元素脱离文档流。属性值有三个:none默认left right

特点:

  • 常用于文字环绕图片
  • 浮动的元素脱离文档流
  • 影响其他元素排列
  • 造成父元素高度塌陷

1、一旦元素设置了浮动,元素就会脱离文档流,它原来在文档流得位置, 就会被它下面的元素挤上来

2、如果浮动元素它上面的元素不浮动,则浮动元素无法上移

3、浮动元素也不会超过它前面浮动元素

4、浮动元素不会超出它的父元素

5、当浮动元素遇到了文字,浮动元素不会覆盖文字, 文字会环绕在浮动元素的周围,从而有文字环绕图片的效果。 这也是设置浮动最开始的想要的效果。

6、当元素设置浮动以后,会完全脱离文档流,元素脱离文档流后, 元素原来在文档流得特点,就都没有了,也就是说不再区分块,行内,行内块。

二、解决父元素高度塌陷

1.场景

子元素都设置了浮动,父元素没有高度,导致父元素高度塌陷,无法自动的根据子元素撑开高度。

方法一:额外标签法

在父元素内容的最后添加一个块级元素,设置属性clear:both。

缺点:增加了页面结构

javascript 复制代码
        /* 一般都用clearfix */
        .clearfix{
            clear: both;
        }

方法二:单伪元素法

给父元素添加after伪类,清除浮动

javascript 复制代码
        /* 方法2:父元素添加after伪类 单伪元素法 */
        .clearfix::after{
            content: "";
            display: block;
            clear: both;
        }

    <div class="father clearfix">

方法三: 双伪元素法(推荐)

用before可以解决外边距塌陷,相当于在父元素内部上方加了一个元素,子元素添加margin-top时,不会导致外边距塌陷。

用after可以清除浮动。

javascript 复制代码
         /* 方法3:双伪元素法 */
        /* before可以解决外边距塌陷 */
        .clearfix::before,
        .clearfix::after{
            content: "";
            display: table;
        }
        /* 清除浮动 */
        .clearfix::after{
            clear: both;
        }

<div class="father clearfix">

方法四:overflow:hidden

父元素:overflow:hidden。溢出隐藏

添加之后会检查父元素的范围,高度也就呈现出来了

javascript 复制代码
            /* 4. */
            overflow: hidden;

方法五:父元素添加高度。

相关推荐
敲敲了个代码2 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
dly_blog3 小时前
Vue 响应式陷阱与解决方案(第19节)
前端·javascript·vue.js
消失的旧时光-19433 小时前
401 自动刷新 Token 的完整架构设计(Dio 实战版)
开发语言·前端·javascript
console.log('npc')4 小时前
Table,vue3在父组件调用子组件columns列的方法展示弹窗文件预览效果
前端·javascript·vue.js
用户47949283569154 小时前
React Hooks 的“天条”:为啥绝对不能写在 if 语句里?
前端·react.js
我命由我123454 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
用户47949283569155 小时前
给客户做私有化部署,我是如何优雅搞定 NPM 依赖管理的?
前端·后端·程序员
C_心欲无痕5 小时前
vue3 - markRaw标记为非响应式对象
前端·javascript·vue.js
qingyun9895 小时前
深度优先遍历:JavaScript递归查找树形数据结构中的节点标签
前端·javascript·数据结构
熬夜敲代码的小N5 小时前
Vue (Official)重磅更新!Vue Language Tools 3.2功能一览!
前端·javascript·vue.js