CSS布局的三种机制:浮动

2023-10-26

网页布局的核心—就是用CSS来摆放盒子
CSS提供了3种机制来设置盒子的摆放位置,分别是普通流(标准流)、浮动和定位,其中:

1、普通流(标准流)

  • 块级元素会独占一行,从上向下顺序排列:
    常用元素:div、hr、p、h1-h6、ul、ol、dl、form、table
  • 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行;
    常用元素:span、a、i、em等。

2、浮动

  • 让盒子从普通流中浮起来,主要作用让多个块级盒子一行显示。

3、定位

  • 将盒子定在浏览器的某一个位置—CSS离不开定位,特别是后面的js特效

浮动(float)

为什么要学习浮动?

在这里插入图片描述
虽然我们前面学过行内块(inline-block)但是他有之间的缺陷
1.它可以实现多个元素一行显示,但是中间会有空白缝隙,不能满足第一个问题。
2.它不能实现以上第二个问题,盒子左右对齐

什么是浮动(float)

概念:元素的浮动是指设置了浮动属性的元素会
1.脱离标准普通流的控制
2.移动到指定位置

作用
1.让多个盒子(div)水平排列成一行,使得浮动成为布局的重要手段。
2.可以实现盒子的左右对齐等等。
3.浮动最早是用来控制图片,实现文字环绕图片的效果。
在这里插入图片描述
语法

div {float: 属性值;}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:浮动的元素互相贴靠一起的,但是如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐

浮动小结

在这里插入图片描述

浮动的应用

浮动和标准流的父盒子搭配
我们知道,浮动是脱标的,会影响下面的标准流元素,此时,我们需要给浮动的元素添加一个标准流的父亲,这样,最大化的减小了对其他标准流的影响。
在这里插入图片描述

清除浮动

为什么要清除浮动

因为父级盒子很多情况下,不方便给高度,但是子盒子浮动就不占有位置,最后父级盒子高度为0,就影响了下面的标准流盒子
在这里插入图片描述
在这里插入图片描述

  • 总结:

(1)由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响
(2)准确地说,并不是清除浮动,而是清除浮动后造成的影响

清除浮动本质

清除浮动主要为了解决父级元素因为子级浮动引起内部高度为0的问题,清除浮动之后,父级就会根据浮动的盒子自动检测高度。父级有了高度,就不会影响下面的标准流了

清除浮动的方法

在CSS中,clear属性用于清除浮动,在这里,我们先记住清除浮动的方法,具体的原理,等我们学完CSS会再回头分析。

  • 语法

选择器{clear : 属性值;}

在这里插入图片描述但是我们实际工作中,几乎只用clear : both;

额外标签法(隔墙法)

** 是W3C推荐的做法是通过在浮动元素末尾添加一个空的标签,例如:

**,或者其他标签br等都可以

  • 优点:通俗易懂,书写方便
  • 缺点:添加许多无意义的标签,结构化较差。

父级添加overflow属性方法

可以给父级添加:overflow为 hidden | auto | scroll 都可以实现

  • 优点: 代码简洁
  • 缺点:内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素。

使用after伪元素清除浮动

:after 方式为空元素额外标签法的升级版,好处是不用单独加标签了
使用方法:

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

.clearfix{*zomm:1;}  /*IE6、7专有*/
  • 优点:符合闭合浮动思想,结构语义化正确
  • 缺点:由于IE6、7不支持:after,使用zoom:1触发hasLayout
  • 代表网站:百度、淘宝网、网易等

使用双伪元素清除浮动

使用方法:

.clearfix:before, .clearfix:after{
	content:"";
	display:table;
}
.clearfix:after{
	clear:both;
}
.clearix{
	*zoom:1;
}
  • 优点:代码更简洁
  • 缺点:由于IE6、7不支持:after,使用zoom:1触发hasLayout
  • 代表网站:小米、腾讯等

清除浮动总结

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS布局的三种机制:浮动 的相关文章

随机推荐

  • expect 使用实例

    自动登录一台 服务器 代码 root localhost D151SP160 cat test1 exp bin expect set timeout 2 set user name lindex argv 0 set mypassword
  • Delphi转Java开发的辛酸

    工作已经快两年了 回想起以前的选择 真是让人不是滋味啊 通过近段时间的仔细思考和对自己以后职业规划 现在越来越想往JAVAWEB方向发展 想了许久 我还是决定辞职 放弃现在这份安逸的工作 易然的选择做JAVA这边道路 今天刚刚出来面试 就让
  • 数据结构-哈希-哈希表实现

    哈希表实现 一 哈希概念 哈希概念 常见哈希函数 哈希冲突 哈希冲突的解决 二 闭散列实现 闭散列的结构 插入 查找 删除 闭散列总结 三 哈希桶实现 哈希桶的结构 插入 查找 删除 析构 拷贝构造 赋值运算符重载 四 哈希表总结 开散列与
  • 安装windows版caffe

    MATLAB操作caffe框架 安装之前先谈谈我的电脑硬件配置 Qudra K600 的GPU 计算能力是3 0 你在安装之前也要搞清楚自己的GPU显卡是什么 看看到底支持不支持CUDA 如果支持 要查查计算能力是多少 后面配置参数要用到
  • windows环境下查看Python的安装路径

    1 windows r 进入cmd命令 2 查看python安装路径 where python
  • 常见的几种Sort排序算法

    几种常见的Sort排序算法 1 排序的基本概念 有n个记录的序列 其相应关键字的序列是 相应的下表序列是 通过排序 要求找出当前下标序列的一种排列 使得相应的关键字满足如下的非递减 或非递增 关系 这样就得到一个按关键字有序的记录序列 该文
  • ant design pro 跳转新页面 修改功能

    ant design pro 修改功能跳转新页面 背景 例子 页面跳转 背景 在官方提供的例子中 是以弹窗的形式做的修改和新增 在项目中如果遇到 采集项数较多 会在修改页面添加别的功能的情况下 弹窗满足不了此需求了 例子 页面跳转 先说修改
  • 计算机网络校园网网络设计报告,计算机网络课程设计报告-校园网的组建和应用...

    计算机网络课程设计报告 校园网的组建和应用 北 京 邮 电 大 学校园网的组建和应用 计算机网络课程设计指导老师 吴建伟老师刘亦桐老师小组成员 姓名 班级 学号王 超 06121 060648曹 振 06121 060643郭 嵩 0612
  • 我的创作纪念日

    机缘 咱记性不好 技术也差 实验过程中总是遇到奇奇怪怪的问题 有些问题找了好久也没找到完全适合自己情况的解决方案 很多情况下需要结合多篇文章进行总结 为了下次遇到类似问题能够快速解决 同时也为遇到同样问题的小伙伴们能够快速找到详细的问题解决
  • 基于HAL库的stm32f103c8t6的快速开发笔记(简易版)—— 5、STM32的PWM输出(附舵机控制)

    1 概念了解 首先了解到 PWM生成是在通用定时器的基础上配置的 每个通用定时器都有多路通道输出PWM信号 这里以TIM4 定时器4 为例 在图形配置面板找到TIM4的通道一作为PWM输出管脚 其管脚为PB6 打开左侧定时器配置面板 可以看
  • HBase工作机制

    1 图示 2 组件说明 Client hbase客户端 1 包含访问hbase的接口 比如 linux shell java api 2 除此之外 它会维护缓存来加速访问hbase的速度 比如region的位置信息 Zookeeper 1
  • 【MySQL】基础SQL语句——库的操作

    文章目录 一 创建数据库 1 1 基础语句 1 2 字符集和校验规则 1 3 校验规则对读取数据的影响 二 查看数据库 三 修改数据库 四 删除数据库及备份 4 1 删除 4 2 备份和还原 结束语 一 创建数据库 1 1 基础语句 最简洁
  • 微信小程序期末大作业 点餐小程序

    点餐小程序 小程序如图所示 下载链接在文末 点我下载资源 https download csdn net download weixin 43474701 58000564
  • xshell连接ubuntu失败排错指南

    本人在学习linux系统中出现了一些远程连接失败的问题 以此笔记记录下排错过程 注意 VMware桥接模式需要让虚拟机的ip和物理机的ip在同一网段 因此需要手动配置linux系统网卡 NAT模式虚拟机ip不需要和物理机ip在同一个网段 但
  • Python Tkinter详解 (二)Label标签的使用

    一个简单到不能再简单的标签 import tkinter as tk window tk Tk window title Label的使用 window geometry 400x400 label tk Label window text
  • 【动手学深度学习v2】第二章预备知识-2.1入门

    入门 深度学习领域方向自然语言处理 计算机视觉 深度学习 具体领域 图片分类 物体检测与分割 样式迁移 为图片加滤镜 人脸合成 文字生成图片 文字生成 无人驾驶 张量 表示一个多维矩阵 核心是一个数据容器 多数情况下包含数字 可以想象成一个
  • Java中WebService接口的生成、打包成.exe、设置成Windows服务、及其调用、Apache CXF调用

    一 Java中WebService接口的生成 1 在eclipse工具中新建一个普通的JAVA项目 新建一个java类 JwsServiceHello java package com accord ws import javax jws
  • 蓝桥杯2014年第五届真题-拼接平方数

    题目 题目链接 题解 实现题 题目大意 将一个区间内的数拆成两个数后 若原数 拆得的第一个数和拆得的第一个数均为平方数则输出 直接遍历区间内所有的数可能会超时 因此我们直接取区间内的平方数 只遍历区间内的平方数 时间复杂度会降很多 对于每个
  • Windows和Linux下共享内存使用

    源码地址 https github com ylmbtm GameProject3 看过我开源代码的朋友知道 我这个项目在逻辑服和数据服进行数据同步采用的就是共享内存 其实数据同步的方式有很多种 其中使用较多的一种方式就是tcp网络协议同步
  • CSS布局的三种机制:浮动

    CSS布局的三种机制 浮动 浮动 float 为什么要学习浮动 什么是浮动 float 浮动小结 浮动的应用 清除浮动 为什么要清除浮动 清除浮动本质 清除浮动的方法 额外标签法 隔墙法 父级添加overflow属性方法 使用after伪元