HTML基础知识(五)——position定位
一、定位
1、常见的定位布局有float布局,position布局,flex(弹性盒子)布局。
position布局,定位布局。
2、定位布局:定位指的是指定一个元素在网页上的位置;
3、一共有5种定位方式,也就是说position属性主要有五个值:
(1)static
(2)relative
(3)fixed
(4)absolute
(5)sticky (最后一个sticky是2017年浏览器才支持的。)
(这些值的存在是用来进行元素的位置的定义,然后借助**top**,**bottom**,**left**,**right**四个属性值,对元素的位置进行更精确的定位。)
二、static 静态定位
1、static 是position属性的默认值,如果省略position属性,浏览器就认为是static定位;浏览器会按照源码的顺序,决定每个元素的位置,这称为"正常文本流"(normal flow)。每个块级元素占据自己的区块(block),元素与元素之间不产生重叠。
2、static也称为静态定位,实际上是不做定位。
注意:static定位所导致的元素位置,是浏览器自主决定的,所以top、bottom、left、right这四个属性值无效。
三、fixed 固定定位
1、fixed 表示,相对于视口(viewport,浏览器窗口|可视窗口)进行偏移,即定位基点是浏览器的可视窗口.这会导致元素的位置不会随页面滚动而变化,好像固定在网页上一样。
2、它要搭配top、bottom、left、right这四个属性一起使用,表示元素的初始位置是基于viewport计算的,否则初始位置就是元素的默认位置。
3、元素设置使用fixed定位之后,在网页的普通文档流中不占空间,元素的层级要高于普通文档流。
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head>
<body><style>.box{width:400px;height: 300px;background: red;border: 2px solid black;position: fixed;right:0;bottom:0;}.child{height:200px;border: 2px solid blue;margin:10px;}</style><div class="box"></div><div class="child">1</div><div class="child">2</div><div class="child">3</div><div class="child">4</div>
</body>
</html>
四、relative 相对定位
1、relative表示,相对于默认位置(即static时的位置)进行偏移,即定位的基点是元素的默认位置。
2、它必须搭配top、bottom、left、right这四个属性一起使用,用来指定偏移的方向和距离。
3、使用relative定位后,元素在网页的普通文档流中依然占空间;元素层级比普通文档流更高。
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head>
<body><style>.fbox{border: 3px solid black;}.fbox>.box{width:340px;height: 260px;border: 6px solid red;display: inline-block;}.fbox>.box2{position: relative;left:170px;top:130px;background: yellow;}</style><div class="fbox"><div class="box">1</div><div class="box box2">2</div><div class="box box3">3</div> </div>
</body>
</html>
五、absolute 绝对定位
1、absolute相对于上级元素(一般是父元素)进行偏移,即定位基点是父元素。
2、它有一个重要的限制条件:定为基点(一般是父元素)不能是static定位,否则定位基点就会变成整个网页的根元素html。另外absolute定位必须搭配
3、top、bottom、left、right这四个属性一起使用。
4、小结:absolute是相对于离自己最近的做过非static定位的父元素。absolute定位的元素会被‘’正常页面流“忽略,即在正常页面流中不占空间,周边元素不受影响。
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body>div{height:600px;}.fbox{margin: 100px;background:red;padding: 100px;position: relative;}.fbox>.box{width:440px;height: 500px;background:pink;padding:80px;position: relative;border:3px solid black;display:inline-block;vertical-align: top;}.box>.item{width:200px;height: 200px;display:inline-block;background:yellow;border:3px solid #fff;}.box>.child2{width:250px;height: 250px;background:yellowgreen;position: absolute;left:150px;top:150px;}.fbox1{background:green;}.box>.child1{position: absolute;left: 0px;top:0px;z-index: 4;}.box>.child3{background: grey;z-index: -3;position: relative;}</style>
</head>
<body><div class="fbox"><div class="box"><div class="item child1">1</div><div class="item child2">2</div><div class="item child3">3</div></div><div class="box"></div></div><div class="fbox1"></div>
</body>
</html>
六、z-index用来调整元素的层级高低。
ps:1、普通文档流的元素默认层级为0,使用浮动和position定位(除static)之后的元素,默认层级高于普通级(高半级,介于0~1之间),可以使用z-index设置使用过position定位的元素和层级高低,数值越大,层级越高,若数值小于0则比普通元素的层级更低。
2、普通元素设置z-index无效。
七、sticky(粘性定位)
1、sticky跟前面四个属性都不一样,它会产生一些动态效果,很像relative和fixed的结合:一些时候是relative定位(定位基点是自身默认),另一些时候自动变成fixed定位(定位基点是视口);因此能够形成“动态固定”效果。
2、sticky生效的前提,必须搭配:top,bottom,left,right
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>header{height: 300px;border:3px solid black;position: relative;z-index: 99;background:#ccc;}.search{width:500px;height: 80px;background:red; margin-top:120px;margin-left: 400px;position: -webkit-sticky;position: sticky;top:20px;z-index: 99;}.container{height: 1300px;background:orange;border: 4px solid black;}</style>
</head>
<body><div class="search"></div><div class="container"><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3><h3>标题1</h3></div>
</body>
</html>
HTML基础知识(五)——position定位相关推荐
- git 分支复制_Git基础知识(五)
Git基础知识(五) 分支 都说Git的分支是它的必杀技特性,由于没有接触过太多的版本管理工具,就使用过的SVN来说,两者真的差别巨大.SVN创建一个分支,需要将内容复制一遍!这个时间真的是非常的漫长 ...
- JavaSE基础知识(五)--面向对象代码实现初步(实现一个简单的类类型代码)
Java SE 是什么,包括哪些内容(五)? 本文内容参考自Java8标准 一.面向对象(代码实现): 首先,在这里我需要说明一个根本性的问题:实际上,面向对象编程包括了两部分,一个是你的编程思想,一 ...
- C# 基础知识 (五).变量类型和字符串处理
这篇文章是阅读<C#入门经典(Beginning C#)>书籍里面的内容,作者Karli Watson.主要包括自己缺乏的一些C#基础知识和在线笔记使用,文章主要包括C#简 ...
- Java基础知识(五) 字符串与数组
Java基础知识 字符串与数组 1. 字符串的创建与存储的机制是什么 2. "==".equals和hashCode有什么区别 3. String.StringBuffer.Str ...
- CSS基础「五」定位
本篇文章为 CSS 基础系列笔记第五篇,参考 黑马程序员pink老师前端入门教程 其他CSS基础相关文章: CSS基础「一」基础选择器 / 字体属性 / 文本属性 / 三种样式表 CSS基础「二」复合 ...
- 卷积神经网络基础知识五(mobilenet)
一.简单介绍 1.1 绪论 论文下载地址: MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applicat ...
- GNSS的基础知识 (GPS定位原理和组成)(1)
在这里读了很多关于GNSS的贴子.里面的内容有的是直接翻译外文的文献,也有完全是自己写的. 我准备从今天开始不定期的更新一些关于GNSS 的知识.一是为了分享和探讨,二是记录一下自认为有用的东西,整理 ...
- JavaSE基础知识(五)--面向对象思想概述
Java SE 是什么,包括哪些内容(五)? 本文内容参考自Java8标准 一.面向对象: 1.回顾前面的博文("了解这个开头,更有利于了解对象以及面向对象的思想") 首先我们知道 ...
- java基础知识五、六、七、八
第五章 在较大的数之前先增加较小数是减小误差的一种方法. 第六章 方法签名(Method Signature)指方法名称.参数类型和参数数量.java编译器根据方法签名决定使用哪个方法. 调用方法时, ...
- Matlab基础知识五
第五节 1.subplot() plot() 绘制二维图像,一般默认格式为plot(x,y),也可以用带属性的格式,增加线条的属性(标记符号.线型.颜色.粗细等) subplot(m,n,1); 改变 ...
最新文章
- Java中的多线程编程(超详细总结)
- helper.js(20170612)
- 脑与认知科学1 脑的基本结构下
- springboot 访问html_Spring Boot中使用Spring Security进行安全控制
- andriod开发环境配置
- mysql 根据地图 坐标 查询 周边景区、酒店
- oracle EBS grant 您不具有执行当前操作的足够权限。请与您的系统管理员联系。...
- 做好7步 迅速成为行业专家
- 【hibernate框架】各种问题用注解Annotation和mxl配置的解决
- 【leetcode】714. Best Time to Buy and Sell Stock with Transaction Fee
- MySQL字段类型详解
- 51nod 1428 活动安排问题 (贪心+优先队列)
- Android 多层视差头部背景的实现
- 32. 如果确实需要删除元素,则需要在remove这一类算法之后调用erase
- 挖地雷_1996年分区联赛提高组之三_ssl1071_dfs
- python遗传算法解简单整数规划与原理探究
- SecureCRT Win免安装版本,简单好用
- 科目二考试全流程详解
- 绑定美版office365密钥_美版Microsoft/微软Office 365个人版怎么激活?
- python100day - day24 - DataAnalysis
热门文章
- Fine-Tuning微调原理
- 嵌入式编程和PC编程的区别
- 我的Android学习速记 (2) 给View加个阴影
- 单芯片(C转PD3.0加HDMI2.0加USB3.2-10G)PS188-QFN100之初识
- [原创]网易手机壁纸小偷VBS源码
- Dell一体机升级SSD
- 一步到位安装R环境(R,Rattle,RStudio)
- linux编辑器java_Java编辑器 BlueJ For Linux V3.1.6 免费版 下载-脚本之家
- 数字电子技术(三)门电路
- Windows/Linux服务器监控软件推荐