CSS 浮动

news2025/1/22 18:07:32

目标target✓

  • 能够说出来为什么需要浮动
  • 能够说出来浮动的排列特性
  • 能够说出来三种最常见的布局方式
  • 能够说出来为什么需要清除浮动,
  • 能够至少写出两种清楚浮动的方法
  • 能够利用Photoshop实现基本的切图
  • 能够利用Photoshop插件实现切图
  • 能够完成学成在线的页面布

传统网页布局的三种模式

        网页布局的本质就是用CSS来摆放盒子, 把盒子拜访到相应的位置

CSS提供了三种传统布局方式, 简单来说就是盒子如何进行排列顺序 :

  • 普通流 (标准流)
  • 浮动
  • 定位

        所谓标准流, 就是按照标签规定好的默认方式排列 :

  • 块级元素会独占一行 , 从上往下顺序排列,
    常见块级元素: div, hr, p, h1~h6, ul, ol, form, table
  • 行内元素会按照顺序排列, 从左向右排列, 碰到父元素则边缘自动换行
    常用元素span, a, i, em

以上都是标准流布局

        当然只使用我们的标准流是很难控制的, 例如有如下场景, 我们需要将手机和查看全部分别设置到这个盒子的两端, 这个时候标准流就不是很适用, 就需要换一种方式

为什么需要浮动? 

         问题: 如何让多个块级盒子div 水平排列成一行 ???

         但是我们知道, div是块级元素, 一个块级元素会单独占一行, 就算你设置了 div盒子的高度和宽度, 他还是会独占一行. 

就例如如下code :

    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            border-radius: 20px;
            border-color: blue;
            border-style: solid;
        }
    </style>
    <div></div>
    <div></div>
    <div></div>

        那么如何将其设置为并排的, 可以利用我们之前学过的行内块, 添加属性: display: inline-block 

    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            border-radius: 20px;
            border-color: blue;
            border-style: solid;

            display: inline-block;
        }
    </style>
    <div></div>
    <div></div>
    <div></div>

 

        但是你会发现他们中间会默认有一个空白间隙, 这个空白空隙是几个像素我们不知道, 但是在实际开发中这种缝隙的大小都是需要非常精准的,

        这种页面布局真的是太常见了, 例如:

        这一个一个的商品就是几个并排的盒子构成的, 他们排列在一行, 如果用我们的标准流肯定是行不通的.

        有的时候我们还需要实现两个盒子的左右对齐. 

        这个时候使用我们的标准流也是行不通的. 

网页浮动第一准则, 多个块级元素纵向排列找标准流, 多个块级元素横向排列找浮动 

什么是浮动?  

         float 属性用于创建浮动框, 将其移动到一边, 直到左边缘或者是右边缘触及包含块或者另外一个浮动框的边缘.

 如何使用浮动

        设置CSS属性: float : 属性值;

属性值描述
none元素不浮动(默认值)
left元素向左浮动
right元素向右浮动

浮动的重要特性

  1. 脱离标准普通的控制 并 移动到指定位置, 俗称脱标
  2. 浮动的盒子不再保留原来的位置 

演示: 

    <style>
        .test {
            width: 200px;
            height: 200px;
            background-color: pink;
            border-radius: 20px;
            border-color: blue;
            border-style: solid;

            float: left;
        }

        .noFloat {
            width: 300px;
            height: 300px;
            background-color: black;
        }
    </style>
    <div class="test"></div>
    <div class="noFloat"></div>

 如果多个盒子都设置了浮动, 则他们会按照属性值一行内显示并且顶端对齐排列

注意: 浮动的元素是互相贴靠在一起的(不会有缝隙), 如果父级宽度装不下这些浮动的盒子, 多出的盒子就会另起一行对齐. 

 浮动元素会具有行内块元素特性.

        任何元素都可以浮动, 不管原先是什么模式的元素, 添加浮动之后具有行内块元素相似的特性.

    <span>
    </span>

    <style>
        span {
            width: 200px;
            height: 200px;
            line-height: 200px;
            text-align: center;
            background-color: skyblue;
        }
    </style>

  将会什么都不显示

但是如果我加上float属性之后 ,他就具备了行内块元素的特点, 也就是具有了高度和宽度:

    <span>
    </span>

    <style>
        span {
            width: 200px;
            height: 200px;
            line-height: 200px;
            text-align: center;
            background-color: skyblue;
            float: left;
        }
    </style>

 不管你原先属于什么模式的元素, 添加浮动之后都具备行内块元素的特性:

    <span>
        span标签
    </span>
    <div>
        div标签
    </div>
    <style>
        span,
        div {
            width: 200px;
            height: 200px;
            line-height: 200px;
            text-align: center;
            background-color: skyblue;
            float: left;
        }
    </style>

设置了浮动之后, 不需要显示的转换元素显示模式, 就可以具备行内块元素的性质 

块级盒子没有设置宽度就和父级一样宽, 但是添加浮动之后, 它的大小根据内容来定

    <span>
        span标签
    </span>
    <div>
        div标签
    </div>
    <p>
        这是一个p标签
    </p>
    <style>
        span,
        div {
            width: 200px;
            height: 200px;
            line-height: 200px;
            text-align: center;
            background-color: skyblue;
            float: left;
        }

        p {
            height: 300px;
            float: right;
            background-color: red;
        }
    </style>

浮动元素经常和标准父级搭配使用 

        为了约束浮动元素的位置, 我们网页布局一般采用的策略是:

先用标准流的父元素排列上下位置, 之后内部子元素采用浮动排列左右位置, 符合网页布局第一准则.

         这样的浮动盒子, 就不会受浏览器的影响了, 就会只受父级盒子影响居中显示

常见网页布局 

自上而下 

按标准流来从上往下排列

当然我们也可以细化一下我们的main

浮动元素注意点

 浮动和标准流的父盒子搭配

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

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

相关文章

uniapp项目启动时检查版本,版本过旧提示:更新至最新版本,App简单版实现思路详解

效果&#xff1a; 实现的思路比较简单&#xff0c;后期需要优化的话&#xff0c;会持续更新 uniapp文档上有提到关于版本更新 在文档中搜uni.getUpdateManager()&#xff08;小程序的更新&#xff09;&#xff0c;会提示app的更新需要点击连接&#xff0c;跳转到其他页面查看…

iOS 16.4 之后真机与模拟器无法使用Safari调试H5页面问题

背景 iOS 16.4之后用真机调试H5时候发现&#xff0c;Safari中开发模块下面无法调试页面 解决方案 在WKWebView中设置以下代码解决 if (available(iOS 16.4, *)) {[_webView setInspectable:YES];}然后再次调试就可以了

Tcl语言:SDC约束命令create_generated_clock详解(上)

相关阅读 Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482 有时候&#xff0c;复杂的设计需要多个时钟来完成相应的操作&#xff0c;当设计中有多个时钟存在时&#xff0c;它们需要相互协作或各司其职。有几种时钟可能由其他时…

Centos7部署Python3环境

一、安装Python3 ###查看是否安装Python3 Centos 7 默认安装了python 2.7.5. 因为一些命令要用它比如yum 它使用的是python2.7.5 使用 python -V 命令查看一下是否安装Python 然后使用命令 which python 查看一下Python可执行文件的位置 Python指向的是Python2.7 安装依赖 y…

漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案

现象 漏刻有时项目开发中的调用了百度地图API&#xff0c;在PC端、IOS和安卓机型测试都没有问题。但是使用华为手机部分型号时&#xff0c;前端在监听点击事件的时候是使用 map.addEventListener(click,function(){...})&#xff0c;无法触发。或 原理 通过监听touchstart和…

CentOS7安装部署StarRocks

文章目录 CentOS7安装部署StarRocks一、前言1.简介2.环境 二、正文1.StarRocks基础1&#xff09;架构图2&#xff09;通讯端口 2.部署服务器3.安装基础环境1&#xff09;安装JDK 112&#xff09;修改机器名3&#xff09;安装GCC4&#xff09;关闭交换分区&#xff08;swap&…

基于级联广义积分器(CGI)的谐波信号提取MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 此方法可用于信号检测、虚拟阻抗合成、锁相环等方面。 在现有的信号提取方法中&#xff0c;众多学者采用了SOGI法、LPF法以及正交信号发生器等方法。当输入信号中不存在直流分量&#xff0c;只有谐波分量时&…

C盘清理指南(一) 内存小的本质原因

相信大家看到日益爆满的C盘一定会很头疼&#xff0c;博主也不例外。C盘之于电脑&#xff0c;犹如心脏之于人类一般重要&#xff0c;合理地清理C盘是工作中必不可少的技能。由于全篇篇幅较长&#xff0c;所以这部分会分为好几期哦&#xff0c;大家敬请期待&#xff01; 当我们发…

V90 EPOS模型下位置控制(完整SCL源代码)

V90EPOS模式下点动控制详细应用介绍和控制源代码,请查看下面文章链接: V90伺服EPOS模式点动控制(详细介绍+完整SCL代码)-CSDN博客文章浏览阅读29次。V90伺服驱动器采用西门子标准报文111加FB284(SINA_POS)详细的报文组态和功能块请参考下面文章链接:博途1200/1500PLC V90 P…

使用 Gorm 进行事务和错误处理

在 GORM 中管理事务和错误的全面指南&#xff0c;以确保可靠的数据库操作 在数据库管理的世界中&#xff0c;确保数据完整性至关重要。GORM&#xff0c;强大的 Go 对象关系映射库&#xff0c;为开发人员提供了维护数据一致性和优雅处理错误的必要工具。本文将作为您全面的指南…

告别传统笔记,8款笔记软件让读书笔记更精彩!

阅读&#xff0c;它打开了一个全新的世界给我们。对于那些热爱阅读的人们来说&#xff0c;没有什么比把手中的一本书翻到最后一页更满足的了。为了更好地理解书籍的内容&#xff0c;或是以后能快速查阅书中的重点内容&#xff0c;很多人习惯于边阅读边做读书笔记。 如果你正在…

【源码】医学影像PACS实现三维影像后处理等功能

医学影像诊断技术近年来取得了快速发展&#xff0c;包括高性能的影像检查设备的临床应用和数字信息技术的图像显示、存储、传输、处理、识别&#xff0c;这些技术使得计算机辅助检测和诊断成为可能&#xff0c;同时人工智能影像诊断也进入了人们的视野。这些技术进步提高了疾病…

王道考研--》顺序表课后习题C语言代码实现(冲刺)

考研是许多计算机科学专业学生追求高学历、寻求更好就业前景的途径。在考研过程中&#xff0c;数据结构是一个非常重要的科目&#xff0c;而代码实现题更是其中的难点之一。在这篇文章中&#xff0c;我们将探讨如何通过实现数据结构代码问题来提升考研成绩。无论您是否有编程经…

C#中LINQtoSQL只能在.NetFramework下使用,不能在.net 的默认安装下使用

目录 一、在net7.0下无法实现LINQtoSQL 1.VS上建立数据库连接 2.VS上创建LINQtoSQL 二、在.NetFramework4.8下成功实现LINQtoSQL 1.VS上建立数据库连接 2.VS上创建LINQtoSQL 三、结论 四、理由 本文是个人观点&#xff0c;因为我百般努力在.net7.0下无法实现LINQtoSQL的…

vr地铁消防虚拟逃生自救系统降低财产及人员伤害

无论是在公共场所还是在家中&#xff0c;火灾都是一种常见的突发事件。这往往会严重影响到人们的财产和生命安全。因此&#xff0c;如何预防火灾和安全逃生就成为了非常重要的话题。这款VR模拟火灾疏散逃生系统&#xff0c;帮助人们了解火灾逃生的技巧以及正确的应对方法。 以传…

【仙逆】尸阴宗秘密揭露,王林差点被夺舍,修仙恐怖消息曝光

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析国漫资讯。 深度爆料&#xff0c;《仙逆》国漫第九话最新剧情&#xff0c;尸阴宗表面上令人敬畏&#xff0c;但背后却隐藏着不为人知的秘密。这个宗门暗地里为受伤或死亡的强大修真者提供夺舍容器&#xff0c;帮助他们获…

基础课24——开放域QA问答

早期的对话机器人通常采用基于规则的开放问答系统。这种系统依赖于专家系统的语义模板&#xff0c;即根据预先定义的模板来匹配和回答问题。这种方法的优点是准确性相对较高&#xff0c;因为它是基于人类专家的知识和经验来设计的。然而&#xff0c;这种系统的可扩展性和灵活性…

Linux程序的地址空间

Linux程序的地址空间 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容深刻理解了什么程序或者进程的地址…

2000-2021年全国各省市城乡平均受教育年限数据(分城镇和农村)

2000-2021年全国各省市城乡平均受教育年限数据&#xff08;分城镇和农村&#xff09; 1、时间&#xff1a;2000-2021年 2、范围&#xff1a;全国及31省 3、来源&#xff1a;人口与就业统计年鉴 4、指标包括&#xff1a;城乡平均受教育年限 、6岁以上总人口 未上过学、…

【手把手教你】训练YOLOv8分割模型

1.下载文件 在github上下载YOLOV8模型的文件&#xff0c;搜索yolov8&#xff0c;star最多这个就是 2. 准备环境 环境要求python>3.8&#xff0c;PyTorch>1.8&#xff0c;自行安装ptyorch环境即可 2. 制作数据集 制作数据集&#xff0c;需要使用labelme这个包&#…