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

2023-11-01

布局方式

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

float浮动布局大战position定位布局 的相关文章

  • 从顶部开始在同一水平线上显示同一行中的两个 div

    这是我的代码 floating box display inline block width 150px margin 10px border 3px solid 73AD21 after box border 3px solid red
  • 无法正确显示行

    我应该在这个问题的开头说我完全没有 html css javascript 背景 所以请对我宽容点 如果我使用了错误的术语或者问了一个愚蠢的问题 没有提供足够的信息 请抱歉 我正在尝试让一个可扩展的表工作 通过阅读论坛线程 教程 将 nex
  • 如何将 HTML 转换为 Markdown?

    我有一个类似 stackoverflow 的网站 有一个文本区域 人们可以在其中写答案 我用这个 PHP 库 http parsedown org 转换降价 我的意思是我使用该函数来转换 italic to i italic i inclu
  • 链接无效

    我正在尝试使用以下命令创建一组指向页面中特定部分的链接 a href 符号 但它似乎不起作用 点击链接似乎没有任何反应right click gt open in a new tab更改 url 但不会移动到页面的其他部分 我使用的是火狐浏
  • 在 Angular html 模板中访问常量枚举

    假设我有一个常量枚举 export const enum MyConstEnum Value1 Value1 Value2 Value2 Value3 Value3 现在我想在我的 Angular 模板中使用它 span This has
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 滚动时的 CSS 背景模糊

    我有固定的背景图像 滚动时我希望图像变得模糊 我知道如何在 css 中进行模糊 但在特定的滚动位置进行 这是一个例子 https medium com good music f160ba9e6c52 https medium com goo
  • 转义 h 轮廓

    因此 我一直在尝试找出在被较低级别的标题吸引后添加内容的最佳方法是什么 section h1 Title of Section h1 h2 Related 1 h2 h2 Related 2 h2 p I NEED THIS TO BE P
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 为什么我的交互式图像仅在 Internet Explorer 上出现故障?

    我的问题 我为自己制作了一个图像地图 交互式图像 它在 Chrome safari 和 Firefox 上完美运行 然而 当我在可怕的互联网浏览器上尝试它时 它真的很糟糕 这些小点应该扩展到更大的盒子中 在互联网浏览器上它要么不起作用 要么
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • Webpack 4:如何使用 LESS 获取 CSS 源映射?

    多年来我一直在尝试让 CSS 源映射在 webpack 中工作 但没有成功 我不确定链条中哪里出了问题 我希望有人能指出我正确的方向 这是发生的事情 行号是错误的 实际上文件名也是错误的 main less只是包含一堆 import也就是说
  • css3按钮背景颜色无限过渡

    有没有办法仅使用 css3 使按钮的背景颜色从灰色渐变为蓝色 然后又回到灰色 一个很好的例子是默认操作按钮是可可 我知道这可以在 javascript 中完成 但我宁愿只使用 css 来完成此操作 您好 我已经通过 CSS3 动画制作了按钮

随机推荐

  • 浪潮NF5280M4使用IPMI安装操作系统

    其实也可以使用U盘安装的 但是由于这次没有U盘 所以使用了IPMI的方式 登录IPMI 如果你不知道IPMI的地址 你需要用KVM连接上服务器 为IPMI配置一个地址 然后把你的电脑地址修改为合IPMI同一 一个网段 打开浏览器进行访问 进
  • Base64和图片之间的转换,及压缩-java(base64字符串最好代码生成,网页工具存在空格问题)

    1 图片转base64String public static BufferedImage photoToBase644 String url String result try File file new File url File fi
  • SourceTree 合并分支上的多个提交,一次性合并分支的多次提交至另一分支,主分支前进时的合并冲突解决

    SourceTree 合并分支上的多个提交 一次性合并分支的多次提交至另一分支 主分支前进时的合并冲突解决 目录 SourceTree 合并分支上的多个提交 一次性合并分支的多次提交至另一分支 主分支前进时的合并冲突解决 1 合并分支上的多
  • 1143. 最长公共子序列 -- 动规

    1143 最长公共子序列 class LongestCommonSubsequence2 1143 最长公共子序列 https leetcode cn problems longest common subsequence def solu
  • Git高级篇(1.3w字)

    学习笔记 插图如果侵权请联系博主删除 1 什么是分支 开发软件时 可能有多个人同时为同一个人软件开发功能或修复BUG 可能存在多个Release版本 并且需要对各个版本进行维护 Git分支功能可以支持同时进行多个功能的开发和版本管理 分支是
  • Android WebView详解

    一 简介 WebView是一个显示网页的视图 但是它不是一个普通的View 它比一般的View要庞大 复杂 其实它就是一个浏览器 相当于一个Google Chrome 当然它没有Google Chrome本身那么强大 它允许使用浏览器加载网
  • Python配置TensorFlow-GPU环境(笔记I)-2018-10-25

    系统 Windows10 Python Anaconda3 5 0 0 Windows x86 64 主要步骤 1 环境配置 打开Anaconda Prompt 输入清华仓库镜像 这样更新会快一些 同样在 Anaconda Prompt 中
  • 企业saltsatck学习(一) ------ 有关salt的知识了解

    一 常见自动化运维 1 常见工具 Puppet 基于rubby开发 c s架构 支持多平台 可管理配置文件 用户 cron任务 软件包 系统服务等 分为社区版和企业版 企业版支持图形化配置 Saltstack 基于Python开发 c s架
  • [项目管理-6]:软硬件项目管理 - 项目沟通管理(渠道、方法)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 项目管理 6 软硬件项目管理 项目沟通管理 沟通渠道 文火冰糖的硅基工坊的博客 CSDN博客 目录 第6章 项目沟通管理 6 1 项目沟通概
  • 随机生成图形验证码

    引入此js内容 function window document var size 4 设置验证码长度 function GVerify options 创建一个图形验证码对象 接收options对象为参数 this options 默认o
  • 服务器管理系统是什么

    服务器管理系统是什么 服务器管理系统 是在操作系统下对操作系统的服务器软件及其相关软件进行二次设置的管理软件 是运营商管理域名 服务器 企业邮局 数据库等服务器主机类产品的一个网站平台 以达到快捷实现域名 服务器主机 企业邮局 数据库等产品
  • 引入旧的Java项目的时候出现"Description Resource Path Location Type Date cannot be resolved to "解决方案

    错误描述 Description Resource Path Location Type Date cannot be resolved to a type add jsp besto WebRoot WEB INF pages serie
  • 策略模式和工厂模式的区别_工厂模式和策略模式

    学习最好的方法还是得通过笔记和代码 所以今天继续学习工厂模式和策略模式 简单工厂模式 工厂模式很多人比较熟悉 之前很多地方都能看到工厂模式 之前一直以为工厂模式很简单 所以就没有认真的去学习这个模式 没有去了解这个模式的精髓 今天就好好学习
  • Fiddler抓包教程

    参考资料 Fiddler抓包1 抓firefox上https请求 1 抓firefox上https请求 前言 fiddler是一个很好的抓包工具 默认是抓http请求的 对于pc上的https请求 会提示网页不安全 这时候需要在浏览器上安装
  • 全网最全网络安全(黑客)自学路线!

    一 前言 1 这是一条坚持的道路 三分钟的热情可以放弃往下看了 2 多练多想 不要离开了教程什么都不会了 最好看完教程自己独立完成技术方面的开发 3 有时多 google baidu 我们往往都遇不到好心的大神 谁会无聊天天给你做解答 4
  • C语言共用体详解

    文章目录 共用体解释 代码说明 小端存储 Little Endian 共用体与小端存储 为什么只能用第一个成员类型的值初始化一个共用体变量 共用体解释 共用体 Union 是一种特殊的数据类型 它允许在同一个内存位置存储不同的数据类型 共用
  • undefined reference to `OsqpEigen::Solver::lu_solve()‘问题解决

    记录使用OSQPEigen和QuadProgpp遇到的bug 问题描述 编译工程报错 usr lib gcc cross aarch64 linux gnu 9 aarch64 linux gnu bin ld libcontrol so
  • M.2/sata2.0/3.0接口,PCI-E1.0/2.0/3.0/4.0x2x4x8x16速率汇总

    B站 硬件科普 PCIe到底是个什么东西 他在电脑里是干什么的 PCIE2 0 PCIE3 0 PCIE4 0 PCIE5 0接口的带宽 速率计算 sata2和sata3接口区别 https diy pconline com cn grap
  • 比较器

    比较器 比较器 顾名思义 做比较的 比较两个电压 然后输出高低电平 01 不带反相的比较器 当Vin gt Vref 输出高电平 当Vin
  • float浮动布局大战position定位布局

    华子目录 布局方式 普通文档流布局 浮动布局 浮动主要针对与black inline元素 float属性 浮动用途 浮动元素父级高度塌陷 position属性定位篇 相对定位 relative为属性值 配合left属性 和top属性使用 绝