css---浮动知识点精炼汇总

news2024/12/24 2:21:57

前言

欢迎来到我的博客

个人主页:北岭敲键盘的荒漠猫-CSDN博客

浮动简单理解与介绍

这是我们普通的页面标签效果。

每个标签从上到下依次排列。

浮动顾名思义就是让这个标签飞翔起来。

他飞起来后,后面的标签来到他的位置上。

而浮动的标签就会显示在标签的上面。

如果多个相邻的标签一起浮动。那么这些浮动的标签就会在一行上排列。

浮动的作用

1.横向排列块型盒子

我们的块标签都是纵向排列的,即使设置了长宽后他们依然是纵向排列。

    <style>
        .class {
            height: 80px;
            width: 100px;
        }
    </style>
</head>

<body>
    <div style="background-color: blueviolet;" class="class">1</div>
    <div style="background-color: brown;" class="class">2</div>
    <div style="background-color: chartreuse;" class="class">3</div>
</body>

我们可以利用浮动来让他们横向排列。

2.制作左右框效果

利用浮动可以很方便的把框给左右两边分布。

3.制作随父标签变化的页面

正常情况下,我们的窗口是不会随页面改变的,浮动可以保证浮动内容显示出来。

浮动的语法

语法: float: 属性值;

属性值:

属性作用
none不浮动(默认)
left左浮动
right右浮动

效果跟上面一样,不演示了。

浮动的特性

添加浮动之后,标签的特性就会改变。

脱标

标准流:就是我们标签默认自己的特性,纵向排列。

直观理解:

其实就是添加浮动后,他就不是他原先的标签了。恕瑞玛飞升了,他原先的位置空出来了,给后面的人了。

直观的看效果吧:

    <style>
        .class {
            height: 200px;
            width: 300px;
        }
    </style>
</head>

<body>
    <div style="background-color: blueviolet;" class="class">1</div>
    <div style="background-color: brown; height: 100px; width: 200px; float: left;">2</div>
    <div style="background-color: chartreuse;" class="class">3</div>
</body>

后面的人继承他的位置。

水平顶端对齐

    <style>
        .class {
            height: 200px;
            width: 300px;
            float: left;
        }
    </style>
</head>

<body>
    <div style="background-color: blueviolet;" class="class">1</div>
    <div style="background-color: brown; height: 100px; width: 200px; float: left;">2</div>
    <div style="background-color: chartreuse;" class="class">3</div>
</body>

制作苦茶子的形状:

 根据父标签自动变化

我们做的这个苦茶子会根据父标签(整个窗口)的变化而变化。

 行内块特性

不管你浮动之前是什么类型的标签,浮动之后统一都是行内块标签。

浮动在页面布局中的应用

我们先来分析一下浮动对于布局的优势劣势

优势:

1.可以便捷的进行平行排列。

2.可以进行左右侧控制

3.内容会根据父盒子的状态自主改变。

劣势:

1.默认是在一行中排列。并不能垂直排列。

针对他的优劣势我们想要布局的话,似乎需要解决这个一行排列的问题。

那么我们知道标准流是垂直排列的。

也就是说,我们可以利用垂直排列的特性,来创造盒子,用盒子来进行垂直布局,然后用浮动标签进行盒子内部的布局。

案例演示:

    <style>
        .mid {
            height: 100px;
            width: 400px;
            margin: 0 auto;
            margin-top: 2px;
            margin-bottom: 2px;
            background-color: palegoldenrod;
        }

        .flat {
            float: right;
            width: 20px;
            height: 20px;
            background-color: black;
            margin: 5px 5px;
        }
    </style>
</head>

<body>
    <div style="height: 30px; background-color: palegoldenrod;">
        <div style="float: left;" class="flat"></div>
        <div class="flat"></div>
        <div class="flat"></div>
    </div>
    <div class="mid"></div>
    <div class="mid"></div>
    <div class="mid"></div>
    <div style="height: 50px; background-color: palegoldenrod;"></div>
</body>

清除浮动

清除浮动的情景:

我们会遇到类似于商品架这样的需求,我们的盒子不会给定高度,而是随着商品的增加而增高。

但是我们明白,浮动的脱标特性会让这个盒子中没有标准流元素,也就是说这个盒子会变成高度为0的情况。

看以下场景:

我先把浮动注释起来

    <style>
        .flat {
            /* float: right; */
            width: 60px;
            height: 80px;
            background-color: black;
            margin: 5px 5px;
        }
    </style>
</head>

<body>
    <div style="background-color: palegoldenrod;">
        <div class="flat"></div>
        <div class="flat"></div>
        <div class="flat"></div>
    </div>
</body>

我没有设置高度,盒子随着子元素变大而变大。

下面把注释去掉

盒子没了

消除浮动就是针对这种情况产生。

清除浮动的方法

添加额外的块级标签

清除方法:在浮动标签的最后再添加一个标签,这个标签添加清除浮动

clear: both;

缺点:每个需要清除浮动的位置都需要添加这个表情,导致结构比较复杂。

效果:

    <div style="background-color: palegoldenrod;">
        <div class="flat"></div>
        <div class="flat"></div>
        <div class="flat"></div>
        <div style="clear: both;"></div>
    </div>

父元素添加overflow属性

给父元素设置一个overflow属性,属性值使用hidden。

优点:相比于添加额外标签,这个方法很简洁。

缺点:这个属性是隐藏溢出部分的意思,有的盒子一半在外面就会显示异常。

效果

    <div style="background-color: palegoldenrod; overflow: hidden;">
        <div class="flat"></div>
        <div class="flat"></div>
        <div class="flat"></div>
    </div>

 父元素添加伪元素

给父元素添加下面属性

.clearfix::after {
  content: "";
  display: table;
  clear: both;
}

原理跟额外标签差不多

    <style>
        .flat {
            float: left;
            width: 60px;
            height: 80px;
            background-color: black;
            margin: 5px 5px;
        }

        .clearfix::after {
            content: "";
            display: table;
            clear: both;
        }
    </style>
</head>

<body>
    <div style="background-color: palegoldenrod;" class="clearfix">
        <div class="flat"></div>
        <div class="flat"></div>
        <div class="flat"></div>
    </div>
</body>

效果

双伪元素清除浮动

添加这串代码(*zoom有时候会显示异常,看情况加,加上兼容性好)

.clearfix:after {
  content: "";
  display: table;
}
 
.clearfix:after {
  clear: both;
}
 
/* 确保IE6-7也能清除浮动 */
.clearfix {
  *zoom: 1;
}

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

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

相关文章

【webrtc】MessageHandler 9: 基于线程的消息处理:执行Port销毁自己

Port::Port 构造的时候,就触发了一个异步操作,但是这个操作是要在 thread 里执行的,因此要通过post 消息 MSG_DESTROY_IF_DEAD 到thread跑:port的创建并米有要求在thread中 但是port的析构却在thread里 这是为啥呢?

Redis__事务

文章目录 &#x1f60a; 作者&#xff1a;Lion J &#x1f496; 主页&#xff1a; https://blog.csdn.net/weixin_69252724 &#x1f389; 主题&#xff1a;Redis__事务 ⏱️ 创作时间&#xff1a;2024年05月02日 ———————————————— 这里写目录标题 文章目…

【机器学习】机器学习在教育领域的应用场景探索

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

Easy TCP Analysis上线案例库功能,为用户提供一个TCP抓包分析案例分享学习的平台

​案例库&#xff0c;提供给用户相互分享TCP抓包故障排查案例或是经典学习案例的功能&#xff0c;任何用户都可从案例库查看其它用户分享的案例&#xff0c;每个用户也都可以上传自己的案例&#xff0c;经过平台审核去重即可展示在案例库。 对于学习&#xff0c;最典型的三次握…

智能物联网与Web3:连接未来数字生活的桥梁

随着科技的不断进步&#xff0c;智能物联网&#xff08;IoT&#xff09;和Web3技术正成为数字化时代的关键驱动力。智能物联网将各种物理设备连接到互联网&#xff0c;使其能够感知环境、收集数据并与其他设备通信&#xff0c;而Web3技术则以去中心化、安全性和透明性为核心&am…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.9-1.10

目录 第二门课&#xff1a; 改善深层神经网络&#xff1a;超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周&#xff1a;深度学习的 实践层面 (Practical aspects of Deep Learning)1.9 归一…

Dom获取属性操作

目录 1. 基本认知 1.1 目的和内容 1.2 什么是DOM 1.3 DOM对象 1.4 DOM树 2. 获取DOM元素对象 2.1 选择匹配到的第一个元素 2.2 选择匹配到的多个元素 2.3 其他获取DOM元素方法 3. 操作元素内容 3.1 元素对象.innerText 属性 3.2 元素对象.innerHTML 属性 4. 操作元…

力扣题目:寻找数组的中心下标

力扣题目&#xff1a;寻找数组的中心下标 题目链接: 724.寻找数组的中心下标 题目描述 代码思路 根据题目内容&#xff0c;维护好前后缀和&#xff0c;然后从左到右遍历寻找合适的下标 代码纯享版 class Solution {public int pivotIndex(int[] nums) {int sumleft 0, su…

Visual Studio安装MFC开发组件

MFC由于比较古老了&#xff0c;Visual Studio默认没有这个开发组件。最近由于一些原因&#xff0c;需要使用这个库&#xff0c;这就需要另外安装。 参考了网上的一些资料&#xff0c;根据实际使用&#xff0c;其实很多步骤不是必须的。 https://zhuanlan.zhihu.com/p/68117276…

ios CI/CD 持续集成 组件化专题四-(手动发布私有库-组件化搭建)

一 、创建私有索引库 1.1 、第一步 首先检查本地是否存在需要的私有索引库 pod repo list 例如&#xff1a;dp_base_ios_spec 在本地不存在该私有索引库 1.2 、第二步 在git下下创建一个新的库&#xff0c;这个库用来保存私有库的podspec文件&#xff0c;取名叫xxxSpec用以…

如何使用Go语言进行基准测试(benchmark)?

文章目录 一、基准测试的基本概念二、编写基准测试函数三、运行基准测试四、优化代码性能五、注意事项总结 在Go语言中&#xff0c;基准测试&#xff08;benchmark&#xff09;是一种评估代码性能的有效方式。通过基准测试&#xff0c;我们可以测量代码执行的时间、内存使用情况…

MAT分析内存溢出

一. 下载地址 MAT工具&#xff0c;可以单独下载&#xff0c;记得和JDK进行适配&#xff0c;可以不用下载eclipse 下载地址: https://eclipse.dev/mat/downloads.php 二. MAT内存溢出本地代码测试 package com.sohu.test.method;import java.util.ArrayList; import java.ut…

Dashboard 安装部署

Dashboard 安装部署 Dashboard 安装部署 一&#xff1a;下载 二&#xff1a;部署步骤 1.镜像下载及导入 国内直接拉外网镜像会失败&#xff0c;可在境外下载镜像 查看 deployment 里的镜像版本 Dashboard Deploymentcontainers:- name: kubernetes-dashboardimage: k8s.g…

二叉树的遍历算法

目录 1.二叉树结构 2.广度优先搜索二叉树&#xff08;迭代算法&#xff09; 3.深度优先搜索二叉树&#xff08;递归算法&#xff09; 1.二叉树结构 一个父结点&#xff0c;至多可以连接左右两个子节点 Java构造树结构——其实是 自定义树结点类型 public class TreeNode {in…

【数据结构】链表专题3

前言 本篇博客我们继续来讨论链表专题&#xff0c;今天的链表算法题是经典中的经典 &#x1f493; 个人主页&#xff1a;小张同学zkf ⏩ 文章专栏&#xff1a;数据结构 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 目录 1.判断链表是否…

基于Springboot的在线博客网站

基于SpringbootVue的在线博客网站的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 博客标签 博客分类 博客列表 图库相册 后台登录 后台首页 用户管理 博客标…

layui中禁用div标签等操作

为了实现点击表格行后触发事件 然后去触发后进行操作 页面流程操作设置规定 不可编辑直接添加属性 class"layui-disabled"如果在最大的 div 设置不可编辑 但是内部有些还是可以触发使用的 所以就重写一下 取到当前 div 下的 所有的子元素 然后在给所有的子元素…

PE文件(三)节表作业

本次作业以notepad进行演示&#xff0c;如下是其在硬盘上的内存 1.手动解析节表 由标准pe头可知&#xff0c;一共由7个节也就是7个节表&#xff0c;可选pe头的大小是0X00F0&#xff0c;即240字节大小 根据上述我们所获取的信息&#xff0c;找到节表的首地址为0x01F8 .text …

Uniapp好看登录注册页面

个人介绍 hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的…

docker 基础命令

docker 安装 更新系统 sudo apt update sudo apt -y dist-upgrade安装docker sudo apt-get -y install ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/…