定位,浮动,BFC

2023-05-16

文章目录

  • 1,定位
    • 1. margin 与 padding 区别:
    • 2. 定位:
  • 2,元素分类,浮动,BFC
    • 1.1 常见块级元素:
    • 1.2 常见行内元素:
    • 1.3 行内块级元素
    • 2. 浮动:元素脱离文档流【在父级内飘着】,空间释放
  • 3. BFC 块级格式化上下文

1,定位

1. margin 与 padding 区别:

1. padding【行内间距】,可以设置在一个块里边
2. margin【两个块的外间距】,必须是两个块之间
3. 注意:一般margin 设置上面块的下边距margin-bottom,左面块的右边距margin-right

2. 定位:

  1. 不脱标的定位:static静态定位,relative 相对定位
    2. 脱标(脱离文档流)的定位:absolute 绝对定位,fixed 固定定位
    3. static 设置 left/top/right/bottom 没有作用,对margin/padding敏感。
    4. relative 不脱标,【定位占据原来位置】根据 left/top/right/bottom 位置做偏移
    5. absolate 脱标,不占位置,根据父元素【否则窗口】定位,
    6. fixed 脱标,不会局限于父级元素,一直浮在窗口
    7. sticky 是 relative 和 fixed 结合,不脱标,仅在父级内粘性定位【设置了top等值】,

2,元素分类,浮动,BFC

1.1 常见块级元素:

1. 举例
  <center>...</center>  地址文字

  <h1>...</h1>  标题一级

  <h2>...</h2>  标题二级

  <h3>...</h3>  标题三级

  <h4>...</h4>  标题四级

  <h5>...</h5>  标题五级

  <h6>...</h6>  标题六级

  <hr>  水平分割线

  <p>...</p>  段落

  <pre>...</pre>  预格式化

  <blockquote>...</blockquote>  段落缩进   前后5个字符

  <marquee>...</marquee>  滚动文本

  <ul>...</ul>  无序列表

  <ol>...</ol>  有序列表

  <dl>...</dl>  定义列表

  <table>...</table>  表格

  <form>...</form>  表单

  <div>...</div>

   	2. 特征: 宽高可控,
   	         无宽度时默认100%,
   	         块级元素内可包含块级元素以及行内元素,
   	         块级元素内不能放入其他块级元素,
   	         大多为结构性标记。

3.转为块级元素:display : block

1.2 常见行内元素:

  1. 举例:
  <b>...</b>  加粗

  <strong>...</strong>  加粗
  
  <sup>...</sup>  上标

  <sub>...</sub>  下标

  <i>...</i>  斜体

  <em>...</em>  斜体

  <del>...</del>  删除线

  <u>...</u>  下划线

	2. 特征:和其他元素在一行;
	               宽高以及内边距不可控;
	               宽高依靠自身字体大小和图形支撑,不可改变;
	               行内只能包括行内不能包含块级;
	               padding值可以设置
	               margin 值只能设置水平方向的边距,即:margin-left和margin-right,设置margin-top和margin-bottom无效
	               大多数为结构性标记
  1. 转为行内元素:display:inline

1.3 行内块级元素

  1. 举例:
	<span>...</span>

	<a>...</a>

	<img/>

	<textarea>...</textarea>

	<button>..</button>

	<input>

	<br>

	<label>...</label>

	<select>...</select>

	<canvas>...</canvas>

	<progress>...</progress>

	<cite>...</cite>

	<code>...</code>

	<strong>...</strong>

	<em>...</em>

	<audio>...</audio>
	
	<video>...</video>

  1. 特征:
    可以设置宽高
    可以设置内外边距
  2. 转为行内块元素: display : inline-block

2. 浮动:元素脱离文档流【在父级内飘着】,空间释放

  1. 行内元素不能设置宽高,但设置浮动后脱标就可以设置宽高了,更像行内块元素,默认宽度为内容宽度
  2. 为什么需要清除浮动:
    1. 【浮动导致塌陷】:父盒子不设置高度,子盒子设置高度,父盒子高度取决于子盒子,若子盒子浮动【脱标】,导致父盒子高度为 0 ,此时 需要清除浮动,让父盒子重新获得高度。
  3. 清除浮动的5种方式
    1. clear : 包含三个值:left, right, both
      1. 用 left : 当前两兄弟都 左 浮动时;
      2. 用 right : 当前两兄弟都 右 浮动时;
      3. 用 both : 当前两兄弟 任意 浮动时;
    2. 若是浮动导致塌陷,让最后一个兄弟采用clear:both。解决父盒子高度为零的问题。
    <style>
        #child1 {
            width: 50px;
            height: 50px;
            background-color: red;
            float: right;
        }
        
        #child2 {
            width: 50px;
            height: 50px;
            background-color: green;
            float: right;
        }
        
        #clear {
            clear: both;
        }
    </style>
</head>

<body>
    <div id="main">
        <div id="child1"></div>
        <div id="child2"></div>
        <div id="clear"></div>
    </div>
</body>
3.  浮动导致塌陷:给 父级 元素设置  单伪元素清除  `clearfix::after`   属性:
#child1 {
            width: 50px;
            height: 50px;
            background-color: red;
            float: right;
        }
        
        #child2 {
            width: 50px;
            height: 50px;
            background-color: green;
            float: right;
        }
        /* #clear {
            clear: both;
        } */
        
        .clearfix::after {
            content: "";
            display: block;
            clear: both;
        }
    <div id="main" class="clearfix">
        <div id="child1"></div>
        <div id="child2"></div>
    </div>

	 <div id="main2" class="clearfix">
        <div id="child1"></div>
        <div id="child2"></div>
    </div>
 	4. 溢出隐藏:解决浮动塌陷问题  overflow: hidden;
 #main3 {
            background-color: green;
            overflow: hidden;
        }
<div id="main3">
        <div id="child1"></div>
        <div id="child2"></div>
    </div>
    5. 双伪元素清除浮动
    <style>
部分代码:
        /* 双伪元素清除法 */
        .box::before,
        .box::after {
            /* 这里用display:block也可以,用table是可以解决盒子塌陷问题 */
            display: table;
            /* content必须要有 不然伪元素无法生效 */
            content: '';
        }
 
        .box::after {
            /* 这里是清除浮动的关键代码 */
            clear: both;
        }
 
        /* 双伪元素清除法 */
 
        /* 单伪元素清除法 
        .box::after {
             伪元素默认是行内元素,需要转成行内块元素才能撑起父盒子的高度
            display: block;
            需要注意的是,伪元素必须加content属性才能生效 
            content: '';
            clear: both;
        }
         单伪元素清除法 */
 
 
        /* 额外标签法 */
        /* .clear {
            clear: both;
        } */
        /* 额外标签法 */
    </style>
</head>
 
<body>
    <div class="box">
        <div class="son"></div>
    </div>
</body>
 
</html>

3. BFC 块级格式化上下文

  1. 作用:给盒子形成 独立的渲染区域 ,使内部元素的渲染不会影响外界
  2. 触发 BFC 条件:
    1. 浮动元素: float 不是 none
    2. 绝对定位元素: position 是 absolate 或 fixed
    3. 块级元素: overflow 不是 viisible
    4. flex 元素
    5. inline - block 元素
  3. 应用场景:
    1. 清除浮动,【浮动导致父级塌陷】
  #child3 {
            width: 100px;
            height: 100px;
            background-color: #ccc;
            float: left;
        }
        
.bfc {
            /* 解决父级盒子高度塌陷问题 */
            overflow: hidden;
        }

 <div id="main3" class="bfc">
        <div id="child3"></div>
        <i class="bfc">我是行内元素</i>
    </div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定位,浮动,BFC 的相关文章

  • 同步FIFO 两种方法

    RAM 43 空满信号判断 xff0c 两种方法 一 空满标志用指针位置得到 二 空满标志用fifo的中数据的计数得到 一 当写指针超过读指针一圈 xff0c 写满 xff1b 写指针等于读指针 xff0c 读空 96 timescale
  • linux内核串口日志抓取-minicom工具使用方法

    linux抓串口日志 抓串口日志方式minicom保存串口日志log抓取主板串口日志minicom man手册 抓串口日志方式 1 xff09 问题机上 xff0c 找到串口设备 xff0c 比如 dev ttyAMA 0 1 2 3 st
  • 二叉树(七):二叉树的高度与平衡二叉树

    一 二叉树的深度与高度 1 二叉树的深度 对于二叉树中的某个节点 xff0c 其深度是从根节点到该节点的最长简单路径所包含的节点个数 xff0c 是从上面向下面数的 因此访问某个节点的深度要使用先序遍历 2 二叉树的高度 对于二叉树中的某个
  • Python --语法自纠

    文章目录 1 输入2 数据类型转换 xff0c 字符串3 字典 xff0c 列表 xff0c 元组4 语法0 错题 1 输入 输入eval作用一次输入一个或多个 map print format m n format输出 2 数据类型转换
  • 强化学习算法复现(六):DoubleDQN_gym倒立摆

    建立RL brain py span class token keyword import span torch span class token keyword import span torch span class token pun
  • Android的控件绑定----ViewBinding

    在Android开发中 xff0c 控件的绑定是开发者无法绕开的一道程序 是Android开发中最原始 xff0c 也是最基础的一种获取View的方法 在一个复杂布局的页面时 xff0c 我们要一个个控件去调用findViewById方法去
  • C++ OpenCV CV_***未声明的标识符的解决办法

    1 OpenCV cvtColor CV BGR2GRAY未声明的标识符的解决办法 加上这个引用即可 include lt opencv2 imgproc types c h gt 2 opencv里面CV FOURCC找不到标识符 CV
  • 多线程-生产者和消费者模式

    1 简单实现多线程 多线程是多任务处理的一种特殊形式 xff0c 多线程处理允许让一个进程中同时运行两个或两个以上的线程 这样的话 xff0c 能更加充分发挥计算机的性能 xff0c 并高效完成用户的任务 多线程实现的三步骤 xff1a 第
  • HTML网页注册图片

    lt DOCTYPE html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt lt title gt lt title gt lt style type 61 34 t
  • [WAX云钱包】解决Cloudflare通过SSL指纹识别实现的反爬虫机制

    WAX云钱包 在之前的多篇文章中 xff0c 我们使用 Python 43 Selenium 来实现WAX链游脚本 xff0c 主要是因为很多玩家一开始都是用WAX云钱包注册的账号 xff0c 而WAX云钱包的私钥托管在云端 xff0c 我
  • 小狼毫[rime_win][眀月拼音]简单配置方法

    小狼毫 rime win 朙月拼音 简单配置方法 我自己的配置文件 当配置后 需要重新部署后设置才能生效 需要修改的文件 需要修改 增加的文件均在用户文件夹下 用户文件夹可以通过右键输入法状态栏的图标后点击用户文件夹到达 修改 增加的文件名
  • 生产者消费者模式(c++)

    什么是生产者消费者模式 xff1f 想象一下 xff0c 你早上起来肚子快饿扁了 xff0c 去包子铺买包子 xff0c 包子铺有三个人在做包子 xff08 也可以是一个 xff09 xff0c 这些人就是生产者 xff0c 你作为买包子的
  • go语言interface转string、bool、int

    在go语言中interface转string可以直接使用fmt提供的fmt函数 xff0c 而转bool和int则是在string的基础上来进行转换 xff0c 详见如下代码 func Get f string value interfac
  • centos7中启动juoyter notebook后,复制链接无法打开网页

    centos7中启动juoyter notebook后 xff0c 复制链接无法打开网页 xff0c 一直停留在如下界面 xff1a 解决办法 xff1a 这需要在Linux浏览器中打开 在windows中无法打开 xff0c 若没有安装l
  • 数据结构——BF, KMP

    文章目录 1 串的基本操作2 串的BF模式 朴素的模式匹配 暴力匹配 定位操作 3 串的KMP模式匹配 定位操作 1 规则 xff1a 2 举例 xff1a 3 采用以空间换时间策略 xff0c 操作方法如下 xff1a 4 操作举例 xf
  • linux如何在界面和终端的不同模式下运行pyspark?

    一 xff0c 界面打开 1 直接输入jupyter notebook后打开界面 查看运行模式 xff1a 输入sc master 若输出为 xff1a local xff0c 则表示它是在本地模式下运行 2 xff0c 如何使用jupyt
  • 官网下载eclipse太慢解决办法及jdk版本要求

    1 Eclipse 4 6 Neon 需要JDK1 8版本 2 Eclipse 4 5 Mars 需要JDK1 7及以上版本 3 Eclipse 4 4 Luna 需要JDK1 7及以上版本 4 Eclipse 4 3 Kepler 需要J
  • Ubuntu中Pycharm快捷方式只能以sudo sh pycharm.sh运行,双击快捷方式没反应怎么办?

    创建pycharm快捷方式的博客文章很多 xff0c 我找了很久才解决我的问题 xff0c 这里主要参考这篇 xff1a 链接 link 主要问题 双击pycharm快捷方式没反应 xff0c 只能在终端中用sudo sh pycharm

随机推荐

  • Gazebo上帝视角里程计 get_model_state 绝对里程计

    Gazebo model states Gazebo有一个服务 gazebo get model state 和一个话题 gazebo model states 来反馈model的状态 服务 gazebo get model state 话
  • 【GaussDB数据库----连接】

    1 确认连接信息 客户端工具通过CN连接数据库 因此连接前 xff0c 需获取CN所在服务器的IP地址及CN的端口号信息 客户端工具可以通过任何一个CN连接数据库 以操作系统用户omm登录安装有MPPDB服务的任一主机 执行source B
  • 天干地支(出生年月的转换)

    十 天干 xff1a 甲 xff08 ji xff09 乙 xff08 y xff09 丙 xff08 b ng xff09 丁 xff08 d ng xff09 戊 xff08 w xff09 己 xff08 j xff09 庚 xff0
  • http转https后资源加载失败的解决方案

    之前没给域名加SSL证书的时候 xff0c 项目好好的 xff0c icon图标还有 xff0c 给域名了SSL证书后 xff0c icon图标就不在了 原因就是因为项目本身采用http的资源文件 xff0c 换成https后就不解析这些资
  • Docker 安装 Redis + Spring Boot 整合 Redis

    Docker安装Redis 一 启动docker容器 systemctl start docker 二 拉取redis镜像 docker pull redis 三 端口映射 docker run name redis p 6379 6379
  • 如何保证缓存与数据库数据一致性

    redis系列之数据库与缓存数据一致性解决方案 重点文章 xff1a https www cnblogs com cxxjohnson p 8519616 html 你只要用缓存 xff0c 就可能会涉及到缓存与数据库双存储双写 xff0c
  • 2020年:maven配置最新阿里云镜像,以及在IDEA中的设置

    记得当初学习Maven的时候 xff0c 由国外的中央仓库切换为阿里云镜像之后 xff0c 用起来是辣么地丝滑 不过最近一段时间 xff0c Maven却总是出现一些问题 xff0c 本地库里也总是出现一些 lastUpdated文件 xf
  • Node.js—— MySQL(第三方API ),web开发模式

    文章目录 0 目标1 数据库 xff08 数据库管理系统 xff09 2 MySQL3 SQL语句1 基本语句2 js 操作数据库中的查询 xff0c 增加 xff0c 更新 xff08 改 xff09 xff0c 删除 3 MYSQL操作
  • 实现生产者消费者模式的三种方式

    什么是生产者消费者模式 简单来说 xff0c 生产者消费者模式就是缓冲区 那么这么做有两个好处 xff0c 一个是解耦 xff0c 第二个是平衡生产能力和消费能力的差 xff0c 因为生产者和消费者的速度是不一样的 xff0c 有了这个缓冲
  • Go语言Windows10安装和环境配置详细步骤

    文章目录 前言一 下载Go安装包 xff1f 二 安装步骤1 安装2 验证是否安装成功 环境配置1 环境配置准备1 配置步骤 前言 提示 xff1a 我用的是windows10系统 xff1a 例如 xff1a Go安装包下载和在windo
  • C语言中scanf、gets、fgets,C++中cin、getline读取字符串的效率比较

    转自 xff1a https blog csdn net richenyunqi article details 89203826 可以使用C语言中scanf gets fgets xff0c C 43 43 中cin getline函数读
  • Android.mk和Android.bp的语句转换

    编译不同类型的模块 编译成 Native 动态库 Android mk include BUILD SHARED LIBRARY Android bp cc library shared 编译成 Native 静态库 Android mk
  • 学习c/c++ 推荐学习什么书籍?

    学习编程包含以下几个重要方面 xff1a 了解语言的语法 知道那些特性可以使用和何时使用 写出可读性好的代码 编译器可以理解 xff0c 但是下一个人是否可以阅读呢 xff1f 在一个更高层次设计结构良好的程序 为了学习一门语言 xff0c
  • 深入理解 http 反向代理(nginx)

    要理解什么是 反向代理 reverse proxy 自然你得先知道什么是 正向代理 forward proxy 另外需要说的是 一般提到反向代理 通常是指 http 反向代理 但反向代理的范围可以更大 比如 tcp 反向代理 在这里 不打算
  • 01-【Royal TSX】Mac上最好用的SSH工具Royal TSX使用教程

    参考文章 xff1a https www jianshu com p 0206980f529e
  • 数据结构:线性结构(C语言)

    文章目录 线性结构线性表什么是线性表线性表的抽象类型描述线性表的实现 广义表广义表定义多重链表 堆栈什么是堆栈堆栈的抽象数据类型描述堆栈的顺序存储实现堆栈的链式存储实现堆栈的应用 队列什么是队列队列的抽象数据类型描述队列的顺序存储实现队列的
  • 树(C语言)

    文章目录 树树的定义树的一些基本术语树的表示 树 树的定义 树 xff08 Tree xff09 xff1a n n 0
  • 堆(C语言)

    文章目录 堆 heap 什么是堆最小堆的操作操作集的实现 C语言 堆 heap 什么是堆 定义 堆 heap 是计算机科学中一类特殊的数据结构的统称 堆通常是一个可以被看做一棵树的数组对象 性质 结构性 xff1a 用数组表示的完全二叉树
  • VS2017中fopen等函数报错解决方法

    文章目录 VS2017中fopen 函数报错解决方法问题解决方法 VS2017中fopen 函数报错解决方法 问题 用VS2017写C语言代码的时候 xff0c 代码中使用了fopen 函数 xff0c 调试之后报错如下 xff1a err
  • 定位,浮动,BFC

    文章目录 1 xff0c 定位1 margin 与 padding 区别 xff1a 2 定位 xff1a 2 xff0c 元素分类 xff0c 浮动 xff0c BFC1 1 常见块级元素 xff1a 1 2 常见行内元素 xff1a 1