CSS浮动详解

1. 浮动的简介

浮动是用来实现文字环绕图片效果的

2.元素浮动后会有哪些影响

对兄弟元素的影响: 后面的兄弟元素,会占据浮动元素之前的位置,在浮动元素的下面;对前面的兄弟 无影响。
对父元素的影响: 不能撑起父元素的高度,导致父元素高度塌陷;但父元素的宽度依然束缚浮动的元 素。

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>浮动产生的影响</title><style>.outer{width: 500px;background-color: gray;border: 1px solid black;}.box{width: 100px;height: 100px;background-color: aqua;border: 1px solid black;margin: 5px;}/* 对父元素的影响: 不能撑起父元素的高度,导致父元素高度塌陷;但父元素的宽度依然束缚浮动的元素。 */.box1,.box2,.box3{float: left;}</style>
</head>
<body><div class="outer"><!-- 对前面的兄弟无影响 --><!-- <div class="box box0">0</div> --><div class="box box1">1</div><div class="box box1">2</div><div class="box box1">3</div><!-- 对后面的有影响 --><!-- 123都浮动了,4在1后面,但是文字随图片浮动在下面 --><!-- <div class="box box4">4</div> --></div></body>
</html>

 对父元素的影响: 不能撑起父元素的高度,导致父元素高度塌陷;但父元素的宽度依然束缚浮动的元 素。

对兄弟元素的影响: 后面的兄弟元素,会占据浮动元素之前的位置,在浮动元素的下面;对前面的兄弟无影响。

对后面的兄弟也影响

对前面的兄弟无影响 

3.解决浮动产生的影响(清除浮动)

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>浮动产生的影响</title><style>.outer{width: 500px;background-color: gray;border: 1px solid black;/* 1. 方案一: 给父元素指定高度 */height: 112px;}.box{width: 100px;height: 100px;background-color: aqua;border: 1px solid black;margin: 5px;}.box1,.box2,.box3{float: left;}</style>
</head>
<body><div class="outer"><div class="box box1">1</div><div class="box box1">2</div><div class="box box1">3</div></div></body>
</html>

 1. 方案一: 给父元素指定高度

但是子元素后面元素还是在浮动元素的后面 

2. 方案二: 给父元素也设置浮动,带来其他影响。

效果跟方案1一样 

3. 方案三: 给父元素设置 overflow:hidden

 子元素后面的元素消失了更严重

但是父元素的兄弟元素没有影响

4. 方案四: 在所有浮动元素的最后面, 添加一个块级元素 ,并给该块级元素设置 clear:both

解决了 父元素的兄弟元素没有影响; 子元素后面的元素没有在浮动的元素后面

但是父元素的高度塌陷了

    .box4{/* 清除box4之前所有产生浮动元素的影响 */clear:both;}

添加的只能是块级元素 

总结:

在浮动元素后面添加一个没有高度文字块级标签,然后消除这个标签前面的所有浮动元素

 .mafa{/* 清除mafa之前所有产生浮动元素的影响 */clear:both;}

5. 方案五 : 给浮动元素的父元素,设置伪元素,通过伪元素清除浮动,原理与方案四相同。 ===> 推 荐使用

 /* ::after 在元素最后的位置,创建一个子元素(必须用 content 属性指定内容)。在父元素最后的位置创建一个子元素*/.outer::after{content: '';display:block;clear:both;}

完整代码

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>浮动产生的影响</title><style>.outer{width: 500px;background-color: gray;border: 1px solid black;/* 1. 方案一: 给父元素指定高度 但是子元素后面还是在浮动元素的后面*//* height: 112px; *//* 2. 方案二: 给父元素也设置浮动,带来其他影响。但是子元素后面还是在浮动元素的后面 *//* float: left; *//* 3. 方案三: 给父元素设置 overflow:hidden 。 *//* overflow:hidden; *//* 4. 方案四: 在所有浮动元素的最后面,添加一个块级元素,并给该块级元素设置 clear:both 。 *//* 5. 方案五: 给浮动元素的父元素,设置伪元素,通过伪元素清除浮动,原理与方案四相同。===> 推荐使用 */}.box{width: 100px;height: 100px;background-color: aqua;border: 1px solid black;margin: 5px;}.box1,.box2,.box3,.box4{float: left;}.mafa{/* 清除mafa之前所有产生浮动元素的影响 */clear:both;}/* ::after 在元素最后的位置,创建一个子元素(必须用 content 属性指定内容)。在父元素最后的位置创建一个子元素*/.outer::after{content: '';display:block;clear:both;}</style>
</head>
<body><div class="outer"><div class="box box1">1</div><div class="box box1">2</div><div class="box box1">3</div><!-- 对后面的有影响 --><div class="box box4">4</div>   <!-- <div class="mafa"></div>   --></div><div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi adipisci accusantium veniam quos sint repellat porro neque, ex nesciunt dignissimos praesentium magni maxime saepe veritatis atque cumque illo aut facere.</div> </body>
</html>
布局中的一个原则:设置浮动的时候,兄弟元素要么全都浮动,要么全都不浮动。

4.浮动练习

<!DOCTYPE html>
<html lang="zh-cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 清除默认样式 */* {padding: 0;margin: 0;}/* 左浮动 */.leftFD {float: left;}/* 左浮动 */.rightFD {float: right;}/* 清除浮动 */.clearFD::after {content: '';display: block;clear: both;}/* 设置盒子块水平居中 */.container {width: 960px;text-align: center;margin: 0 auto;}.logo,.banner1,.banner2 {height: 80px;background-color: aqua;line-height: 80px;}.logo {width: 200px;}.banner1 {width: 540px;margin: 0 10px;}.banner2 {width: 200px;}.menu {height: 30px;background-color: blueviolet;margin-top: 10px;}.content {margin-top: 10px;}.itme1,.itme2 {height: 198px;width: 368px;border: 1px solid black;margin-right: 10px;background-color: chocolate;line-height: 198px;}.item3,.item4,.item5,.item6 {height: 198px;width: 178px;border: 1px solid black;background-color: yellow;line-height: 198px;margin-right: 10px;}.bottom {margin-top: 10px;}.item7,.item8,.item9 {width: 198px;height: 128px;border: 1px solid 1px;line-height: 128px;margin-bottom: 10px;background-color: green;}</style>
</head><body><!-- 盒子模块 --><div class="container"><!-- 页面头部 --><div class="page-header clearFD"><div class="logo leftFD">logo</div><div class="banner1 leftFD">banner1</div><div class="banner2 leftFD">banner2</div></div><!-- 设置菜单 --><div class="menu">菜单</div><!-- 设置内容区 --><div class="content clearFD"><!-- 分左侧 --><div class="left leftFD"><!-- 分上侧 --><div class="top clearFD"><div class="itme1 leftFD">栏目一</div><div class="itme2 leftFD">栏目二</div></div><!-- 分下侧 --><div class="bottom clearFD"><div class="item3 leftFD">栏目三</div><div class="item4 leftFD">栏目四</div><div class="item5 leftFD">栏目五</div><div class="item6 leftFD">栏目六</div></div></div><!-- 分右侧 --><div class="right rightFD"><div class="item7">栏目七</div><div class="item8">栏目八</div><div class="item9">栏目九</div></div></div></div>
</body>
</html>

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

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

相关文章

python数据类型等基础语法

目录 字面量 注释 变量 查数据类型 类型转换 算数运算符 字符串定义的三种方式 字符串占位 数据输入 字面量 被写在代码中固定的值 六种数据类型: 1 字符串 String 如"egg" 2 数字 Number: 整数int 浮点数float 复数complex :如43j 布尔…

Android 图片压缩详解

在 Android 开发中,图片压缩是一个重要的优化手段,旨在提升用户体验、减少网络传输量以及降低存储空间占用。以下是几种主流的图片压缩方法,结合原理、使用场景和优缺点进行详细解析。 效果演示 直接先给大家对比几种图片压缩的效果 质量压缩 质量压缩:根据传递进去的质…

Flutter状态管理框架GetX最新版详解与实践指南

一、GetX框架概述 GetX是Flutter生态中轻量级、高性能的全能开发框架&#xff0c;集成了状态管理、路由导航、依赖注入等核心功能&#xff0c;同时提供国际化、主题切换等实用工具。其优势在于代码简洁性&#xff08;减少模板代码约70%&#xff09;和高性能&#xff08;基于观…

【linux】详谈 环境变量

目录 一、基本概念 二、常见的环境变量 取消环境变量 三、获取环境变量 通过代码获取环境变量 环境变量的特性 1. getenv函数:获取指定的环境变量 2. environ获取环境变量 四、本地变量 五、定义环境变量的方法 临时定义&#xff08;仅对当前会话有效&#xff09; 永…

LangChain教程 - RAG - PDF问答

系列文章索引 LangChain教程 - 系列文章 在现代自然语言处理&#xff08;NLP&#xff09;中&#xff0c;基于文档内容的问答系统变得愈发重要&#xff0c;尤其是当我们需要从大量文档中提取信息时。通过结合文档检索和生成模型&#xff08;如RAG&#xff0c;Retrieval-Augment…

大白话前端性能优化方法的分类与具体实现

大白话前端性能优化方法的分类与具体实现 一、资源加载优化 1. 压缩与合并文件 大白话解释&#xff1a; 咱们的网页代码里&#xff0c;就像一个房间堆满了东西&#xff0c;有很多没用的“杂物”&#xff0c;比如代码里的空格、注释啥的。压缩文件就是把这些“杂物”清理掉&a…

MySQL并发知识(面试高频)

mysql并发事务解决 不同隔离级别下&#xff0c;mysql解决并发事务的方式不同。主要由锁机制和MVCC(多版本并发控制)机制来解决并发事务问题。 1. mysql中的锁有哪些&#xff1f; 表级锁&#xff1a; 场景&#xff1a;表级锁适用于需要对整个表进行操作的情况&#xff0c;例如…

【Kubernets】K8S内部nginx访问Service资源原理说明

文章目录 原理概述**一、核心概念****二、Nginx 访问 Service 的流程****1. Service 的作用****2. Endpoint 的作用****3. Nginx Pod 发起请求****(1) DNS 解析****(2) 流量到达 kube-proxy****(3) 后端 Pod 处理请求** **三、不同代理模式的工作原理****1. iptables 模式****2…

HTML:自闭合标签简单介绍

1. 什么是自结束标签&#xff1f; 定义&#xff1a;自结束标签&#xff08;Self-closing Tag&#xff09;是指 不需要单独结束标签 的 HTML 标签&#xff0c;它们通过自身的语法结构闭合。语法形式&#xff1a; 在 HTML5 中&#xff1a;直接写作 <tag>&#xff0c;例如 …

《几何原本》公理

《几何原本》公理 等于同量的量彼此相等 即若 a b , b c ab,bc ab,bc 则 a c ac ac 等量加等量&#xff0c;其和仍相等 即若 a b ab ab 则 a c b c acbc acbc 等量减等量&#xff0c;其差仍相等 即若 a b ab ab 则 a − c b − c a-cb-c a−cb−c 彼此能够&a…

学习路程十一 langchain核心组件 Memory

前序 在最开始我们就通过实验知道LLM 本身是没有记忆的&#xff0c;每一次LLM的API调用都是一个全新的会话。但在某些应用程序中&#xff0c;如&#xff1a;聊天机器人&#xff0c;让LLM记住以前的历史交互是非常重要&#xff0c;无论是在短期的还是长期的。langchain中的“Me…

Spring-AI搭建企业专属知识库 一

环境介绍&#xff1a;Spring3.3.2 JDK 21 POM文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&…

C语言多级指针详解 - 通过实例理解一级、二级、三级指针

C语言多级指针详解 - 通过实例理解一级、二级、三级指针 文章目录 C语言多级指针详解 - 通过实例理解一级、二级、三级指针引言一、示例代码二、指针基础回顾&#xff08;先备知识&#xff09;1.生活中的类比2.指针变量定义3.关键操作符4.解引用本质 三、多级指针的本质1.层级关…

Difyにおけるデータベースマイグレーション手順

Difyにおけるデータベースマイグレーション手順 はじめに主要マイグレーションコマンドAlembic直接コマンドFlask-Migrate経由コマンド 標準マイグレーション作業フローデプロイ時の対応注意事項 はじめに Difyプロジェクトでのデータベースマイグレーションには、Alembicコマ…

React + TypeScript 实现 SQL 脚本生成全栈实践

React TypeScript 实现数据模型驱动 SQL 脚本生成全栈实践 引言&#xff1a;数据模型与 SQL 的桥梁革命 在现代化全栈开发中&#xff0c;数据模型与数据库的精准映射已成为提升开发效率的关键。传统手动编写 SQL 脚本的方式存在模式漂移风险高&#xff08;Schema Drift&#…

Python 高精度计算利器:decimal 模块详解

Python 高精度计算利器&#xff1a;decimal 模块详解 在 Python 编程中&#xff0c;处理浮点数时&#xff0c;标准的 float 类型往往会因二进制表示的特性而产生精度问题。decimal 模块应运而生&#xff0c;它提供了十进制浮点运算功能&#xff0c;能让开发者在需要高精度计算…

freertos 学习5--链路状态设置

以下三个函数都是针对网卡netif的操作。1 netif_set_up函数(netif_set_down) 特点 直接操作网络接口&#xff0c;不通过 netifapi 机制。 适用于单线程环境&#xff0c;或者在多线程环境中需要额外加锁。1.1 netif_set_up 对比windows下面&#xff0c;相当于是在资源管理器中…

基于大数据的民宿旅馆消费数据分析系统

【大数据】基于大数据的民宿旅馆消费数据分析系统&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统可以揭示民宿市场的消费模式和价格分布情况&#xff0c;帮助理解消费者偏好、价格走势及…

线程池的介绍

线程池的分类 FixedThreadPool: 固定线程池&#xff1a;线程池中的线程数量固定&#xff0c;这些线程会一直存在&#xff0c;不会随任务的增 加或减少而动态调整&#xff0c;超出的任务会在队列中等待。 使用场景&#xff1a;任务量比较固定但耗时较长的任务。 CachedThreadPo…

[特殊字符]【CVPR2024新突破】Logit标准化:知识蒸馏中的自适应温度革命[特殊字符]

文章信息 题目&#xff1a;Logit Standardization in Knowledge Distillation论文地址&#xff1a;paper代码地址&#xff1a;code年份&#xff1a;2024年发表于CVPR 文章主题 文章的核心目标是改进知识蒸馏&#xff08;KD&#xff09;中的一个关键问题&#xff1a;传统KD方…