首页 前端知识 标准流 浮动 flex布局

标准流 浮动 flex布局

2024-08-18 22:08:17 前端知识 前端哥 33 858 我要收藏

目录

标准流

浮动 

清除浮动

清除浮动方法

方法一:额外标签法

 方法二:单伪元素法(直接复制粘贴)

方法三:双伪元素法(推荐) => 可以直接复制粘贴放到清除全局样式里

方法四:overflow => 设置该属性后浏览器会检查父级范围,自然高度也会被检测到

 浮动总结:

Flex布局

Flex-组成

主轴对齐方式 

Flex-组成

侧轴对齐方式

修改主轴方向

其他


标准流

标准流也叫文档流,指的是标签在页面中默认的 排布规则 ,例如:块元素独占一行,行内元素可以一行显示多个。 标准流

浮动 

  • 作用:     让块元素水平排列
  • 属性名:  float
  • 属性值:  left:左对齐    right:右对齐
  • 特点:      1.浮动后的盒子顶对齐   2.浮动后的盒子具有行内块特点  3.浮动后的盒子脱标,不占用标准流的位置

 float布局示例

 

清除浮动

        场景:浮动元素会 脱标 ,如果 父级没有高度 ,子级 无法撑开父级高度 (可能导致页面布局错乱) 解决方法: 清除浮动 (清除浮动带来的影响)

                                                                       代码示例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>浮动-清除浮动</title>
<style>
  .father {
    margin: 10px auto;
    width: 1200px;
    /* height: 300px; */
    background-color: pink;
  }

  .left {
    float: left;
    width: 200px;
    height: 300px;
    background-color: skyblue;
  }

  .right {
    float: right;
    width: 950px;
    height: 300px;
    background-color: orange;
  }

  .bottom {
    height: 100px;
    background-color: brown;
  }

</style>
</head>
<body>
<div class="father">
  <div class="left"></div>
  <div class="right"></div>
</div>
<div class="bottom"></div>
</body>
</html>
                                                                        效果示例

清除浮动方法

方法一:额外标签法

  • 元素内容的最后添加一个级元素,设置 CSS 属性 clear: both

 方法二:单伪元素法(直接复制粘贴)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>清除浮动-单伪元素法</title>
  <style>
    .father {
      margin: 10px auto;
      width: 1200px;
      /* height: 300px; */
      background-color: pink;
    }

    .left {
      float: left;
      width: 200px;
      height: 300px;
      background-color: skyblue;
    }

    .right {
      float: right;
      width: 950px;
      height: 300px;
      background-color: orange;
    }

    .bottom {
      height: 100px;
      background-color: brown;
    }

    /* 单伪元素法 */
  .clearfix::after {
    content: "";
    display: block;
    clear: both;
  }
  </style>
</head>
<body>
  <div class="father clearfix">
    <div class="left"></div>
    <div class="right"></div>
  </div>
  <div class="bottom"></div>
</body>
</html>

方法三:双伪元素法(推荐) => 可以直接复制粘贴放到清除全局样式里

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>清除浮动-双伪元素法</title>
  <style>
    .father {
      margin: 10px auto;
      width: 1200px;
      /* height: 300px; */
      background-color: pink;
    }

    .left {
      float: left;
      width: 200px;
      height: 300px;
      background-color: skyblue;
    }

    .right {
      float: right;
      width: 950px;
      height: 300px;
      background-color: orange;
    }

    .bottom {
      height: 100px;
      background-color: brown;
    }

    /* before 解决外边距塌陷问题 */
    /* 双伪元素法 */
    .clearfix::before,
    .clearfix::after {
      content: "";
      display: table;
    }

    /* after 清除浮动 */
    .clearfix::after {
      clear: both;
    }
  </style>
</head>
<body>
  <div class="father clearfix">
    <div class="left"></div>
    <div class="right"></div>
  </div>
  <div class="bottom"></div>
</body>
</html>

方法四:overflow => 设置该属性后浏览器会检查父级范围,自然高度也会被检测到

  • 元素添加 CSS 属性 overflow: hidden
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>清除浮动-overflow</title>
  <style>
    .father {
      margin: 10px auto;
      width: 1200px;
      /* height: 300px; */
      background-color: pink;

      overflow: hidden;
    }

    .left {
      float: left;
      width: 200px;
      height: 300px;
      background-color: skyblue;
    }

    .right {
      float: right;
      width: 950px;
      height: 300px;
      background-color: orange;
    }

    .bottom {
      height: 100px;
      background-color: brown;
    }

  </style>
</head>
<body>
  <div class="father">
    <div class="left"></div>
    <div class="right"></div>
  </div>
  <div class="bottom"></div>
</body>
</html>

 浮动总结:

        

  • 浮动属性 floatleft 表示浮动,right 表示浮动
  • 特点 1. 浮动后的盒子对齐   2. 浮动后的盒子具备行内块特点 3. 父级宽度不够,浮动的子级换行 4. 浮动后的盒子脱标
  • 清除浮动:子级浮动,父级没有高度,子级无法撑开父级高度,影响布局效果   1. 双伪元素法
  • 拓展:浮动本质作用是实现图文混排效果

Flex布局

                Flex 布局也叫弹性布局,是 浏览器提倡 的布局模型,非常适合结构化布局, 提供了强大的 空间分布 对齐 能力。 Flex 模型 不会 产生浮动布局中 脱标 现象,布局网页 更简单、更灵活

 

Flex-组成

设置方式:给 元素设置 display: flex 元素可以 自动挤压或拉伸 组成部分: • 弹性容器 • 弹性盒子 主轴:默认在 水平 方向 侧轴 / 交叉轴:默认在 垂直 方向

主轴对齐方式 

属性名:justify-content

Flex-组成

侧轴对齐方式

属性名 align-items :当前弹性容器内 所有 弹性盒子的侧轴对齐方式(给弹性容器设置) align-self :单独控制 某个 弹性盒子的侧轴对齐方式(给弹性盒子设置)

 

 

修改主轴方向

主轴 默认在水平方向 ,侧轴默认在垂直方向 属性名: flex-direction

 

其他

弹性伸缩比

作用:控制弹性盒子的 主轴 方向的 尺寸 属性名: flex 属性值: 整数数字 ,表示占用父级 剩余 尺寸的 份数 弹性盒子换行 弹性盒子可以 自动挤压或拉伸 ,默认情况下,所有弹性盒子都 在一行显示 属性名: flex-wrap 属性值 wrap :换行 nowrap:不换行(默认)

行对齐方式 属性名: align-content

转载请注明出处或者链接地址:https://www.qianduange.cn//article/16018.html
标签
评论
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!