当前位置: 首页 > news >正文

HTML的浮动与定位

1. 浮动

浮动可以使一个元素脱离自己原本的位置,并在父元素的内容区中向左或向右移动,直到碰到父元素内容区的边界或者其它浮动元素为止。

描述
left元素向左浮动
right元素向右浮动

普通文档流:浏览器在默认情况下规定一个块元素在父元素内的排列规则:

  • 从上往下排列

  • 从左开始排列

  • 一个块元素占一行

.parent {width: 800px;height: 400px;border: 10px solid blue;
}
​
.box1 {width: 250px;height: 80px;background-color: #ed7d31;
}
​
.box2 {width: 400px;height: 100px;background-color: #70ad47;
}
​
.box3 {width: 200px;height: 200px;background-color: #7030a0;
}
<div class="parent"><div class="box1"></div><div class="box2"></div><div class="box3"></div>
</div>

浮动之后的文档流

.parent {width: 800px;height: 400px;border: 10px solid blue;
}
​
.box1 {float: left;width: 250px;height: 80px;background-color: #ed7d31;
}
​
.box2 {width: 400px;height: 100px;background-color: #70ad47;
}
​
.box3 {width: 200px;height: 200px;background-color: #7030a0;

9.1 浮动元素父级高度塌陷

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

  • 对于内容固定的元素,如果子元素都浮动,可以给父元素固定高度(例:导航栏)

  • 在父元素的末尾添加空的块元素。设置clear:both;清除浮动

  • 为父元素设置overflow:hidden;解决高度为0

2. 定位

定位postion属性,可以让我们将元素从文档流中取出,然后使用方位词属性(left top right bottom)精准的控制它的位置。

不同的定位值可以使元素拥有不同的表现形式,例如放在另外一个元素上面或者固定在浏览器的显示区某个位置。

10.1 relative

相对定位能让元素保持原文本流位置的同时,可以通过方位属性进行相对于原位置的偏移。

  • 不会脱离文档流

  • 不影响元素本身的任何特性

  • 如果不加方位词偏移那么没有任何影响

10.2 absolute

绝对定位能让元素脱离文档流(原地起飞...),使用方位属性相对于最近的有定位的父级元素进行偏移

方位属性left和top 优先级比 right和bottom高,比如一个元素既拥有left也拥有right,最终位置以left为准。

  • 脱离文档流

  • 元素宽高默认值为0,可以设置宽度高度,可以设置内外边距

  • 找不到最近的定位父级则相对于body标签

  • 一般配合相对定位使用(参照物)

  • 设置了绝对定位,没有设置层级;html后写居上

  • margin:auto 暂时失效

10.3 fixed

固定定位能让元素脱离文档流,使用方位属性相对于浏览器可视区进行偏移;

  • 脱离文档流

  • 元素宽高默认值为0

  • margin:auto失效

10.4 层级

定位元素之间,如果出现覆盖问题,那么越到后面的元素优先级越高,当然我们可以使用z-index层级属性来调整优先级。数值越大,越靠上。

z-index属性只针对定位元素有效

取值为一个整数数字,默认auto 或 0 ,可正可负

http://www.lryc.cn/news/482833.html

相关文章:

  • 【网络安全 | 漏洞挖掘】我如何通过路径遍历实现账户接管
  • DB-GPT系列(四):DB-GPT六大基础应用场景part1
  • SpringCloud篇(服务拆分 / 远程调用 - 入门案例)
  • Rust 建造者模式
  • ANN DNN CNN SNN
  • go语言进阶之并发模式
  • Spring Cloud LoadBalancer:负载均衡的服务调用
  • 微信小程序之轮播图
  • 羲和数据集收集器1.3
  • UE--IOS打包失败 AutomationTool exiting with ExitCode=9 (9)
  • 第8章利用CSS制作导航菜单
  • UNIX网络编程-TCP套接字编程
  • 美团代付微信小程序 read.php 任意文件读取漏洞复现
  • centos7 node升级到node18
  • 使用Matlab建立随机森林
  • 【江苏-无锡】《无锡市市级政务信息化建设及运行维护项目支出预算标准(试行)》 -省市费用标准解读系列10
  • 2024-11-12 问AI: [AI面试题] 您将如何设计一个人工智能系统来预测电信公司的客户流失?
  • 【数字静态时序分析】复杂时钟树的时序约束SDC写法
  • springboot苍穹外卖实战:五、公共字段自动填充(aop切面实现)+新增菜品功能+oss
  • Go 语言中,golang结合 PostgreSQL 、MySQL驱动 开启数据库事务
  • Git核心概念
  • 网络安全技术在能源领域的应用
  • 这些场景不适合用Selenium自动化!看看你踩过哪些坑?
  • PHP反序列化靶场(php-SER-libs-main 第一部分)
  • 基于大数据爬虫+Python+SpringBoot+Hive的网络电视剧收视率分析与可视化平台系统(源码+论文+PPT+部署文档教程等)
  • DHCP与FTP
  • 云渲染与云电脑,应用场景与技术特点全对比
  • RockPI 4A单板Linux 4.4内核下的RK3399 GPIO功能解析
  • 【Vue】Vue3.0(二十三)Vue3.0中$attrs 的概念和使用场景
  • RHEL/CENTOS 7 ORACLE 19C-RAC安装(纯命令版)