【前端从0开始】CSS——9、浮动

news2025/1/9 17:51:06

1. 浮动(float)

1.1 定义

float 属性定义元素向哪个方向浮动。之前这个属性应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,不论它本身是何种元素。

取值:

  • none: 默认值,不浮动
  • left: 左浮动
  • right: 右浮动

1.2 用法

li {
    float:left;
}
  • 横向排列布局
<style>
  div{
    width: 100px;
    height: 100px;
    float: left;
  }
  .one{
    background-color: red;
  }
  .two{
    background-color: green;
  }
  .thr{
    background-color: blue;
  }
</style>
<div class="one"></div>
<div class="two"></div>
<div class="thr"></div>

在这里插入图片描述

  • 左右排列布局
<style> 
  div{
    width: 100px;
    height: 100px;
  }
  .one{
    background-color: red;
    float: left;
  }
  .two{
    background-color: green;
    float: right;
  }
  .thr{
    background-color: blue;
    float: left;
  }
</style>
</head>
<body>
    <div class="one">one</div>
    <div class="two">two</div>
    <div class="thr">three</div>
</body>

在这里插入图片描述

1.3 特性

  • 浮动元素会去找离它最近的有浮动的元素进行贴边
  • 假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行
  • 右浮动会颠倒盒子顺序
  • 行内元素设置了浮动后,默认已转为块级元素,可以直接设置宽高,无需转换
  • 块级元素,如果没有设置宽高,浮动后, 会收缩到内容的大小
  • 浮动元素会脱离文档流,会压住下一个块元素,但不会压住其内容
<style>
    /* 特性1 特性2 */
    .box{
        width:500px;
    }
    .box-item{
        float:left;
        width:200px;
        height:200px;
        border:2px solid red;
    }
    /* 特性3 */
    .box-item{
        float:right;
        width:200px;
        height:200px;
        border:2px solid red;
    }
    /* 特性4 */
    .box-span{
        float:right;
        width:200px;
        height:200px;
        border:2px solid red;
    }
    /* 特性5 */
    .box-div{
        float:left;
    }
</style>
<div class="box">
    <div class="box-item">1</div>
    <div class="box-item">2</div>
    <div class="box-item">3</div>
    <div class="box-item">4</div>
    <span class="box-span">5</div>
    <div class="box-div">6</div>
</div>

1.4 清除浮动

1.4.1 父元素高度塌陷

子元素浮动,父元素没有设置高度,会出现高度撑不开的现象,称之为父元素高度塌陷。

<style>
    .box {
        width:500px;
        border:2px solid black;
    }
    .box-item {
        float:left;
        width:200px;
        height:200px;
        border:2px solid red;
    }
</style>
<div class="box">
    <div class="box-item">1</div>
    <div class="box-item">2</div>
    <div class="box-item">3</div>
    <div class="box-item">4</div>
</div>

1.4.2 清浮动本质

元素浮动后会出现相对应的页面布局问题,清除浮动的本质是解决元素浮动后造成的页面布局的问题。

1.4.3 常见的清除浮动方式

  • 加额外标签
    浮动元素后面加一个空标签,设置样式 clear:both;,左右两侧均不允许浮动元素。

  • 定高法
    给浮动元素的父元素设置高度大于或等于最高的浮动元素的高度,用于小板块,高度可以写死的部分。

  • 父元素添加 overflow:hidden 属性
    利用 overflow:hidden 清除浮动时,父元素里面不能有定位超出的元素,如果有,超出的部分会被隐藏。

  • 利用after伪元素清除浮动
    注意: 项目中我们常用after伪元素清除浮动,因为它不会额外增加标签,而且不会出现因为用overflow:hidden超出的部分会被隐藏,父元素高度也不用写死,我们只要在页面写一次清浮动的代码,在需要清浮动的位置加上 clearfix 类名就可以了。

<style>
    /* 方法一: 浮动元素后⾯加⼀个空标签,设置样式 clear:both; */ 
    .box {
        width:500px;
        border:2px solid black;
    }
    .box-item {
        float:left;
        width:200px;
        height:200px;
        border:2px solid red;
    }
    .clear{
        clear:both;
    }
</style>
<div class="box">
    <div class="box-item">1</div>
    <div class="box-item">2</div>
    <div class="box-item">3</div>
    <div class="box-item">4</div>
    <div class="clear"></div>
</div>
<style>
    /* 方法二:定⾼法 给浮动元素的⽗元素设置⾼度⼤于或等于最⾼的浮动元素的⾼度 */
    .box {
        width:500px;
        height:500px;
        border:2px solid black;
    }
    .box-item {
        float:left;
        width:200px;
        height:200px;
        border:2px solid red;
    }
</style>
<div class="box">
    <div class="box-item">1</div>
    <div class="box-item">2</div>
    <div class="box-item">3</div>
    <div class="box-item">4</div>
</div>
<style>
    /* 方法三: 给父级元素添加 overflow: hidden; */
    .box {
        width:500px;
        border:2px solid black;
        overflow:hidden;
    }
    .box-item {
        float:left;
        width:200px;
        height:200px;
        border:2px solid red;
    }
</style>
<div class="box">
    <div class="box-item">1</div>
    <div class="box-item">2</div>
    <div class="box-item">3</div>
    <div class="box-item">4</div>
</div>
<style>    
  .box {        
    width:500px;        
    border:2px solid black;    
  }    
  .box-item {        
    float:left;        
    width:200px;        
    height:200px;        
    border:2px solid red;    
  }    
  .clearfix::after {        
    content: "";
    clear: both;
    display: block;
  }
</style>
<div class="box clearfix">    
  <div class="box-item">1</div>    
  <div class="box-item">2</div>    
  <div class="box-item">3</div>    
  <div class="box-item">4</div>
</div>

1.4.4 清除浮动注意事项

  • 同级的元素,要么全部浮动,要么全部不浮动。
  • 子元素浮动,父元素去清除浮动,如果父元素也浮动,寻找距离最近的没有浮动的祖先元素去做清除浮动的操作。
  • 父元素有绝对定位的不需要清除浮动。

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

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

相关文章

耳机锂电池充电芯片充电三阶段

锂电池充电芯片充电三阶段 +V hezkz17进数字音频系统研究开发交流答疑群(课题组) 1 涓流充电:处于涓流充电阶段,涓流充电电流默认为 4mA。 2 恒流充电:在电池电压大于 2.5V,至接 近 CV 电压时,处于恒流充电阶段,恒流充电电流默认是 40mA。MCU 或者

【多天线传输技术】迫零检测预处理仿真误码率

%% [0、预处理] clc; clear; clf; close all;%% [1、配置参数] N100000; %数据点数&#xff08;个&#xff09; SNR_dB0:1:30; %信噪比&#xff08;dB形式&#xff09; SNR10.^(SNR_dB/10); %信噪比&#xff08;一般形式&#xff0c;Eb/N0&#xff09; Ps1;…

Sui流动性质押黑客松|8月25日Workshop

Sui流动性质押黑客松正在如火如荼的报名中&#xff0c;Sui基金会现诚邀全球开发者前来参与&#xff0c;助力资产再流通。了解黑客松详情&#xff1a;Sui流动性质押黑客松开启报名&#xff0c;赢取千万美金质押和奖励&#xff01; 黑客松官方网站&#xff1a;Sui Liquid Staking…

【Hello Network】数据链路层协议

本篇博客简介&#xff1a;介绍数据链路层的各协议 数据链路层 以太网协议认识以太网协议以太网帧格式局域网通信原理再理解 MTU认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响如何查看ip地址 mac地址 以及mtu ARP协议ARP协议的作用ARP协议在哪里ARP的工作过程…

跨境电商系统开发:成就全球贸易新时代

跨境电商系统开发简介 随着全球贸易的迅猛发展&#xff0c;跨境电商成为了推动贸易全球化的重要方式。跨境电商系统的开发在这一进程中扮演了重要角色&#xff0c;它为企业提供了全球贸易的便利和机遇。 1. 跨境电商系统的定义与功能 跨境电商系统是指为实现企业的跨区域贸易而…

2023年05月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;找和为K的两个元素 在一个长度为n(n < 1000)的整数序列中&#xff0c;判断是否存在某两个元素之和为k。 输入 第一行输入序列的长度n和k&#xff0c;用空格分开。 第二行输入序列中的n个整数&#xff0c;用空格分开。 输出 如果存在某两个元素的和为k&…

更换阿里云的yum源

更换阿里云的yum源 yum源存储的位置在&#xff1a; etc/yum.repos.d记住这个名字 CentOS-Base.repo对它进行备份&#xff0c;防止下载的yum源有问题 mv CentOS-Base.repo Back_up然后找到阿里云的yum源 如果没有wget 可以使用yum -y install wget 下载 wget http://mirrors…

数据分析经验总结-基础工具篇

一&#xff1a;Excel操作相关&#xff1a; 1.方便实用&#xff0c;但最大104W行&#xff0c;纯手工&#xff0c;无法沉淀数据处理流程&#xff0c;多表链接慢&#xff1b;不能为主流工具&#xff1b; 2.相关公式&#xff1a; ![在这里插入图片描述](https://img-blog.csdnimg.c…

西门子SCALANCE W744-1PRO 客户端配置

. 安装西门子无线搜索软件PST。 无线SCALANCE W788-1PRO参数设置。 打开PST软件&#xff1a;选择Settings->Network Adapter->2本地连接 输入该无线设置的IP地址&#xff0c;进入网络访问界面。输入密码&#xff1a;admin&#xff0c;点击Log on进入。 填写本无线的SSI…

【探索C++】string类:更强大的字符串处理

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的…

SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)

在上一篇文章讲述zuul的时候&#xff0c;已经提到过&#xff0c;使用配置服务来保存各个服务的配置文件。它就是Spring Cloud Config。 一、简介 在分布式系统中&#xff0c;由于服务数量巨多&#xff0c;为了方便服务配置文件统一管理&#xff0c;实时更新&#xff0c;所以需…

Linux网络编程1(网络基础定义)

网络早已成为我们日常生活的一部分&#xff0c;经常使用互联网的人很难长时间内离开互联网。你是否好奇你的电脑仅仅插上一根网线&#xff0c;你发给朋友的聊天信息就能准确无误的到达朋友的手机或者电脑上&#xff0c;你是否好奇为何你仅仅在浏览器输入一个网址&#xff0c;点…

动态不确定性的动态S过程(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 7 Function callers标签页介绍

不知不觉这个code-mapping专题已经写了6篇文章了,今天是我们这个专题的最后一篇文章了介绍Function callers 这个其实很简单,以前的文章里也有提到CS接口实现两个SWC之间的CS调用,我们在从Code-mapping的角度在说下 首先还是看下模型 我们还记得在simulink里我们用function…

选择排序:用C语言打造高效的排序算法

本篇博客会讲解如何使用C语言实现选择排序。 下面我来画图讲解选择排序的思路。 假设有一个数组&#xff0c;其初始状态如下&#xff0c;我们想把这个数组排成升序。 首先我们标明范围&#xff0c;即[begin, end]&#xff0c;一开始begin(b)和end(e)分别表示数组的第一个位置…

【黑马头条之热点文章kafkaStream】

本笔记内容为黑马头条项目的热点文章-实时计算部分 目录 一、实时流式计算 1、概念 2、应用场景 3、技术方案选型 二、Kafka Stream 1、概述 2、Kafka Streams的关键概念 3、KStream 4、Kafka Stream入门案例编写 5、SpringBoot集成Kafka Stream 三、app端热点文章…

验证码识别DLL ,滑块识别SDK,OCR图片转文字,机器视觉找物品

验证码识别DLL ,滑块识别SDK 你们用过哪些OCR提取文字&#xff0c;识图DLL&#xff0c;比如Opencv,Labview机器视觉找物品之类&#xff1f;

数据库第十五课-------------非关系型数据库----------Redis

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

第三方软件测试都有哪些?

第三方软件测试 第三方软件测试是一种软件测试活动&#xff0c;旨在确保软件的质量、功能、性能和安全性等方面符合预期要求。 一、以下是一些常见的第三方软件测试类型&#xff1a; 兼容性测试&#xff1a;测试软件在不同操作系统、浏览器、数据库等环境下的兼容性。 功能测…

计费时间与非计费时间:工时表如何帮助你平衡两者?

正确分配时间是企业管理员工的必要条件&#xff0c;这意味着了解并了解如何管理计费时间和非计费时间。更重要的是&#xff0c;需要能够在两者之间找到适当的平衡&#xff0c;这样才能最大限度地提高生产力、消除业务中的低效率并提高利润。 什么是计费时间和非计费时间&#x…