htmlCSS-----浮动

 目录

前言:

 浮动

1.浮动的效果 

2.浮动的特点

 3.浮动的写法

4.浮动的原理

5.浮动的作用

 6.案例

7.浮动的缺陷与解决方式

浮动问题 

解决方式

 8.补充说明


前言:

        浮动是html里面重要的一部分,前面我们学习了三种元素的类型(块级元素,行内元素和行内块元素),今天我们就学习浮动元素,通过浮动元素我们可以更好的去对页面进行设置和操作,以达到我们想要的效果。

 浮动

1.浮动的效果 

 以上是浮动的样式效果,我们平时在网页上看到的一边图片一边文字等组合的一般都是通过浮动来实现的。

2.浮动的特点

 特点

                1. 半脱离文档流(不在页面占空间 ,图文环绕)

                2. 浮动边界是父元素决定

                3. 可以设置w,h ,m,p

                4. 没有设置w,h  w,h 内容决定

                5. margin:0 auto( 多余空白区域处理   )   不会生效

                6. 浮动元素无法覆盖内联元素

文档流说明:平时我们都是用普通文档流的,而浮动是半脱离文档流,其特点是不会占用空间,我们可以理解为这个盒子浮起来了,其下面是有空间的可以接着放东西。

        

 普通文档流

浏览器在默认情况下规定一个块元素在父元素内的排列规则:

  • 从上往下排列

  • 从左开始排列

  • 一个块元素占一行

 3.浮动的写法

浮动分为左浮和右浮,分别是left和right,其样式写法是很直接的:

左浮动  float: left;

右浮动  float: right;

两边都浮动  float: both;

4.浮动的原理

浮动之前盒子样式如下:

 浮动之后盒子样式如下:

 

这里我给你们看个例子:

<!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>
        .box1{
            background-color:  yellow;
            width: 200px;
            height: 200px;
            /* 设置为左浮动 */
            float: left;
        }
        .box2{
            background-color: green;
            height: 200px;
            width: 300px;
        }
        .box3{
            background-color:cornflowerblue;
            height: 200px;
            width: 400px;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</body> 
</html>

效果如下: 

 这里的第一个黄色的盒子已经浮起来了,所以会把下面第二个绿色的盒子部分给覆盖掉,而网页的“观察视角是俯视的”,所以效果如上所示。

5.浮动的作用

浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距。从而实现让块元素可以通过浮动来左右相邻。说白了就是让不同的盒子在同一行进行显示。

 6.案例

下面我来通过浮动元素来进行一个界面的操作

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>Document</title>
    <link rel="stylesheet" href="./demo.css">
</head>
<body style="background-color: bisque;">
    <div class="boqi">
        <div class="kun">
            <img src="../image/b80011126e6d48a55f8b2eb9adca0689-2.gif" alt="显示失败">
        </div>
        游彩虚村
        <br>
        [唐] 淳禄仁
        <br>
      寂寥苏山荔枝肥,泥坠毫湿不晚耕。
    <br>
    苔痕梅幽争霞头,梅景树枝高菜生。
    </div>
</body>
</html>

 CSS代码:

.boqi{
    width: 800px;
    height: 1000px;
    border: 2px solid rebeccapurple;
    margin: 0 auto;
    background-image: url(../image/11月29日.jpg);
    background-repeat: no-repeat;
    font-family: 华文行楷;
    font-size: 25px;
    color:  black;
    text-align: center;
}
.kun
{
    /*设置为左边浮动*/
    float: left;
}

效果:

 这个就是我通过浮动元素的特点来首先图文环绕的效果,一边是图片一边是文字。

7.浮动的缺陷与解决方式

浮动问题 

 当父级元素没有设置高度时,高度会由文档流内容撑开。

而当子元素浮动之后,脱离了文档流,所以父级高度不会被撑开,这对我们后续的布局结构会造成很多困扰。

 先看个没有设置高度的例子:

<!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>
        ul li{
            border: 2px solid red;
            height: 100px;
            width: 100px;
            /* 删除掉小圆点 */
            list-style: none;
            /* 设置为左浮 */
            float: left;
        }
        .box{
            /* 盒子居中放置 */
            margin: 0 auto;
            background-color: blueviolet;
            width: 300px;
        }
    </style>
</head>
<body>
    <div class="box">
        <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
</body> 
</html>

 这里就出现了一个问题,我没有去设置盒子的高度时,浮动元素不会撑起盒子,这就导致了盒子没有显示出来,并不是我们想要的效果

解决方式

解决高度塌陷方法:

  • 方法1 -- 子元素加clear

    在浮动元素后面加一个空的子元素,并给其CSS属性clear

    <div style="clear:both"></div

    clear取值: left 清除左浮动 | right 清除右浮动 | both 清除所有浮动

  • 方法2 -- 父元素加宽高

    直接规定父元素的宽高,就不存在塌陷问题了。缺点是,得手动计算合适的宽高,并且扩展性不好。

  • 方法3 -- 父元素BFC(Block formatting context)化

    父元素满足下列条件之一即可:

    • 根元素

    • float属性不为none

    • position不为static和relative

    • overflow不为visible(较常用,通常设置overflow : hidden来解决高度塌陷

    • display为inline-block / table-cell / table-caption / flex / inline-flex

  • 方法4 -- 父元素利用伪类after

    当前最主流的方式,利用伪元素,相当于给父级多加了一个子元素,同时我们可以将样式公用,所有需要清除浮动的父元素加上一个相同的class名clear就可以解决

 所以我们只需要在style中或者CSS代码里面加上以下这一段代码就行了。

    /* 浮动的解决方式 */
        ul::after{
            display: block;
            content: '';
            /* 设置为两边都进行清除 */
            clear: both;
        }

解决之后的效果:

 8.补充说明

  • 注意:元素浮动之后,不再支持margin:auto,只支持margin确切的值。

  • 遇到父元素时浮动元素会停止不动。

  • 设置浮动元素的上一个元素是普通文档流中的元素,元素相对于水平垂直位置不动。

  • 推荐使用浮动来做横向布局而不是inline-block

    line-block布局的基线对齐处理较为麻烦,浮动不用担心这个问题;

    line-block布局空格会被解析显示在页面中,浮动不用担心这个问题。

  • list-style:none;清除ul或ol的默认项目符号。

  • min-width max-width

好了以上就是今天的全部内容了,我们下一期再见! 

分享一张壁纸: 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计科web常见错误排错【HTTP状态404、导航栏无法点开、字符乱码及前后端数据传输呈现、jsp填写的数据传到数据库显示null、HTTP状态500】

web排错记录 在使用javaweb的过程中会出现的一些错误请在下方目录查找。 目录 错误1&#xff1a;HTTP状态404——未找到 错误2&#xff1a;导航栏下拉菜单无法点开的问题 错误3&#xff1a;字符乱码问题 错误4&#xff1a;jsp网页全部都是&#xff1f;&#xff1f;&#x…

Golang并发控制

开发 go 程序的时候&#xff0c;时常需要使用 goroutine 并发处理任务&#xff0c;有时候这些 goroutine 是相互独立的&#xff0c;需要保证并发的数据安全性&#xff0c;也有的时候&#xff0c;goroutine 之间要进行同步与通信&#xff0c;主 goroutine 需要控制它所属的子gor…

Linux系统安装部署MySQL完整教程(图文详解)

前言&#xff1a;最近网上翻阅了大量关于Linux安装部署MySQL的教程&#xff0c;在自己部署的时候总是存在一些小问题&#xff0c;例如&#xff1a;版本冲突&#xff0c;配置失败和启动失败等等&#xff0c;功夫不负有心人&#xff0c;最后还是安装部署成功了&#xff0c;所以本…

Ubuntu 网络配置指导手册

一、前言 从Ubuntu 17.10 Artful开始&#xff0c;Netplan取代ifupdown成为默认的配置实用程序&#xff0c;网络管理改成 netplan 方式处理&#xff0c;不在再采用从/etc/network/interfaces 里固定 IP 的配置 &#xff0c;配置写在 /etc/netplan/01-network-manager-all.yaml 或…

文本预处理——文本处理的基本方法

目录 什么是分词jieba分词特性精确模式分词全模式分词搜索引擎模式分词使用用户自定义词典 命名实体识别词性标注 什么是分词 jieba分词特性 精确模式分词 import jieba content工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作 print(jieba.lcut(co…

一文了解Python中的while循环语句

目录 &#x1f969;循环语句是什么 &#x1f969;while循环 &#x1f969;遍历猜数字 &#x1f969;while循环嵌套 &#x1f969;while循环嵌套案例 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;专栏地址&#xff1a;Python从入门到精通专栏 循环语句是什…

SpringBoot创建和使用

1.Spring Boot的优点 快速集成框架&#xff0c;Spring Boot提供了启动添加依赖的功能&#xff0c;用于秒级成各种框架。内置运行容器&#xff0c;无需配备Tomcat等Web容器&#xff0c;直接运行和部署程序。快速部署项目&#xff0c;无需外部容器即可启动并运行项目。可以完全抛…

概率论和随机过程的学习和整理--番外15,如何计算N合1的合成数量问题?

目录 1 目标问题&#xff1a;多阶2合1的合成问题 1.1 原始问题 1.2 合成问题要注意&#xff0c;合成的数量 1.3 合成问题不能用马尔科夫链来解决 2 方案1&#xff1a;用合成公式合成多次能解决吗&#xff1f; --不能&#xff0c;解决不了递归的问题 3 方案2&#xff0c;…

idea2021.安装pojie教程

1、下载ideaIU-2021.3应用包&#xff0c;点击finish 2、先关闭idea窗口&#xff0c;等会激活了脚本再运行打开。 3、双击运行install-current-user.vbs&#xff0c;等待一会会提示运行成功。 4、运行后&#xff0c;在文件中会多出一条配置 5、打开运行idea,输入激活码&#x…

如何使用curl下载github代码

首先通过chrome打开想要下载的源文件 如图&#xff0c;有那个下载图标时表示不需要鉴权即可下载&#xff0c;一般仓库都会开放只读权限&#xff0c;所以很大概率都有 比如我想下载这个crc32.c文件 那么我就需要知道它在哪个IP中&#xff0c;按下F12打开网络&#xff0c;点击下载…

pytorch安装GPU版本 (Cuda12.1)教程

使用本教程前&#xff0c;默认您已经安装并配置好了python3以上版本 1. 去官网下载匹配的Cuda Cuda下载地址 当前最高版本的Cuda是12.1 我安装的就是这个版本 小提示&#xff1a;自定义安装可以只选择安装Cuda Runtime。Nvidia全家桶不必全部安装。把全家桶全部安装完直接系统…

ChatGPT助力校招----面试问题分享(十二)

1 ChatGPT每日一题&#xff1a;运算放大器与比较器的区别 问题&#xff1a;运算放大器与比较器的区别 ChatGPT&#xff1a;运算放大器和比较器都是电子电路中常用的模拟电路元件&#xff0c;但它们的设计和应用略有不同。下面是两者的主要区别&#xff1a; 功能不同&#xf…

Java集合之List

ArrayLsit集合 ArrayList集合的特点 ArrayList集合的一些方法 ①.add(Object element) 向列表的尾部添加指定的元素。 ②.size() 返回列表中的元素个数。 ③.get(int index) 返回列表中指定位置的元素&#xff0c;index从0开始。 public class Test {public static void m…

【Vue】day03-VueCli(脚手架)

day03 一、今日目标 1.生命周期 生命周期介绍 生命周期的四个阶段 生命周期钩子 声明周期案例 2.综合案例-小黑记账清单 列表渲染 添加/删除 饼图渲染 3.工程化开发入门 工程化开发和脚手架 项目运行流程 组件化 组件注册 4.综合案例-小兔仙首页 拆分模块-局部…

有名管道(FIFO)的学习笔记

文章目录 有名管道介绍有名管道的使用创建 注意事项 有名管道介绍 有名管道的使用 创建 命令&#xff0c; mkfifo name函数&#xff0c;int mkfifo(const char *pathname, mode_t mode); 设置错误号&#xff1b; 向管道中写数据&#x1f447;&#xff1a; 从管道读数据&am…

前端Web实战:从零打造一个类Visio的流程图拓扑图绘图工具

前言 大家好&#xff0c;本系列从Web前端实战的角度&#xff0c;给大家分享介绍如何从零打造一个自己专属的绘图工具&#xff0c;实现流程图、拓扑图、脑图等类Visio的绘图工具。 你将收获 免费好用、专属自己的绘图工具前端项目实战学习如何从0搭建一个前端项目等基础框架项…

log4j--动态打印日志文件到指定文件夹

文章目录 log4j--动态打印日志文件到指定文件夹1、添加Maven依赖2、配置文件 log4j.properties3、编写日志打印工具类 LogUtil4、工具类调用 log4j–动态打印日志文件到指定文件夹 1、添加Maven依赖 <!-- log4j日志相关坐标 --><dependency><groupId>org.s…

API Testing 一个基于 YAML 文件的开源接口测试工具

目录 前言&#xff1a; 如何使用&#xff1f; 本地模式 服务端模式 文件格式 后续计划 前言&#xff1a; API Testing 是一个基于 YAML 文件的开源接口测试工具&#xff0c;它可以帮助开发者快速地进行接口测试。 在选择工具时&#xff0c;可以从很多方面进行考量、对比…

【Matlab】基于遗传算法优化 BP 神经网络的数据回归预测(Excel可直接替换数据)

【Matlab】基于遗传算法优化 BP 神经网络的数据回归预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.文件结构3.Excel数据4.分块代码4.1 arithXover.m4.2 delta.m4.3 ga.m4.4 gabpEval.m4.5 initializega.m4.6 maxGenTerm.m4.7 nonUnifMutation.m4.8 normGeomSel…

Pytorch:利用torchvision调用各种网络的预训练模型,完成CIFAR10数据集的各种分类任务

2023.7.19 cifar10百科&#xff1a; [ 数据集 ] CIFAR-10 数据集介绍_cifar10_Horizon Max的博客-CSDN博客 torchvision各种预训练模型的调用方法&#xff1a; pytorch最全预训练模型下载与调用_pytorch预训练模型下载_Jorbol的博客-CSDN博客 CIFAR10数据集下载并转换为图片&am…