前端基础(十一)_Float浮动、清除浮动的几种方法

简介: 本文介绍了浮动的概念、属性、特性以及清除浮动的几种方法,并通过实例演示了如何使用CSS实现元素的浮动和处理浮动带来的问题。

浮动

1、什么是浮动?

目的:为了让多个块级元素在同一行显示;
文档流:可显示的对象在排列时所占的位置;
浮动:使元素脱离正常的文档流,按照指定的顺序,方向发生移动,直到碰到父元素外边缘或者相邻浮动元素边框为止;
脱离正常文档流:表示浮动后不在原来的位置 原来的位置不占位;
注意:只能向左或者向右移动 水平方向浮动 不能上下移动。
浮动了z-index提高了半层 但不能覆盖文字图片 所以不脱离文本流(z-index 属性只能给定位元素使用)。
在这里插入图片描述

2、浮动属性

float:left;  元素向左浮动
float:right;元素向右浮动
float:none; 默认值,元素不浮动 默认
<!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>
    .span1 {
    
      float: left;
      width: 150px;
      height: 100px;
      line-height: 100px;
    }

    .div2 {
    
      float: right;
    }
  </style>
</head>

<body>

  <span class="span1">
    我是span1
  </span>
  <div class="div2">
    我是div2
  </div>
</body>

</html>

在这里插入图片描述

这个时候可以发现浮动可以使块级元素由内容撑开

在这里插入图片描述
这个时候可以发现浮动元素使行级元素支持宽高

3、浮动特性

3.1、浮动会脱离正常文档流;
3.2、浮动元素层级可以提升;半层;半脱离文档流
3.3、浮动元素使行级元素支持宽高;
3.4、浮动可以使块级元素由内容撑开;
3.5、元素添加浮动之后,不占位,父级盒子高度0

浮动会脱离正常文档流例子:

<!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>
    .span1 {
    
      float: left;
      width: 150px;
      height: 100px;
      line-height: 100px;
      background-color: red;
      color: #fff;
    }

    .div2 {
    
      float: right;
      background-color: blue;
      color: #fff;
    }
  </style>
</head>

<body>
  我是正常的问题111
  <span class="span1">
    我是span1
  </span>
  我是正常的问题222
  <div class="div2">
    我是div2
  </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>
    .span1 {
    
      float: left;
      width: 150px;
      height: 100px;
      line-height: 100px;
      background-color: red;
      color: #fff;
    }

    .div2 {
    
      background-color: blue;
      color: #fff;
    }
  </style>
</head>

<body>
  <span class="span1">
    我是span1
  </span>
  <div class="div2">
    我是div2
  </div>
</body>

</html>

在这里插入图片描述
在这里插入图片描述

发现span1元素实在div2上面的,但是div2的文本没有被挡住,所以是半脱离文档流,没有完全脱机文档流,
如果想要看完全脱离,那效果就是我们看不到我是div2这个文本了,被span1这个元素挡住了,我们可以使用定位position实现。

元素添加浮动之后,不占位,父级盒子高度0

<!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>
    .span1 {
    
      float: left;
      width: 150px;
      height: 100px;
      line-height: 100px;
      background-color: red;
      color: #fff;
    }
  </style>
</head>

<body>
  <div class="box1">
    <span class="span1">
      我是span1
    </span>
  </div>
</body>
</html>

在这里插入图片描述

根据上面的例子我们可以总结一下:元素浮动以后,脱离正常文档流,父元素高度为0,导致父元素高度塌陷,会影响与父元素同级的后续元素的正常布局。

4、清除浮动的几种方法

1、给浮动元素的父级盒加固定的高度–不够灵活
2、为浮动元素的父级盒子加浮动–会产生新的浮动问题
3、为浮动元素的父级盒子设置overflow属性,属性值可以是hidden|scroll|auto—可能会导致显示内容不完全;但是代码简洁
4、在浮动元素之后,很浮动元素呈并列关系的位置加一个空的div,在空div上加一个属性 clear:both;–代码冗余、通俗易懂、书写方便
5、推荐方式:给浮动元素的父级盒子加类名 .clearfix

.clearfix{
   *zoom:1}

.clearfix::after{
   
    content:””;
    display:block;
    clear:both;
    visibility:hidden;
    height:0    
}

不会在结构上产生冗余代码,可以写在公共样式里面方便重复使用;符合闭合浮动思想,结构语义化正确

目录
相关文章
|
1天前
|
前端开发 JavaScript
前端基础(九)_this基本使用、this指向判断、改变this指向的方法
本文介绍了JavaScript中this的基本使用、this指向的判断以及改变this指向的方法。
5 1
前端基础(九)_this基本使用、this指向判断、改变this指向的方法
|
1天前
|
前端开发
前端基础(十四)_隐藏元素的方法
本文介绍了几种在前端开发中隐藏元素的方法,包括使用`display:none`、`visibility:hidden`、`opacity:0`等CSS属性,并提供了相应的示例代码。此外,还提到了其他隐藏元素的技巧,如通过设置元素位置、使用`overflow`属性和`filter`属性以及`rgba`颜色值来实现元素的隐藏。
12 1
前端基础(十四)_隐藏元素的方法
|
14天前
|
前端开发
【前端web入门第六天】01 CSS浮动
这是关于CSS布局第六天学习目标的介绍,主要解决多个`&lt;div&gt;`标签在同一行显示的问题,即一个在左边,另一个在右边。文中介绍了标准流、浮动及flex布局的概念,重点推荐使用flex布局。文章详细讲解了浮动的基本使用、布局技巧及清除浮动的方法,包括额外标签法、单伪元素法、双伪元素法和`overflow`隐藏法,并提供了示例代码帮助理解。
|
20天前
元素的浮动属性float
元素的浮动属性float。
11 6
|
22天前
|
前端开发 JavaScript
前端ES5 | js —添加元素方法
前端ES5 | js —添加元素方法
|
26天前
|
图形学 开发者
【Unity光照艺术手册】掌握这些技巧,让你的游戏场景瞬间提升档次:从基础光源到全局光照,打造24小时不间断的视觉盛宴——如何运用代码与烘焙创造逼真光影效果全解析
【8月更文挑战第31天】在Unity中,合理的光照与阴影设置对于打造逼真环境至关重要。本文介绍Unity支持的多种光源类型,如定向光、点光源、聚光灯等,并通过具体示例展示如何使用着色器和脚本控制光照强度,模拟不同时间段的光照变化。此外,还介绍了动态和静态阴影、全局光照及光照探针等高级功能,帮助开发者创造丰富多样的光影效果,提升游戏沉浸感。
38 0
|
4月前
|
存储 Java
百度搜索:蓝易云【Java语言之float、double内存存储方式】
由于使用IEEE 754标准进行存储,float和double类型可以表示非常大或非常小的浮点数,并且具有一定的精度。然而,由于浮点数的特性,它们在进行精确计算时可能会存在舍入误差。在编写Java程序时,需要注意使
90 0
|
2月前
|
存储 编译器 C++
C++从遗忘到入门问题之float、double 和 long double 之间的主要区别是什么
C++从遗忘到入门问题之float、double 和 long double 之间的主要区别是什么
|
2月前
|
存储 SQL 数据库
MySQL设计规约问题之为何推荐用DECIMAL代替FLOAT和DOUBLE来存储精确浮点数
MySQL设计规约问题之为何推荐用DECIMAL代替FLOAT和DOUBLE来存储精确浮点数
|
4月前
|
存储 C语言
计算 int, float, double 和 char 字节大小
计算 int, float, double 和 char 字节大小。
61 3