float浮动布局大战position定位布局

news2024/11/25 23:53:43

华子目录

  • 布局方式
    • 普通文档流布局
    • 浮动布局(浮动主要针对与black,inline元素)
      • float属性
      • 浮动用途
      • 浮动元素父级高度塌陷
    • position属性定位篇
      • 相对定位(relative为属性值,配合left属性,和top属性使用)
      • 绝对定位(absolute属性值)
      • 固定定位(fixed属性值)(垃圾广告案例)
      • 偏移量

布局方式

1.普通文档流布局:我们得网页内容从上往下,从左往右进行的布局,其中块元素独占一行(我们可以使用margin,padding,display,line-height去进行布局)
2.浮动布局:浮动可以使用一个元素脱离自己原本的位置,并在父级元素的内容区中向左或向右移动,直到碰到父级元素内容区的边界或者其他浮动元素为止
3.定位布局:让一个元素在一个指定位置进行显示
绝对定位:基于父级坐标进行移动
相对定位:基于元素本身进行移动

普通文档流布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            width: 100px;
            height: 100px;
            background-color: red;
            border: 10px solid black;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: blue;
            border: 10px solid red;
        }
        .box3{
            width: 100px;
            height: 100px;
            background-color: green;
            border: 10px solid black;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</body>
</html>

在这里插入图片描述

浮动布局(浮动主要针对与black,inline元素)

让开发人员可以更好地实现左右水平布局,以前的解决方式是把元素转为行内块

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            width: 100px;
            height: 100px;
            background-color: red;
            border: 10px solid black;
            display: inline-block;/*把块级元素转化为行内块元素*/
            
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: blue;
            border: 10px solid red;
            display: inline-block;/*把块级元素转化为行内块元素*/

        }
        .box3{
            width: 100px;
            height: 100px;
            background-color: green;
            border: 10px solid black;
            display: inline-block;/*把块级元素转化为行内块元素*/
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</body>
</html>

在这里插入图片描述
但是转为行内块元素也有一定的缺点:
1.性能比较差
2.如果盒子内容超出了宽高,排版也会塌陷
3.基线对齐和元素与元素之间会出现空格
浮动优点:

1.元素与元素之间没有空格存在
2.浮动元素可以使得块级元素水平排列,一行排列不下就换行排列

float属性

1.left(向左浮动)
2.right(向右浮动)
3.none(默认值,所有元素默认不浮动)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            width: 100px;
            height: 100px;
            background-color: red;
            border: 10px solid black;
            float: right;/*向右浮动*/
            
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: blue;
            border: 10px solid red;
            float: left;/*向左浮动*/

        }
        .box3{
            width: 100px;
            height: 100px;
            background-color: green;
            border: 10px solid black;
            float: left;/*向左浮动*/
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</body>
</html>

在这里插入图片描述

浮动用途

1.文本环绕(主要):浮动的目的主要是为文本环绕而产生
2.取消元素之间的空格

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .box1 img{
            width: 100px;
            height: 100px;
            float: left;/*把img浮动了,p标签感受不到浮动,但是文字,inline,inline-black可以感受到浮动,也就是可以对浮动元素进行环绕*/
        }
    </style>
</head>
<body>
    <div class="box1">
        <img src="../img/天使美女.jpg" alt="天使美女">
        <p>大概傻大个法大纲规范三国杀矮冬瓜法大纲刚发的嘎阿纲傻瓜蛋傻大个啥风格烦得很昂返回的是沙沟湖大哥大哥昂很多事</p>
    </div>
</body>
</html>

在这里插入图片描述

浮动元素父级高度塌陷

当父级元素没有设置高度时,高度会由文档流内容撑开,而当子元素浮动之后,脱离了文档流,所以父级高度也就不会被撑开了,这对我们后续的布局结构会造成很多困扰

解决方法:
1.定高
2.为父级元素设置overflow:hidden
3.设置清除浮动样式
clear:清除浮动属性
clear:left清除左浮动
clear:right清除右浮动
clear:both同时清除左右浮动

position属性定位篇

相对定位(relative为属性值,配合left属性,和top属性使用)

相对定位能让元素保持文本流位置的同时可以通过方位属性(x/y轴)进行相对原位置的偏移(单纯写个定位是没有用的,必须要配合方向)

特点:
1.相对定位不设置偏移量不会有任何变化和对页面的影响
2.参照自身位置进行定位
3.不会脱离文档流
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 100px;
            height: 100px;
            background-color: red;
            
            position: relative;
            left: 100px;/*距离左边多少px*/
            top: 100px;/*距离上方多少px*/
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

在这里插入图片描述

绝对定位(absolute属性值)

绝对定位能让元素完全脱离文档流,会使用方位属性(left,top等)相对于最近的有定位(有relative属性的)的父级元素进行偏移

特点:
1.找不到最近的定位(有relative属性的)父级,则相对于body标签
2.一般配合相对定位使用(参照物)
3.完全脱离文档流

父相子绝:

  • 父元素为相对定位,子元素为绝对定位,子元素会根据移动后的父元素位置显示
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 200px;
            height: 200px;
            border: 10px solid red;
            margin: 100px auto;

            position: relative;
        }
        .box1{
            width: 100px;
            height: 100px;
            border: 10px solid red;
            margin: 20px auto;
        }
        .box2{
            width: 20px;
            height: 20px;
            border: 10px solid red;

            position: absolute;/*绝对定位,必须存在方位属性,否则无效。如果存在relative,则relative的地方就是父级,如果没有relative,则默认以body为父级*/
            left: 0;
            top: 0;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="box1">
            <div class="box2">

            </div>
        </div>
    </div>
</body>
</html>

在这里插入图片描述

固定定位(fixed属性值)(垃圾广告案例)

固定定位把元素固定在网页的一个位置,拖动鼠标滑轮,元素不移动

偏移量

四个方向:	
	top: ↑ 顶部偏移
	right: → 右侧偏移
	bottom: ↓ 底部偏移
	left: ← 左边偏移
	
左上为尊 左上的优先级高(一般不会写上下 左右方向)
一般只用top和left

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

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

相关文章

快速理解DDD领域驱动设计架构思想-基础篇 | 京东物流技术团队

1 前言 本文与大家一起学习并介绍领域驱动设计(Domain Drive Design) 简称DDD&#xff0c;以及为什么我们需要领域驱动设计&#xff0c;它有哪些优缺点&#xff0c;尽量用一些通俗易懂文字来描述讲解领域驱动设计&#xff0c;本篇并不会从深层大论述讲解落地实现&#xff0c;这…

抄底抄在半山腰?散户如何摆脱追涨杀跌的诅咒?【邢不行】

你第一次炒股的经历是不是这样的&#xff1a; 你有一个朋友甚至是群友&#xff0c;他说在XX股票上大赚了一笔&#xff0c;你听后是既羡慕又不服。 于是你下载了炒股软件&#xff0c;看了眼这只股票&#xff0c;有点心动。但是由于没有交易经验&#xff0c;股价又确实涨了不少…

【实战-06】正确设置flink参数,彻底站起来

参数宝典 如何正确设置参数flink Table模式下的参数Table 模式下参数类相关DataStream 模式下怎么设置参数&#xff1f;总结 如何正确设置参数 很多人在应用flink DataStream 或者是Flinksql 的时候对于一些参数设置知道的不是很清晰&#xff0c;本文带领大家彻底搞定这一块。…

企业微信自建应用开发流程

开发需知 1、企业微信后台管理&#xff08;不是小程序管理后台&#xff09;&#xff1a;企业微信 2、企业微信开发者文档&#xff08;不是小程序文档&#xff09;&#xff1a;概述 - 接口文档 - 企业微信开发者中心 3、开发应用的类型&#xff1a;根据开发应用类型选择文档。…

GitHub个人访问凭证在哪看

要查看 GitHub 个人访问凭证&#xff08;Personal Access Token&#xff09;&#xff0c;请按照以下步骤进行操作&#xff1a; 登录到你的 GitHub 帐户。点击右上角的头像&#xff0c;然后选择 “Settings”&#xff08;设置&#xff09;。在左侧导航栏中&#xff0c;选择 “D…

【PowerQuery】PowerQuery导入JSON数据

Json数据是目前使用的最为频繁和广泛的一种数据交换格式,JSON的全称为JavaScript Object Notation。Json 主要用于在互联网的消息的数据交换信息传递,他的格式与XML有什么区别呢?为什么不用XML,用Json有啥好处呢?我们接下来讨论下Json相比XML的优势: XML传递的数据过多服…

华为云云服务器评测|前端都会的文档预览服务

嗨大家好&#xff0c;我是专注前端技术&#xff0c;热衷知识分享的小鑫同学&#xff0c;近期华为云云服务器焕新上线&#xff0c;实付0.03元拥有了一个月的云服务器使用资格&#xff0c;我将利用这台服务器来演示作为前端同学如何部署一个文档预览服务&#xff0c;拒绝将文档解…

HashMap源码分析(JDK1.8)

概述 JDK 1.8 对 HashMap 进行了比较大的优化&#xff0c;底层实现由之前的 “数组链表” 改为 “数组链表红黑树”&#xff0c;本文就 HashMap 的几个常用的重要方法和 JDK 1.8 之前的死循环问题展开学习讨论。 JDK 1.8 的 HashMap 的数据结构如下图所示&#xff0c;当链表节…

从零开始学习 Java:简单易懂的入门指南之泛型及set集合(二十二)

泛型及set集合扩展 1.泛型1.1泛型概述 2.Set集合2.1Set集合概述和特点【应用】2.2Set集合的使用【应用】 3.TreeSet集合3.1TreeSet集合概述和特点【应用】3.2TreeSet集合基本使用【应用】3.3自然排序Comparable的使用【应用】3.4比较器排序Comparator的使用【应用】3.5两种比较…

【PowerQuery】Excel的PowerQuery的复制

在Excel中构建符合要求的PowerQuery连接之后&#xff0c;所有的PowerQuery 连接已经顺利的保存在Excel 工作簿当中&#xff0c;但是如何去查看已经保存的PowerQuery连接呢&#xff1f;图6.3 显示了查看PowerQuery连接。 Excel界面->数据页签->查询与连接 如果你的Power…

java八股文面试[数据库]——InnoDB与MyISAM的区别

InnoDB和MyISAM是使用MySQL时最常用的两种引擎类型&#xff0c;我们重点来看下两者区别。 事务和外键 InnoDB支持事务和外键&#xff0c;支持回滚&#xff0c;具有安全性和完整性&#xff0c;适合大量insert或update操作 MyISAM不支持事务和外键&#xff0c;它提供高速存储和…

mysql表中删除重复记录,只保留一条记录的操作

mysql表中两个字段重复记录&#xff0c;只保留一条记录的操作 例如有一张学生表 其中name 和 class 相同的视为重复记录&#xff0c;需要保留一条记录&#xff0c;删除重复记录&#xff0c; 两种操作方式如下&#xff1a; 方法一: group by SELECT MIN(cs.id) AS id ,cs.name…

东南亚时尚用品电商平台ZALORA,用自养号测评快速提升产品的评论和销量

关注东南亚电商市场的人都听说过Lazada、Shopee等电商巨头&#xff0c;但很少有人知道ZALORA。实际上&#xff0c;每当提到东南亚的电商平台时&#xff0c;ZALORA都是一个不可忽视的话题。尽管电商巨头SheIn在印尼市场的表现不如本土时尚电商ZALORA。 ZALORA是由德国的创业加速…

分布式实时仿真系统-反射内存的应用

为了使分布式实时仿真系统(一个典型代表就行飞行模拟器)达到逼真的仿真效果&#xff0c;在系统内部&#xff0c;往往不仅需要对各种数据模型进行实时解算&#xff0c;而且需要一个延迟时间极低的确定性网络在系统之间传递数据&#xff0c;这样才能让各个子系统之间协调一致地工…

一文速学-让神经网络不再神秘,一天速学神经网络基础(七)-基于误差的反向传播

前言 思索了很久到底要不要出深度学习内容&#xff0c;毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新&#xff0c;很多坑都没有填满&#xff0c;而且现在深度学习的文章和学习课程都十分的多&#xff0c;我考虑了很久决定还是得出神经网络系列文章&#xff0c;…

通过 SQL 实现海量 GIS 数据的轨迹关联计算,确定不了解下?

作者&#xff1a;于成铭 | YMatrix 解决方案与架构总监 前言 统计与分析轨迹和地理区域的关联问题&#xff0c;是 GIS 主要的应用类别之一。最早的 GIS 应用以桌面应用程序为主&#xff0c;但随着需处理应用越来越复杂&#xff0c;GIS 的开发框架也在逐年演进。就像复杂的数据…

adb-linux 调试桥

这里写自定义目录标题 摘要&#xff1a;一、简介二、adb使用参考连接 摘要&#xff1a; adb 可替代网络、串口等调试手段&#xff0c;可以方便的进行文件传输、终端登录等 一、简介 ADB的全称为Android Debug Bridge&#xff0c;即调试桥&#xff0c;方便调试设备或调试开发…

(值得收藏)境外投资备案申请指南

随着全球化的不断深入&#xff0c;越来越多的企业开始寻求境外投资的机会。然而&#xff0c;在进行境外投资前&#xff0c;需要进行备案手续&#xff0c;以确保投资的合法性和可行性。 境外投资备案条件&#xff1a; 具有完全民事行为能力的法人或自然人。拥有足够的资金和实力…

CK_Label-V23(Battery)System Developer‘s Manual

Query PTL Tags Information Introduction to the API&#xff1a; Query all PTL tags information Basic Information&#xff1a; Attributes 接口信息 Status Finished URL http://localhost/wms/associate/getTagsMsg Request Method GET/POST Content-Type …

Shader变体自定义组合压缩方案

前言 本篇文章不讲什么是变体&#xff0c;不讲shader_feature和multi_compile的区别&#xff0c;也不讲如何收集变体。 关于什么是变体&#xff0c;如何优化变体&#xff0c;看这篇文章 Shader&#xff1a;优化破解变体的“影分身”之术 - 知乎 (zhihu.com) 关于变体的收集…