浮动 应用场景 浮动的基本特点 高度坍塌 解决浮动时盒子冲突问题

news2025/1/15 13:09:30

目录

  • 浮动
    • 应用场景
    • 浮动的基本特点
    • 盒子尺寸
    • 盒子排列
    • 文字环绕
    • 高度坍塌

浮动

视觉格式化模型,大体上将页面中盒子的排列分为三种方式:

  1. 常规流
  2. 浮动
  3. 定位

应用场景

  1. 文字环绕
  2. 横向排列

浮动的基本特点

修改float属性值为:

  • left:左浮动,元素靠上靠左
  • right:右浮动,元素靠上靠右

默认值为none

  1. 当一个元素浮动后,元素必定为块盒(更改display属性为block)
  2. 浮动元素的包含块,和常规流一样,为父元素的内容盒

盒子尺寸

  1. 宽度为auto时,适应内容宽度
  2. 高度为auto时,与常规流一致,适应内容的高度
  3. margin为auto,为0。
  4. 边框、内边距、百分比设置与常规流一样,百分比与父盒子的内容的宽度有关,但高度是看情况的,不一定都和父盒子的高度有关。
  5. 宽、高设置为auto时,他们一般都是适应内容大小。

盒子排列

  1. 左浮动的盒子靠上靠左排列
  2. 右浮动的盒子考上靠右排列
  3. 浮动盒子在包含块中排列时,会避开常规流块盒
  4. 常规流块盒在排列时,无视浮动盒子
  5. 行盒在排列时,会避开浮动盒子
  6. 外边距合并不会发生

如果文字没有在行盒中,浏览器会自动生成一个行盒包裹文字,该行盒叫做匿名行盒。

在这里插入图片描述

<!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>Document</title>
    <style>

        .container{
            width: 1000px;
            height: 500px;
            background: lightblue;
        }

        .item{
            float: right;
            width: 100px;
            height: 100px;
            border: 2px solid;
            background: red;
            color: #fff;
            font-size: 2em;
        }
        .normal{
            height: 60px;
            background: #008c8c;
        }
    </style>
</head>
<body>
     <div class="container">
        <div class="normal"></div>
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item">5</div>
        <div class="item">6</div>
        <div class="item">7</div>
        <div class="item">8</div>
        <div class="item">9</div>
        <div class="item">10</div>
     </div>
</body>
</html>

文字环绕

想要设置图片环绕的效果,需要对图片的外边距进行设置,而不是p的外边距,因为p标签的外边距会把下边所有的文章都进行了移动。
在这里插入图片描述

高度坍塌

高度坍塌是指在设置浮动之后,背景的宽度不会被撑大,背景忽略了浮动的盒子内容,但取消浮动之后,背景又被撑开了
在这里插入图片描述
无浮动的图
在这里插入图片描述
这是有浮动的图

因为浮动盒子脱离了常规流盒子,导致高度坍塌,但这是在自动高度的前提下。

高度坍塌的根源:常规流盒子,在计算时,不会考虑浮动盒子

解决办法:

清除浮动,涉及css属性:clear

  • 默认值:none
  • left:清除左浮动,该元素必须出现在前面所有左浮动盒子的下方
  • right:清除右浮动,该元素必须出现在前面所有右浮动盒子的下方
  • both:清除左右浮动,该元素必须出现在前面所有浮动盒子的下方
    在这里插入图片描述
    一般再加一个盒子的方式不常用,因为为了解决高度坍塌,再去加一个盒子有点奇怪。

常用办法:
一般用类名 ::after 方法,调用item下面的normal(自定义名字),将normal设置成空的,在设置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>Document</title>
    <style>

        .container{
            /* width: 1000px;
            height: 500px; */
            background: lightblue;
        }

        .item{
            float: right;
            width: 200px;
            height: 200px;
            border: 2px solid;
            background: red;
            margin: 6px;
            /* color: #fff; */
            /* font-size: 2em; */
        }
        .normal::after{
            content: "";
            display: block;
            clear: both;            
        }
    </style>
</head>
<body>
     <div class="container normal">
        
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item">5</div>
        <div class="item">6</div>
        <div class="item">7</div>
        <div class="item">8</div>
        <div class="item">9</div>
        <div class="item">10</div>
        <div class="normal"></div>
     </div>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【HBase入门】6. 常用 Shell 操作(3)

前言 我们可以以shell的方式来维护和管理HBase。例如&#xff1a;执行建表语句、执行增删改查操作等等。 过滤器的用法 过滤器一般结合scan命令来使用。打开HBase的JAVA API文档。找到RowFilter的构造器说明&#xff0c;我们来看以下&#xff0c;HBase的过滤器该如何使用。 …

快速排序的实现和优化~

相比于冒泡排序的改进点&#xff1a; 在前面学过的冒泡排序中&#xff0c;由于扫描过程只对相邻的两个元素进行比较&#xff0c;因此在互换两个相邻元素时&#xff0c;只能消除一个逆序&#xff0c;如果能通过两个(不相邻的)元素的交换&#xff0c;消除待排序记录 中的多个逆序…

docker desktop window10家庭版踩坑实录

安装 桌面版&#xff1a;https://www.docker.com/products/docker-desktop 这里我就安装的是桌面版 选择windows 前置工作 1.按下 wins&#xff08;找到这个&#xff09; 将下面的这个勾选中&#xff0c;如果你是家庭版很可能没有这个东西&#xff0c;那么请看我的这篇文章…

5-5中央处理器-指令流水线

文章目录一.基本概念1.多条指令在处理器中的执行方式&#xff08;1&#xff09;顺序执行方式/串行执行方式&#xff08;2&#xff09;流水线执行方式①一次重叠执行方式②二次重叠执行方式2.流水线的表示方法&#xff08;时空图&#xff09;3.超标量流水线二.分类1.部件功能级、…

第四十五章 动态规划——背包问题模型(二)

一、概述 我们在上一章中已经对背包模型做了一定地讲解&#xff0c;但是我们发现其实在上一章节中我们所介绍的例题大部分是给背包问题套上一个背景&#xff0c;当我们识破了背后的模型后&#xff0c;我们就可以直接套用模板&#xff0c;基本不需要对代码做改变。 那么在这一…

SpringBoot读写Redis客户端并实现技术切换(Jedis)

SpringBoot整合Redishttps://blog.csdn.net/weixin_51882166/article/details/128759780?spm1001.2014.3001.5501 读写客户端 首先应该打开redis服务&#xff1b; cd命令进入Redis安装目录下&#xff1a; 进入Redis客户端&#xff1a; redis-cli.exe -h 127.0.0.1 -p 6379…

梯度下降算法有哪些?有什么区别?【背景、原理、公式、代码】

一、梯度下降算法背景 梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯…

行为型模式-职责链模式

1.概述 在现实生活中&#xff0c;常常会出现这样的事例&#xff1a;一个请求有多个对象可以处理&#xff0c;但每个对象的处理条件或权限不同。例如&#xff0c;公司员工请假&#xff0c;可批假的领导有部门负责人、副总经理、总经理等&#xff0c;但每个领导能批准的天数不同…

记一段相亲反思

记一段相亲反思项目系统启动项目相亲需求的细分高净值人群特定类型的高预期结婚结婚前的彩礼引流系统启动流量&#xff0c;从哪里来&#xff1f;作弊避险&#xff0c;什么钱不能赚&#xff1f;这不是一篇找对象的文章&#xff0c;而是帮别人找对象来赚钱的文章。 项目系统 启…

洛谷-P2114 [NOI2014] 起床困难综合症

题目链接: P2114 [NOI2014] 起床困难综合症 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述: 21 世纪&#xff0c;许多人得了一种奇怪的病&#xff1a;起床困难综合症&#xff0c;其临床表现为&#xff1a;起床难&#xff0c;起床后精神不佳。作为一名青春阳光好少…

Bayesian Personalized Ranking from Implicit Feedback 阅读笔记

Abstract BPR主要用于基于隐式反馈(implicit feedback)的Item Recommendation。 尽管有很多做同样事情的算法比如matrix factorization&#xff0c; knearest-neighbor。但他们并不是直接对于物品排名本身进行预测的。 而BPR则是通过贝叶斯分析得到最大的后验估计量来预测排…

基于蜣螂算法优化概率神经网络PNN的分类预测-附代码

基于蜣螂算法优化概率神经网络PNN的分类预测 - 附代码 文章目录基于蜣螂算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立3.基于蜣螂优化的PNN网络5.测试结果6.参考文献7.Matlab代码摘要&#xff1a;针对PNN神经网络的光滑因…

[GYCTF2020]EasyThinking (ThinkPHP V6.0.0)

[GYCTF2020]EasyThinking 打开以后就注册一些功能&#xff0c;注册admin admin&#xff0c;成功然后尝试search这个方法是否有任意文件读取漏洞&#xff0c;试了试没有任何的回显。 然后个人中心&#xff0c;显示的是自己的历史命令 接下来&#xff0c;呃呃呃就没思路了&…

DFS(五)N皇后

51. N 皇后 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案…

★ 我的世界各类奇葩武器实现!(命令方块1.13+)

新版execute一出很多玩家都不会了。开头先给大家说一下怎么以旧换新&#xff1a; e.g. 旧版&#xff1a; /execute e[typearrow] ~ ~ ~ summon tnt 新版就改为&#xff1a; /execute at e[typearrow] run summon tnt 非常简单&#xff01; 注记 以下代码块里的命令未经表明一…

Mysql入门技能树-数据类型

数值的隐式类型转换 Joe 需要使用下列表做一项数值计算 create table points(id int primary key auto_increment,x int,y int );计算查询为&#xff1a; select id, (x^2 y^2)/2 as result from points; 得到的结果集中&#xff0c;result 列的类型应该是&#xff1a; 答…

剑指Offer 第1天 第2天

第 1 天 栈与队列&#xff08;简单&#xff09; 剑指 Offer 09. 用两个栈实现队列 class CQueue { public: CQueue() {} void appendTail(int value) { s1.push(value); } int deleteHead() { while(!s1.empty()) { …

AtCoder Regular Contest 154 C. Roller(思维题)

题目 T(T<5e3)组样例&#xff0c;每次给定一个数n(n<5e3)&#xff0c; 和长为n的两个数组a,b&#xff0c;你可以执行以下操作任意次&#xff1a; 操作&#xff1a;选择一个下标i(1<i<n)&#xff0c;将替换为&#xff0c;其中被认为是 问若干次操作后&#xff0…

JUC面试(十)——线程池Callable接口

线程池&Callable接口 前言 获取多线程的方法&#xff0c;我们都知道有三种&#xff0c;还有一种是实现Callable接口 实现Runnable接口实现Callable接口实例化Thread类使用线程池获取 Callable接口 这是一个函数式接口&#xff0c;因此可以用作lambda表达式或方法引用的…

JDBC连接池多线程通过CountDownLatch实现线程并发执行

目录 1.连接池 1.1 什么是连接池 1.2 为什么使用连接池 1.3 连接池的工作原理 1.4我们如何手写【难点】 1.4.1编写说明 1.4.2 创建jdbc.properties 1.4.3 封装一个连接类 1.4.4 创建一个连接池接口 1.4.5 创建一个连接池实现类以及对应方法 1.4.6 创建一个连接池的维…